정보보안/정보보호 Q&A

HTTP 헤더 조작과 이를 방어하기 위한 방법은 무엇인가?

itnyaong 2025. 2. 20. 12:06

1. HTTP 헤더 조작의 개념

  • HTTP 헤더는 클라이언트(브라우저)와 서버 간의 통신 정보를 담고 있어 이를 조작하여 보안 정책 우회, 세션 탈취, 악성 코드 삽입 등 다양한 공격 수행이 가능함

2. 종류 및 방어 방법

2.1. 호스트 헤더 인젝션 (Host Header Injection)

2.1.1. 원리

  • 일부 웹 애플리케이션이 Host 헤더를 신뢰하여 리다이렉트, 인증 검증 등에 사용하는 것을 이용
  • Host 값 조작으로 보안 정책 우회 및 악성 사이트로 리다이렉트
GET / HTTP/1.1
Host: attacker.tistory.com

 

2.1.2. 방어 방법

  • 서버에서 Host 값이 허용된 도메인(화이트리스트)인지 검증
  • 리다이렉트할 때 절대 경로(URL)를 사용하도록 설정

2.2. Referer 조작 공격 (Referer Spoofing)

2.2.1. 원리

  • Referer 헤더를 조작하여 CSRF 보호를 우회하거나 악성 사이트로 유도하는 공격

2.2.2. 방어 방법

  • CSRF 토근을 사용하여 Referer 값 조작 방어
  • CSP(Content Security Policy) 적용

2.3. User-Agent 조작 공격

2.3.1. 원리

  • User-Agent는 브라우저, OS 정보를 포함하여 조작 시 보안 정책 우회 가능
  • 특정 User-Agent에게만 허용되는 기능을 악용 가능

2.3.2. 방어 방법

  • User-Agent 기반의 보안 정책을 최소화하고 서버 측에서 추가적인 인증 검증 수행

2.4. X-Forwarded-For(XFF) 조작 공격

2.4.1. 원리

  • X-Forwarded-For 헤더는 프록시 서버를 경유할 때 원본 클라이언트 IP를 전달하는 용도로 사용
  • 조작 시 IP 기반의 접근 제어(ACL)를 우회 가능
X-Forwarded-For: 127.0.0.1

 

2.4.2. 방어 방법

  • X-Forwarded-For 값을 신뢰할 수 있는 프록시 서버에서만 처리
  • 서버에서는 실제 요청 IP를 로깅하고 검증