HTTP 요청 스머글링은 주로 프론트엔드(프록시 또는 로드 밸런서로도 알려짐) 서버와 백엔드 서버 간의 HTTP 요청 처리의 차이를 이용하는 복잡하고 정교한 웹 보안 취약점입니다. 이 취약점은 공격자가 다른 요청에 모호하고 악의적인 HTTP 요청을 숨길 수 있게 하여 무단 액세스, 세션 하이재킹, 크로스 사이트 스크립팅(XSS) 공격 등의 다양한 보안 문제를 유발할 수 있습니다.
HTTP 요청 스머글링은 주로 백엔드 서버에 도달하기 전에 HTTP 요청이 통과하는 서버 체인(프록시, 캐시, 웹 애플리케이션 방화벽 포함)에 의존하는 웹 애플리케이션을 타겟으로 합니다. 공격자는 이러한 서버 간의 HTTP 요청 구문 분석의 차이를 이용하여 악의적인 요청을 주입하거나 '스머글링'합니다.
CL.TE 및 TE.CL 취약점: 전송 인코딩을 기반으로 한 HTTP 요청 스머글링 취약점에는 주로 두 가지 유형이 있습니다: Content-Length (CL.TE)와 Transfer-Encoding: Transfer-Encoding (TE.CL). 공격자는 Content-Length
헤더, Transfer-Encoding
헤더 또는 둘 다 조작하여 서버가 HTTP 요청의 경계를 잘못 해석하도록 유도합니다.
사용된 기술: 공격은 헤더 분할 등과 같은 기술을 활용하는데, 공격자가 모호한 헤더나 본문 콘텐츠를 포함하는 요청을 생성하여 프론트엔드와 백엔드 서버가 요청의 끝과 새로운 요청의 시작이 어디인지 불일치하게 만듭니다. 이는 초기에는 프록시 수준의 보안 조치에 의해 차단된 악의적인 요청이 제대로 검토되지 않고 백엔드 서버에서 실행되는 시나리오로 이어질 수 있습니다.
HTTP 요청 스머글링 공격에 효과적으로 대응하기 위해 조직은 다각적인 접근 방식을 적용해야 합니다:
강력한 보안 프로토콜 구현: 위의 일반적인 팁 외에도 HTTP 요청을 안전하게 처리하도록 설계된 엄격한 보안 프로토콜 및 프레임워크를 사용하는 것은 스머글링과 기타 정교한 공격으로부터 웹 애플리케이션을 강화할 수 있습니다. HTTPS, 고급 웹 애플리케이션 방화벽(WAF), 백엔드 서버에 도달하기 전에 HTTP 요청을 구문 분석하고 정리하는 차세대 프록시와 같은 기술이 필수적인 조치입니다.
HTTP 요청 스머글링 공격의 성격과 방법론은 공격자가 서버 해석 간의 차이를 악용하기 위해 새로운 방법을 고안함에 따라 끊임없이 진화하고 있음을 주목하는 것이 중요합니다. OWASP와 CERT와 같은 조직을 포함한 사이버 보안 커뮤니티는 정기적으로 새로운 취약점 및 공격 벡터를 다루기 위한 보안 권고 사항 및 가이드를 업데이트합니다.
결론적으로, HTTP 요청 스머글링과 관련된 위험을 완화하려면 웹 서버 아키텍처에 대한 강력한 이해, 서버 구성의 지속적인 모니터링 및 업데이트, 포괄적인 보안 조치를 구현하는 것이 필요합니다. 많은 사이버 보안 위협과 마찬가지로 예방은 인식, 교육 및 선제적 보안 관행에 크게 의존합니다.