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

    Posted by beumbae