[보안용어] RUDY Attack(HTTP POST Attack)
http://crefunx.tistory.com/m/35
[형태]
- HTTP POST method는 기본적으로 content-length 값을 이용하여 데이터공간을 확보후 HTTP request하는 것
- 이때 수신을 할 때 수용하는 데이터를 1byte 단위로 처리하도록 함(POST Method 사용)
[정의]
- R.U.D.Y는 R-U-Dead-Yet(이하 RUDY)의 약자
- 긴 데이터를 segmentation 하여 HTTP로 전송하는 방식으로 서비스 거부를유발 공격은 Console을 통해 이루어지며
POST Method를 이용하여 설정파일에 기록된 URL을 대상으로 공격을 수행함
- 많은 데이터(Contents-length : 100,000,000 Byte)를 보낼꺼라고 이야기 해놓고 정작 1byte 단위로 발송하고 이렇게 되면
그 event를 처리하는 서버 측은 부하가 발생하게 되는 것
[참고]
- HTTP Slow Read Attack : 유사한 공격으로 요청 받게 되는 대용량요청을Real시 1byte단위로 수신하는 공격
[방어]
- Http 매커니즘을 이용한 공격들이라 Http 매커니즘을 바꾸지 않으면 사실 근본적인 해결이 될수 없음
- 결국 공격 시그니처를 통한 방어가 최선책
- 다단계 방어책 수립
* 동시 접속자 모니터링을 해야함
(POST 데이터 전송 유형에 대한 것과 웹서버 커넥션 자원에 대한것)
* RUDY를 이용한 공격차단 : User-Agent 필드 대상으로 특정문자열(Python-urllib /2.7)필터링, 해당 IP 차단
* L7 스위치 캐싱 시스템을 이용한 차단 : 캐싱 장비에서 Request timeout을 이용하여 차단가능
(제일 오래된 것부터 짜르는 방식을 이용함)
* Content-length 크기에 대한 임계치 설정 : 일정 크기 이상의 Content-length 값을 요청하는 IP 차단
* 연결 Timeout 설정 : 일정 시간 이상 연속된 데이터를 보내지 않는 접속자에 대해 차단
* 동시 연결에 대한 임계치 설정 : 다수의 커넥션을 동시에 연결하지 못하도록 차단
[자세한 내용]
http://www.hybridsec.com/papers/OWASP-Universal-HTTP-DoS.ppt