슬로로리스를 어떻게 검출할 수 있나요?

슬로로리스를 어떻게 검출할 수 있나요?

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

감사해요

답변1

Slowloris 공격은 요청 데이터를 최대한 느리게 보내는 방식으로 작동합니다. 따라서 IP 주소당 대역폭 사용을 측정할 수 있고 임계값(알려진 슬로우로리스 공격에서 대역폭을 측정하여 발견)보다 낮으면 공격을 받고 있음을 알 수 있습니다.

공격을 방지하려면 웹서버 소프트웨어를 전환하는 것이 좋습니다. 나는 기본 구성에서 저항력이 있는 체로키를 사용합니다. nginx가 취약한지 확인할 수 없지만 lighttpd는 취약합니다. 또한 저항성 웹서버를 프록시로 사용하는 것이 어떤 차이를 가져올지 확신할 수 없습니다.

자세한 내용은 다음과 같습니다.http://ha.ckers.org/blog/20090617/slowloris-http-dos/

답변2

레벨 1: 단순 슬로우로리스 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 사용)하는 것입니다.

Apache 로그에 처리 시간( %D 또는 %T 인수)을 추가하면 로그를 분석하여 "사후" 슬로로리스 공격을 탐지하는 데 도움이 될 수 있습니다. 로그에 이 정보가 없으면 흥미로운 내용을 찾을 수 없습니다. . 보다http://httpd.apache.org/docs/current/mod/mod_log_config.html로그 구성을 위해

레벨 2: 진짜 대형 슬로로리스 DDOS


netstat(새로 고침을 위해 watch netstat 사용)은 여전히 ​​일부 IP가 항상 연결되어 있는지 확인하는 데 도움이 될 수 있습니다.

Slowloris와 싸우려면 Apache에서 reqtimeout 모듈을 설치하고 설정하십시오. 예:

http://pastebin.com/3BNNwfyb

그 후에는 access_log에 표시되는 모든 408이 99.999% 확실하게 슬로로리스 공격자 IP입니다.

reqtimeout 아파치 모듈을 사용하면 괜찮은 전용 서버에서 수천 개의 IP와 수천 개의 패킷/초를 쉽게 견딜 수 있습니다.

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

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP

관련 정보