반응형
📌 목차
- HTTP Desync 공격이란?
- 공격 원리와 작동 방식
- 주요 HTTP Desync 공격 기법
- 보안 위협과 실제 사례
- 방어 방법 및 대응 방안
🔍 HTTP Desync 공격이란?
HTTP Desync 공격(HTTP Request Smuggling의 한 형태)은
웹 서버와 프록시, 로드 밸런서가 HTTP 요청을 다르게 해석하는 점을 악용하는 공격 기법이다.
이 공격을 통해 세션 하이재킹, 캐시 중독, 방화벽 우회 및 내부 시스템 접근 등이 가능하다.
특히, CDN(콘텐츠 전송 네트워크) 및 리버스 프록시를 사용하는 대규모 웹 애플리케이션이 주요 대상이 된다.
⚙️ HTTP Desync 공격의 원리
HTTP 요청을 해석하는 방식은 주로 두 가지가 있다.
- Content-Length(CL) 헤더 기반 요청 길이 해석
- Transfer-Encoding: chunked(TE) 헤더 기반 요청 길이 해석
✅ 공격이 발생하는 조건
- 클라이언트 → 프록시(로드 밸런서) → 백엔드 서버로 요청이 전달될 때,
각 구성 요소가 HTTP 요청을 다르게 해석하는 경우 발생 - 공격자는 이 해석 차이를 이용해 추가적인 숨겨진 요청을 삽입
📌 정상적인 HTTP 요청 예제
POST / HTTP/1.1
Host: example.com
Content-Length: 20
username=admin&password=1234
📌 HTTP Desync 공격 요청 예제
POST / HTTP/1.1
Host: example.com
Content-Length: 20
Transfer-Encoding: chunked
0
GET /admin HTTP/1.1
Host: example.com
🚨 결과:
- 일부 서버는 Content-Length를, 일부는 Transfer-Encoding을 신뢰
- 공격자는 숨겨진 GET /admin 요청을 주입하여 인증 우회 가능
🚨 주요 HTTP Desync 공격 기법
1️⃣ CL.TE(Content-Length vs Transfer-Encoding 차이 악용)
📌 공격 방식
- 프록시는 Content-Length를 신뢰하여 요청을 처리
- 백엔드 서버는 Transfer-Encoding을 신뢰하여 추가적인 요청을 처리
✅ 공격 예제
POST / HTTP/1.1
Host: vulnerable.com
Content-Length: 13
Transfer-Encoding: chunked
5
SMUGG
3
LED
0
GET /admin HTTP/1.1
Host: vulnerable.com
🚨 결과:
- 백엔드 서버는 GET /admin 요청을 추가적으로 인식하여 인증 우회 가능
2️⃣ TE.CL(Transfer-Encoding vs Content-Length 차이 악용)
📌 공격 방식
- 프록시는 Transfer-Encoding을 우선 처리하고,
- 백엔드 서버는 Content-Length를 우선 처리
✅ 공격 예제
POST / HTTP/1.1
Host: vulnerable.com
Transfer-Encoding: chunked
Content-Length: 6
0
GET /admin HTTP/1.1
Host: vulnerable.com
🚨 결과:
- 백엔드 서버는 GET /admin을 정상 요청으로 처리하여 공격자에게 관리자 권한 부여
3️⃣ 캐시 포이즈닝(Cache Poisoning)
📌 공격 방식
- HTTP Desync를 이용하여 CDN 캐시를 조작
- 악성 콘텐츠가 정상적인 요청으로 처리되도록 함
✅ 공격 예제
POST / HTTP/1.1
Host: cache-server.com
Content-Length: 10
Transfer-Encoding: chunked
0
GET /malware HTTP/1.1
Host: cache-server.com
🚨 결과:
- 캐시에 악성 콘텐츠가 저장되어 사용자가 감염됨
⚠️ 보안 위협과 실제 사례
✅ 보안 위협
- 🔓 세션 탈취: 로그인된 사용자의 요청을 변조하여 공격자가 가로챌 수 있음
- 🎭 사용자 스푸핑: 공격자가 임의의 요청을 삽입하여 권한 상승 가능
- 🚀 방화벽 우회: 보안 장비가 정상적인 요청으로 인식하여 공격을 차단하지 못함
- 💣 DDoS 공격: 대량의 요청을 삽입하여 서버 과부하 유발 가능
✅ 실제 발생 사례
- 2019년 Netflix 및 여러 웹사이트에서 HTTP Desync 취약점 발견
- 공격자가 HTTP 요청을 변조하여 보안 시스템을 우회할 수 있는 취약점 공개
- 2021년 여러 클라우드 서비스에서 HTTP Smuggling 취약점 보고됨
- 주요 CDN 서비스에서 HTTP 요청 처리가 다르게 해석되는 문제 발생
🔐 방어 방법 및 대응 방안
✅ 1. HTTP 요청 해석 방식 일관화
- Content-Length와 Transfer-Encoding을 혼합 사용하지 않도록 서버 설정 변경
- 예제 (Nginx 설정)
http {
proxy_http_version 1.1;
proxy_set_header Connection "";
}
✅ 2. 보안 패치 적용
- 최신 웹 서버 및 프록시 소프트웨어 사용
- 예제 (Apache 설정)
RequestHeader unset Transfer-Encoding
✅ 3. 웹 애플리케이션 방화벽(WAF) 적용
- HTTP Smuggling 공격 패턴 탐지 및 차단
- 예제 (ModSecurity 설정)
SecRule REQUEST_HEADERS:Transfer-Encoding "@rx chunked" "id:1000001,deny,status:403"
✅ 4. 정기적인 취약점 점검 수행
- Burp Suite, OWASP ZAP을 사용하여 HTTP Desync 취약점 테스트
- 예제 (Burp Suite 활용)
Attack Type: HTTP Smuggling
Test Mode: TE.CL & CL.TE
✅ 5. 프록시 및 CDN 보안 설정 강화
- 프록시 및 CDN에서 HTTP 요청을 엄격히 검증
- 예제 (Cloudflare WAF 적용)
Rule: Block Suspicious HTTP Smuggling Patterns
📌 해시태그
#HTTPDesync #웹보안 #보안취약점 #API보안 #서버보안 #웹방화벽 #리버스프록시 #로드밸런서 #CDN보안
반응형
'보안' 카테고리의 다른 글
2025년 OWASP LLM 보안 Top 10: AI 애플리케이션의 주요 보안 위협과 대응 전략 (0) | 2025.02.27 |
---|---|
⚡ Fast Flux DNS 공격: 지속적으로 변경되는 IP를 이용한 보안 탐지 우회 🚨 (0) | 2025.02.21 |
🛑 Subdomain Takeover: 삭제된 서브도메인을 점유하여 피싱 공격 🚨 (0) | 2025.02.21 |
🌐 DNS Rebinding: 도메인을 내부 네트워크 IP로 변조하여 내부 시스템 침투 🚨 (0) | 2025.02.20 |
🚨 JWT 공격(JSON Web Token Exploitation): 취약한 서명 알고리즘을 악용한 토큰 변조 🔓 (0) | 2025.02.20 |