디스코드(Discord) 미디어 프록시(Media Proxy)에서 **HTTP Desync 공격**으로 전 플랫폼 감시 가능

by DD
1개월 전
조회수 8

디스코드(Discord) 미디어 프록시(Media Proxy)에서 HTTP Desync 공격(HTTP Desync Attack)을 통해 전 세계 사용자의 첨부 파일에 접근 가능

공격자는 HTTP 요청에 제어 문자(Control Characters)를 삽입하여 백엔드 서버의 요청을 변조

GCP 버킷(GCP Bucket) 연결 풀(Connection Pool) 재사용의 허점을 이용, 다른 사용자의 요청을 가로채는 방식

커뮤니티에서는 로드 밸런서(Load Balancer)의 취약점을 지적하며, 유사한 버그 발생 가능성을 제기

HTTP Desync 공격의 기술적 원리

해당 공격은 디스코드(Discord) 미디어 프록시(Media Proxy)가 HTTP 요청을 처리하는 과정에서 발생한 취약점을 악용한다. 특히, 공격자는 HTTP 요청에 공백 문자(Space Character)제어 문자(Control Characters)를 삽입하여 백엔드 서버로 전송되는 요청을 변조한다. 기술적으로 보면, 이러한 문자들은 HTTP 메시지를 손상시켜 연결을 조기에 종료시키거나, 헤더를 주입하여 추가 요청을 큐에 넣는 방식으로 작동한다.

GCP 연결 풀(Connection Pool) 재사용의 취약점

공격의 핵심은 GCP 버킷(GCP Bucket)과의 연결 풀(Connection Pool) 재사용에 있다. 미디어 프록시(Media Proxy)는 효율성을 위해 연결을 재사용하는데, 공격자는 이 점을 이용하여 악성 요청을 삽입한다. 구체적으로, Content-Length를 과도하게 설정한 PUT 요청을 보내면, 다음 요청의 일부가 해당 요청의 바디(Body)로 간주되어 다른 사용자의 데이터를 탈취할 수 있다. 이는 데이터 격리 아키텍처(Data Isolation Architecture)의 실패를 의미한다.

공격의 확장성과 영향력

이 공격은 전 세계 디스코드(Discord) 사용자의 첨부 파일에 접근할 수 있게 해주는 심각한 보안 문제로 이어진다. 공격자는 스레딩(Threading)과 여러 파일을 사용하여 공격을 확장할 수 있으며, 이는 데이터 미저장 정책(Zero-Retention Policy)을 무력화할 수 있다. 실제 사례로는, 공격자가 다른 사용자의 첨부 파일을 실시간으로 감시하는 데 성공했다는 점이 강조된다.

커뮤니티의 로드 밸런서(Load Balancer) 취약점 지적

커뮤니티에서는 이와 유사한 HTTP Desync 공격이 다른 환경에서도 발생할 수 있다는 점을 지적한다. 특히, GCP의 로드 밸런서(Load Balancer)AWS CloudFront와 같은 서비스에서도 비슷한 취약점이 존재할 수 있다는 의견이 제시되었다. PortSwigger의 HTTP Desync 공격 관련 자료를 참고하여, 프로토콜 수준에서의 요청 흐름을 이해하는 것이 중요하다고 강조한다.

HTTP desync in Discord's media proxy: Spying on a whole platform

댓글 0

첫 번째 댓글을 남겨보세요!