본문 바로가기
Window & Internet

Secure Header를 이용한 브라우저 보안

by LABOR 수달김수달 2024. 8. 7.
반응형

Secure Header를 이용한 브라우저 보안

웹 브라우저(Web Browser)는 1990년 처음 발명된 이후, 웹서버와의 양방향 통신을 통해 HTML 문서와 파일을 출력하는 그래픽 사용자 인터페이스 환경을 제공하는 도구로 자리 잡았습니다. 현재는 데스크톱, 모바일 등 다양한 HTTP 사용자 에이전트를 지원하며, 현대인의 일상에서 없어서는 안 될 필수적인 소프트웨어로 발전했습니다. 글로벌 시장조사업체 스탯카운터(StatCounter)에 따르면 2020년 3월 전 세계 브라우저 시장 점유율에서 구글 크롬(Chrome)이 65.99%를 차지하며 대표 브라우저로 자리매김했으며, 사파리(Safari), 파이어폭스(Firefox), 삼성 인터넷(Samsung Internet), 에지(Edge), 오페라(Opera) 등이 뒤를 잇고 있습니다.

이와 같은 브라우저 점유율 통계는 전 세계적으로 크롬 브라우저가 데스크톱 환경에서 주로 사용되고 있음을 시사하며, 맥(Mac) 사용자 중심의 사파리도 상당한 점유율을 유지하고 있음을 알 수 있습니다. 또한, 플랫폼별 웹 사이트 이용 현황을 살펴보면, 전 세계적으로 모바일에서의 브라우저 이용률이 51.9%로 데스크톱 이용률(45.4%)을 앞지르고 있습니다. 모바일에서의 크롬 점유율은 61.5%로 가장 높으며, 사파리와 삼성 인터넷이 그 뒤를 잇고 있습니다. 국내 시장에서는 삼성 갤럭시 스마트폰의 영향으로 삼성 인터넷이 26.8%의 점유율로 2위를 기록하고 있습니다.

브라우저의 종류와 접근 환경에 따른 점유율에 따라 공격 위협도 함께 증가하고 있습니다. 더불어, 웹 사이트 개발 시 서로 다른 개발사가 만든 웹 페이지와 스크립트가 조합되어 구축되기 때문에 보안 관리의 어려움이 발생할 수 있습니다. 이러한 문제를 해결하기 위해 여러 브라우저 제조사들은 HTTP 보안 헤더(Security Header)를 도입하여 웹 취약점을 보완하고 보안을 강화하는 방안을 제시하고 있습니다. HTTP 헤더는 인증, 캐싱, 쿠키 관리 등 다양한 정보를 포함하며, 그 중 Secure 헤더는 보안에 중요한 역할을 합니다.

이번 글에서는 암호화 통신을 위한 HSTS(HTTP Strict Transport Security), 입력값 검증을 위한 X-XSS-Protection, 그리고 CSP(Content Security Policy) 등 주요 보안 헤더의 상세 내용과 적용 방법에 대해 알아보겠습니다.

HSTS(HTTP Strict Transport Security) 상세 분석

HSTS(HTTP Strict Transport Security)는 웹 브라우저가 HTTPS(Hypertext Transfer Protocol Secure)를 강제 사용하도록 설정하는 보안 기능입니다. HTTPS는 HTTP 프로토콜의 단점을 보완한 암호화 통신 방식으로, 데이터가 평문으로 전송되지 않도록 하여 중요한 정보를 보호합니다. 예를 들어, 금융 사이트에서 HTTPS가 적용된 경우 사용자는 자물쇠 모양의 아이콘을 통해 안전한 통신이 이루어지고 있음을 확인할 수 있습니다.

암호화 통신 방식

SSL(Secure Socket Layer)과 TLS(Transport Layer Security)는 이러한 암호화 통신을 제공하는 주요 프로토콜로, SSL은 데이터의 기밀성, 무결성, 인증을 보장하는 서비스를 제공합니다. 그러나 SSL은 취약점이 존재하여, 현재는 이를 개선한 TLS의 최신 버전 사용이 권장되고 있습니다.

암호화 통신을 위해서는 인증 기관으로부터 SSL/TLS 인증서를 발급받아 웹 서버에 적용해야 합니다. 이러한 인증 과정은 공개키와 개인키의 조합을 통해 이루어지며, 웹 브라우저와 서버 간의 안전한 통신을 가능하게 합니다. 그러나 악의적인 사용자는 HTTPS를 강제로 http로 변환하여 평문으로 데이터를 전송하게 하려는 시도를 할 수 있습니다. 이를 방지하기 위해 HSTS가 사용되며, 클라이언트가 HTTP로 요청하더라도 서버에 도달하기 전에 HTTPS로 전환되어 안전한 통신이 이루어집니다.

