slowloris Apache DOS attack tool detection rule – rev:2

Apache HTTP DoS tool released

http://isc.sans.org/diary.html?storyid=6601

 

Apache HTTP DoS tool

http://ha.ckers.org/slowloris/

 

 

얼마 전 Apache 웹 서버를 대상으로한 DOS 툴이 release되었다.

 

실행시 화면2

 

사용방법은 생략한다.

 

 공격 패킷

 

HTTP 헤더는 마지막에 \r\n으로 끝난다.

하지만 이 \r\n이 없을 경우 웹 서버는 완벽한 종결을 기다린다.

하지만 공격 툴은 완전히 끝마치지 않는다.

헤더가 끝나지 않은 것처럼 요청한 뒤 또 다른 요청을 보낸다.

 

웹 서버는 각 연결이 완결될 때 까지 기다린다.

이로써 connection이 full이 되어 DOS상태에 빠진다.

 

따라서 탐지를 하기 위해서는 HTTP 헤더의 가장 끝이 |0d0a0d0a| 끝나지 않는 헤더의 패킷이 들어올 경우 일정시간 동안 다음 패킷으로

완전한 헤더내용이 전달되지 않는다면 연결을 끊어야 한다.

 

일반 적인 룰은 다음과 같다.

 

alert tcp any any -> any 80 (flow:established, to_server; pcre:”/[^\x0d\x0a]\x0d\x0a$/”; threshold: type both , track by_dst, count 30, seconds 3;)

 

slowloris 만의 특징을 탐지하는 룰은 다음과 같다.

 

오탐이 일어날 수 있으므로 임계치가 중요하다.

 

오탐이 일어나는 예는 테스트 결과 멜론플레이어 같은 예이다.

 

 alert tcp any any -> any 80 (flow:established, to_server; content:”User-Agent|3A| Mozilla/4.0 |28|compatible|3B| MSIE 7.0|3B| Windows NT 5.1|3B| Trident/4.0|3B| .NET CLR 1.1.4322|3B| .NET CLR 2.0.503l3|3B| .NET CLR 3.0.4506.2152|3B| .NET CLR 3.5.30729|3B| MSOffice 12|29 0D 0A|”; content:”Content-Length|3A| 42|0d0a|”; distance:0; threshold: type both, track by_dst, count 50, seconds 2;)

alert tcp any any -> any 80 (flow:established, to_server; dsize:8; content:”X-a|3a20|b|0d0a|”; depth:8;)

 

slowloris는 위와 같은 두 가지 패턴으로 DOS 공격을 수행한다.

 

 

 

위 시그니처들은 적절한 임계치를 설정해주어야 좋은 룰이 될 수 있다.

 

웹 서버가 견딜수 있는 정도를 알고 네트워크 환경을 알아야한다.

Advertisements

About this entry