
Detect HTTP stalling attacks like slowloris with Bro
HTTP-Stalling-DoS-Angriffe nutzen die Unfähigkeit von Webservern aus, zu erkennen, ob ein entfernter Client lediglich über eine langsame Verbindung verbunden ist oder ob der entfernte Client absichtlich Daten sehr langsam sendet, um zu vermeiden, dass der Webserver ein Timeout durchführt und die Verbindung schließt, um lokale Systemressourcen zu schonen. Das typische Verhalten, das Angreifer zeigen, besteht darin, viele Verbindungen zu öffnen und Daten langsam herauszutröpfeln, um zu verhindern, dass der Webserver die Verbindung per Timeout beendet. Wenn ein Webserver einen eher kleinen Worker-Pool verwendet, kann diese Ressourcenerschöpfung leicht erreicht werden.
Viele moderne Webserver sind inzwischen defensiver gegenüber solchen Ressourcenerschöpfungsangriffen geworden, aber es ist dennoch umsichtig, auf diese Angriffe zu achten, und es ist sehr gut möglich, dass eine Reihe verwundbarer Webserver weiterhin in Produktionsnetzwerken vorhanden sind. Es ist auch möglich, dass ein Webserver gegen eine Form des Angriffs resistent und dennoch gegen eine andere verwundbar ist. Beispielsweise könnte ein Webserver resistent gegen langsam gesendete Daten im POST-Body sein, aber verwundbar gegen langsam gesendete Daten in einem einzelnen HTTP-Header oder mehreren HTTP-Headern. Dieses Skript soll den allgemeinen Umstand erkennen, dass Daten in irgendeinem Teil der Client-Anfrage zu langsam gesendet werden, und sollte alle diese Angriffsarten erkennen.
Am einfachsten lässt sich dies über den Bro-Paketmanager installieren::
bro-pkg refresh
bro-pkg install bro/corelight/http-stalling-detector
Die Ausgabe dieses Skripts besteht aus zwei Notices:
HTTPStalling::Attacker – Dies zeigt an, dass ein Angreifer erkannt wurde, der einen HTTP-Stalling-Angriff durchführt.
HTTPStalling::Victim – Dies zeigt an, dass ein bestimmter Host von einem oder mehreren Angreifern ins Visier genommen wurde.
Die Notices werden aus diesem Grund in zwei geteilt: Es gibt Software für diese Angriffe, die Proxys verwenden kann, um die Angreifer über viele Ursprungs-IP-Adressen zu verteilen. Die Sorge besteht darin, dass, wenn von einer IP-Adresse jemals nur eine einzige Anfrage kommt, der Angriff niemals erkannt würde. Durch die Aufteilung in Angreifer und Opfer erscheint das Opfer auch bei dieser Art von Verschleierungsversuch sehr deutlich.
Geschrieben von Seth Hall [email protected]