Wie kann ich Slowloris erkennen?

Wie kann ich Slowloris erkennen?

Ich bin ziemlich sicher, dass ich einem Slowloris-Angriff ausgesetzt war. Ich habe eine iptables-Regel eingerichtet, um die maximale Anzahl an Verbindungen zu meinem Webserver zu begrenzen, aber ich würde gerne wissen, wie ich herausfinden kann, ob es wirklich ein Slowloris-Angriff war, und wenn ja, wie ich die IP-Adresse des Angreifers herausfinden kann. Ich würde die Protokolle wirklich gerne an seinen ISP weitergeben.

Danke

Antwort1

Slowloris-Angriffe funktionieren, indem Anforderungsdaten so langsam wie möglich gesendet werden. Wenn Sie also die Bandbreitennutzung pro IP-Adresse messen könnten und diese unter einem bestimmten Schwellenwert liegt (der durch Messen der Bandbreite bei einem bekannten Slowloris-Angriff ermittelt wurde), dann wissen Sie, dass Sie angegriffen werden.

Um Angriffe zu verhindern, würde ich vorschlagen, die Software Ihres Webservers zu wechseln. Ich verwende Cherokee, das in seiner Standardkonfiguration resistent ist. Ich kann nicht feststellen, ob Nginx anfällig ist, aber Lighttpd schon. Ich bin mir auch nicht sicher, ob die Verwendung eines resistenten Webservers als Proxy einen Unterschied macht.

Hier finden Sie weitere Informationen:http://ha.ckers.org/blog/20090617/slowloris-http-dos/

Antwort2

Level 1: einfaches Slowloris-DOS


Um die IP-Adresse des Slowloris-Angreifers zu finden, verwende ich die folgende Befehlszeile:

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

Dadurch erhalten Sie die Anzahl der aktiven Verbindungen für jede verbundene IP

Wenn Sie einem einfachen DOS-Angriff ausgesetzt sind, einem Kind mit einer oder wenigen IPs, handelt es sich bei dem mit 50–100 Verbindungen (oder mehr) höchstwahrscheinlich um einen Slowloris-Angreifer, den Sie abwehren können.

Dies dient dazu, sie „in Echtzeit“ zu erkennen und zu löschen (mit iptables oder Ihrem bevorzugten hlfw), wenn Sie während des Angriffs mit dem Server verbunden sind.

Das Hinzufügen der Verarbeitungszeit (Argument %D oder %T) zu Ihren Apache-Protokollen kann wahrscheinlich auch dazu beitragen, Slowloris-Angriffe „postmortem“ durch Analyse der Protokolle zu erkennen. Wenn diese Informationen nicht in Ihren Protokollen vorhanden sind, werden Sie nichts Interessantes finden können. Siehehttp://httpd.apache.org/docs/current/mod/mod_log_config.htmlfür die Protokollkonfiguration.

Level 2: richtig großer Slowloris-DDOS


netstat (verwenden Sie watch netstat zum Aktualisieren) kann Ihnen immer noch dabei helfen zu erkennen, dass einige IPs einfach immer verbunden sind

Um Slowloris zu bekämpfen, installieren Sie auf Apache die Reqtimeout-Module und richten Sie sie ein, Beispiel:

http://pastebin.com/3BNNwfyb

Danach handelt es sich bei jedem 408-Fehler, den Sie im Zugriffsprotokoll sehen, mit 99,999 %iger Sicherheit um die IP eines Slowloris-Angreifers.

Mit dem Apache-Modul „reqtimeout“ können Sie Tausenden von IPs und Tausenden von Paketen/Sekunde auf einem anständigen dedizierten Server problemlos standhalten.

Iptables kann auch bei Dingen wie diesen ein wenig helfen:

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

verwandte Informationen