Slowloris를 어떻게 감지합니까?


14

나는 내가 Slowloris 공격을 받고 있다고 확신합니다. 웹 서버에 대한 최대 연결을 제한하기 위해 iptables 규칙을 설정했지만 실제로 Slowloris 공격인지 알아낼 수있는 방법과 그렇다면 공격자의 IP 주소를 찾는 방법을 알고 싶습니다. 로그를 ISP에 전달하고 싶습니다.

감사

답변:


5

Slowloris 공격은 가능한 한 느리게 요청 데이터를 전송하여 작동합니다. 따라서 IP 주소 당 대역폭 사용을 측정 할 수 있고 알려진 slowloris 공격에서 대역폭을 측정하여 찾은 임계 값보다 낮은 경우 공격을 받고있는 것입니다.

공격을 방지하기 위해 웹 서버 소프트웨어를 전환하는 것이 좋습니다. 기본 구성에 강한 cherokee를 사용합니다. nginx가 취약한 지 확인할 수는 없지만 lighttpd는 취약합니다. 또한 내성 웹 서버를 프록시로 사용하면 큰 차이가 없을 것입니다.

자세한 정보는 다음과 같습니다. http://ha.ckers.org/blog/20090617/slowloris-http-dos/


10

레벨 1 : 간단한 slowloris DOS


slowloris 공격자의 IP 주소를 찾으려면 다음 명령 줄을 사용하십시오.

netstat -ntu -4 -6 |  awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' |  sort | uniq -c | sort -n

연결된 각 IP에 대한 활성 연결 수를 제공합니다.

간단한 DOS 공격, 하나 또는 몇 개의 IP를 가진 아동, 50-100 개의 연결을 가진 아동 (들)은 가장 느린 공격자가 될 수 있습니다.

이것은 공격 중에 서버에 연결되어 있으면 iptables 또는 선호하는 hlfw로 "실시간"탐지하고 삭제하는 것입니다.

아파치 로그에 처리 시간 (% D 또는 % T 인수)을 추가하면 로그를 분석하여 slowloris 공격 "postmortem"을 감지하는 데 도움이 될 수 있습니다. 로그에이 정보가 없으면 흥미로운 것을 찾을 수 없습니다. . 로그 구성에 대해서는 http://httpd.apache.org/docs/current/mod/mod_log_config.html 을 참조 하십시오 .

레벨 2 : 진짜 큰 slowloris DDOS


netstat (watch netstat for refresh 사용)를 사용하면 일부 IP가 항상 연결되어 있음을 알 수 있습니다

slowloris와 싸우려면 아파치에서 reqtimeout 모듈을 설치하고 설정하십시오 (예 :

http://pastebin.com/3BNNwfyb

그 후, access_log에 표시되는 408마다 99.999 %의 slowloris 공격자 ip가 확실합니다.

reqtimeout apache 모듈을 사용하면 적절한 전용 서버에서 초당 수천 개의 ip 및 수천 개의 패킷을 쉽게 견딜 수 있습니다.

Iptables는 다음과 같이 약간 도움이 될 수 있습니다.

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.