Slow HTTP POST DOS(RUDY Attack)
Slow HTTP POST DOS(RYDY) Attack 패킷정보
비정상 트래픽을 보면 HTTP헤더의 Content-Length가 100000000Byte로 설정되어 있는데 실제 전송되는 데이터는 일정한 간격으로 1Byte씩 전송함을 알 수 있다.
R-U-Dead-Yet (Are You dead yet?)
Slow HTTP POST DOS(RUDY) 공격은 HTTP POST메소드를 이용하여 서버로 전달할 대량의 데이터를 장시간에 걸쳐 분할 정송하며, 서버는 POST데이터를 모두 수신하지 않았다고 판단하여 연결을 장시간 유지하므로 가용량을 소비하게 되어 다른 클라이언트의 정상적인 서비스를 방해하는 서비스 거부 공격이다.
클라이언트(웹 브라우저)는 HTTP요청을 통해 데이터를 웹서버로 전달하고자 할 때 POST방식(메소드)을 사용하고, 메시지의 유형과 크기 정보를 전달하기 위해 Content-Type 헤더 필드와 Content-Length 헤더 필드를 사용한다.
기본적으로 웹서버는 Content-Type 헤더 필드를 참고해서 데이터의 유형을 파악하고, Content-Length 헤더 필드를 참고해서 데이터의 길이를 파악한 후 해당 데이터의 길이만큼 읽어 들이는 작업을 수행한다. 공격자는 이부분의 취약점을 이용하여 공격할 수 있다.
공격자는 Content-Length를 비정상적으로 크게 설정한 후 매우 소량의 데이터를 지속적으로 천천히 웹서버에 전송하면 웹 서버는 Content-Length 헤더 필드에 명시된 크기만큼 데이터를 모두 수신하기 위해 연결 상태를 유지하면서 대기하게 된다. 이런 방식으로 다수의 연결을 지속시키게 되면 대상 웹서버의 연결 자원(가용량 : 웹서버로 접속할 수 있는 최대 클라이언트 수)이 모두 소진되어 정상적인 요청을 받을 수 없는 상태가 된다.