답변:
Slowloris 공격은 가능한 한 느리게 요청 데이터를 전송하여 작동합니다. 따라서 IP 주소 당 대역폭 사용을 측정 할 수 있고 알려진 slowloris 공격에서 대역폭을 측정하여 찾은 임계 값보다 낮은 경우 공격을 받고있는 것입니다.
공격을 방지하기 위해 웹 서버 소프트웨어를 전환하는 것이 좋습니다. 기본 구성에 강한 cherokee를 사용합니다. nginx가 취약한 지 확인할 수는 없지만 lighttpd는 취약합니다. 또한 내성 웹 서버를 프록시로 사용하면 큰 차이가 없을 것입니다.
자세한 정보는 다음과 같습니다. http://ha.ckers.org/blog/20090617/slowloris-http-dos/
레벨 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 모듈을 설치하고 설정하십시오 (예 :
그 후, 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