HTTP 보안헤더 (HTTP Security Headers)

정보보안학
한 줄 정의: 서버가 HTTP 응답에 포함시켜 브라우저의 보안 관련 동작을 지시함으로써 다양한 웹 공격을 예방하도록 돕는 헤더들을 통칭하는 용어입니다.

쉽게 풀면

HTTP 보안헤더는 웹사이트가 방문자의 브라우저에게 전달하는 일종의 안전 수칙 안내문입니다. "이 사이트는 항상 암호화된 연결로만 접속하라", "다른 사이트가 이 페이지를 프레임 안에 넣지 못하게 하라"와 같은 지시를 헤더 형태로 전달하면 브라우저가 그 규칙을 따르게 됩니다. 여러 개의 개별 헤더가 모여 웹사이트의 전반적인 보안 수준을 높이는 역할을 합니다.

왜 중요한가

HTTP 보안헤더는 구현 비용이 상대적으로 낮으면서도 여러 공격 유형을 동시에 완화할 수 있어 실무에서 널리 권장되며, 정보보안학 연구에서는 실제 웹사이트들의 헤더 적용률과 설정 품질을 조사하는 실증 연구가 자주 이루어집니다.

논문에서는 이렇게 쓰입니다

"상위 트래픽 웹사이트들을 대상으로 HTTP 보안헤더 적용 현황을 전수 조사한 결과, 헤더별로 적용률에 큰 편차가 있음을 확인하였다."

실제 웹사이트들의 보안헤더 적용 실태를 조사한 연구 사례입니다.

"프레임 삽입을 제한하는 헤더의 부재가 클릭재킹 공격의 성공률에 미치는 영향을 분석하였다."

특정 보안헤더의 부재가 실제 공격 가능성에 미치는 영향을 다룬 연구 사례입니다.

조금 더 깊게 보면

HTTP 보안헤더에는 콘텐츠보안정책, 전송 보안 강제, 프레임 삽입 제한, MIME 타입 스니핑 방지 등 여러 종류가 포함되며, 각 헤더는 서로 다른 공격 유형을 겨냥합니다. 이러한 헤더들은 서버 설정만으로 적용할 수 있어 애플리케이션 코드를 수정하지 않고도 방어 수준을 높일 수 있다는 특징이 있습니다.

주의할 점

보안헤더를 설정했다고 해서 모든 취약점이 해결되는 것은 아니며, 애플리케이션 로직 자체의 결함은 별도로 점검해야 합니다.

관련 용어