일반적인 https 강제적용 방식​

HSTS는 지시자에 따라 다르게 설정할 수 있으며, 서버, 웹서버, PHP 등 다양한 환경에서 적용할 수 있습니다.

HSTS 동작 방식​

hstspreload.org 사이트를 통해 HSTS가 적용된 사이트 여부를 확인할 수 있으며, HSTS가 적용된 사이트는 HTTP 접속 시 HTTPS로 자동 리다이렉트되고, HSTS 설정이 브라우저에 일정 기간 유지됩니다.

HSTS 지시자, 적용예시

X-XSS-Protection 상세 분석

XSS(Cross-Site Scripting)는 웹 해킹의 대표적인 공격 중 하나로, 웹 페이지에 악성 스크립트를 삽입하여 사용자 정보를 탈취하거나 웹 사이트를 비정상적으로 동작하게 하는 공격 기법입니다. XSS 공격 중 Reflected XSS 공격은 사용자가 클릭한 악성 스크립트가 포함된 URL이 웹 서버에 전달되고, 그 응답 페이지에 악성 스크립트가 삽입되는 방식으로 이루어집니다.

X-XSS-Protection은 Reflected XSS 공격을 예방하기 위한 브라우저 내 필터 기능입니다. 익스플로러, 사파리, 크롬 등 주요 브라우저에서 지원되며, HTML에 포함된 스크립트 태그와 일치하는 태그가 있을 경우 페이지 로드를 중지시키거나, 공격을 감지하는 기능을 제공합니다. 이 기능은 웹 페이지 구축 시 PHP, 웹서버, 서버 등에서 설정할 수 있으며, 사용자 설정 또한 가능합니다.

X-XSS-Protection 지시자

X-XSS-Protection 적용 시 공격이 감지되면 페이지 로드가 제한되며, 브라우저가 이를 차단하여 사용자를 보호합니다. 실제 적용된 사례에서는 XSS 필터가 활성화되어 공격이 감지될 경우 페이지 로드가 제한되는 모습을 확인할 수 있습니다.

CSP(Content Security Policy) 상세 분석

CSP(Content Security Policy)는 XSS 필터 기능을 포함하여 다양한 웹 보안 정책을 제공하는 보안 헤더입니다. 주로 XSS, 데이터 인젝션(Data injection), 클릭재킹(Click Jacking) 등의 공격을 방지하기 위해 사용됩니다. CSP는 신뢰할 수 있는 콘텐츠 출처를 지정하여, 허용된 소스만이 실행되거나 로드될 수 있도록 보호하는 역할을 합니다.

CSP 지시자 일부 CSP 지시자 속성값

CSP는 지시자와 속성값에 따라 정책을 설정할 수 있으며, 서버, 웹서버, PHP 등 다양한 환경에서 적용이 가능합니다. CSP 적용 사이트는 csp-evaluator.withgoogle.com에서 확인할 수 있습니다. CSP는 정책 설정에 따라 다양한 보안 기능을 제공합니다. 예를 들어, 특정 도메인에서만 스크립트가 실행될 수 있도록 하여, 악성 스크립트 삽입을 방지할 수 있습니다.

CSP 적용사례

마무리

웹 브라우저는 접근성이 높아 공격자들의 주요 타겟이 되어 왔습니다. 오픈소스, 상용소스, 라이브러리 등을 조합하여 웹 사이트를 구축하는 사례가 증가하면서 새로운 보안 위협이 끊임없이 발생하고 있습니다. 이를 예방하고 대응하기 위해 브라우저 제조사들은 다양한 보안 헤더를 제공하고 있으며, 기업들이 이를 적용한다면 보안 수준을 크게 향상시킬 수 있을 것입니다.

특히, 원격교육, 원격근무, 이커머스 등 비대면 서비스가 확산됨에 따라, 웹 사이트 보안은 더욱 중요해지고 있습니다. 기업들은 자사의 웹 사이트가 어떤 브라우저에서 많이 사용되는지, 어떤 보안 방안이 필요한지 지속적으로 모니터링하고, 새로운 보안 기술을 적용해 나가야 합니다.

결론

Secure Header, HSTS, X-XSS-Protection, CSP, 웹 보안, 암호화 통신, 브라우저 보안, 웹 취약점, XSS 공격, 콘텐츠 보안 정책

반응형