Eine HTTP-Flood-Attacke ist eine besondere Form der DDoS-Attacken (Dis­tri­bu­ted Denial of Service). Hierbei versucht man die Webseite oder Ap­pli­ka­ti­on durch eine Vielzahl an Besuchen von ver­schie­de­nen Stellen zum Absturz zu bringen. Eine HTTP-Flood-Attacke wird oft auch als Layer-7-Attacke be­zeich­net. Mit Layer 7 ist der „Ap­pli­ca­ti­on Layer“ im OSI-Modell gemeint. Das Modell besagt, dass das Internet aus sieben Schichten besteht.

Eine Attacke in dieser Schicht besteht immer darin, dem Netzwerk oder dem Server die Res­sour­cen zu entziehen. Sobald die Hardware nicht mehr genügend Res­sour­cen zur Verfügung hat, wird die Be­ant­wor­tung der Anfragen durch den Client mehr Zeit benötigen. Da weiterhin unzählige Anfragen an die Hardware gestellt werden, wird eine ständige Über­las­tung des Systems erzeugt und der Server oder das gesamte Netzwerk ist nicht mehr er­reich­bar.

Wenn Angreifer eine HTTP Flood einsetzen, versuchen sie einen Server-Crash über ganz ge­wöhn­li­che Anfragen her­zu­lei­ten. Wie werden die HTTP-Methoden zu ge­fähr­li­chen Attacken?

Wie läuft eine HTTP Flood ab?

Eine HTTP-Flood-Attacke basiert auf der GET- oder POST-Anfrage vom Client. Der Client, also der Browser, der die Webseite aufruft, wird eine dieser Anfragen ver­schi­cken, der Server ver­ar­bei­tet die Anfrage und schickt das Resultat an den Client zurück.

Mit der GET-An­for­de­rung werden statische Inhalte abgerufen, etwa Bilder oder Text­blö­cke. Eine POST-An­for­de­rung wird verwendet, wenn der Zugriff auf dy­na­mi­sche Res­sour­cen angefragt wird. Ver­ein­facht kann man sagen, die GET-Methode erhält Daten vom Server und die POST-Methode schickt Daten an den Server. In der Attacke können beide Methoden verwendet werden, jedoch wird die POST-Methode öfter ein­ge­setzt, da sie eine komplexe Ver­ar­bei­tung durch den Server erfordert.

Die HTTP-Flood-Attacke setzt darauf, dass viele solcher Anfragen gleich­zei­tig über einen längeren Zeitraum gestellt werden. Dabei wird meistens ein Botnet ein­ge­setzt, um das Volumen der Anfragen zu erhöhen. Die HTTP-Flood-Attacke ist so gestaltet, dass der Server jeder Anfrage die größt­mög­li­che Ressource zuweist. In einer normalen Situation ist dies gewollt, da der Server nicht tausende oder hun­dert­tau­sen­de Anfragen pro Minute erhält. Mit der hohen Anzahl der Anfragen und Aufrufe erwartet der Angreifer, dass der Server mit den pro­zess­in­ten­si­ven Anfragen über­las­tet wird und die Webseite oder Ap­pli­ka­ti­on nicht mehr ord­nungs­ge­mäß angezeigt wird.

Wie kann man die Attacke stoppen?

Da es durchaus vorkommen kann, dass eine Seite temporär viel Traffic erhält, ist es schwierig zu ent­schei­den, ob die ge­stie­ge­ne An­fra­ge­men­ge eine Attacke darstellt oder nur das Ergebnis einer ge­lun­ge­nen Marketing-Kampagne ist. Wenn jedoch eine HTTP-Flood-Attacke fest­ge­stellt wurde, können Firewalls die ver­däch­ti­gen IP-Adressen kenn­zeich­nen und blo­ckie­ren.

Als ersten Schritt kann man in einer solchen Situation eine so­ge­nann­te Ja­va­Script Com­pu­ta­tio­nal Challenge an den Client zu­rück­sen­den. So lässt sich einfach ana­ly­sie­ren, ob der Client zu einem Botnet gehört oder ein regulärer Nutzer ist. Im Gegensatz zum Bot kann jeder Browser eines normalen Website-Besuchers diese zu­sätz­li­che Hürde be­ar­bei­ten.

Wenn die Vor­ge­hens­wei­se der Attacke bekannt ist, können im Firewall-System einfache Regeln ein­ge­führt werden, die die IP-Adressen des Botnets au­to­ma­tisch blo­ckie­ren. Nor­ma­ler­wei­se kann eine HTTP Flood in wenigen Minuten erkannt und gestoppt werden, wenn man weiß, dass dies die Ursache für den Sys­tem­aus­fall ist.

Wie kann man sich davor schützen?

Es ist sehr schwer, sich vor einer HTTP-Flood-Attacke zu schützen, da die Anfragen zunächst wie normaler Traffic auf der Webseite aussehen. Es wird keine Malware an den Server gesendet und es wird auch nicht versucht, even­tu­el­le Si­cher­heits­lü­cken zu nutzen. Statt­des­sen fluten die Angreifer den Server mit erlaubten Zugriffen. Da dies bedeutend weniger Band­brei­te ver­braucht als ein ge­walt­vol­les Ein­drin­gen in den Code der Seite, sind die Attacken in den Anfängen meist unerkannt.

Die meisten Webseiten setzen auf einen Captcha-Test, der manuell durch einen echten Nutzer aus­ge­führt werden muss. Dadurch ist ein Botnet im Vorfeld zu erkennen, und die IP-Adressen können blockiert werden. Es gibt aber auch Firewalls für Websites und Ap­pli­ka­tio­nen. Diese Systeme über­prü­fen und ana­ly­sie­ren den Traffic, der auf der Website eingeht. Die Seite wird dadurch nur minimal ver­lang­samt, dafür wird jedoch ihr Schutz und ihre Sta­bi­li­tät ge­währ­leis­tet. Sollte die Seite an sich schon daten- und pro­zess­in­ten­siv sein, bietet es sich an, einen La­de­bild­schirm zu in­te­grie­ren, während die Haupt­sei­te im Hin­ter­grund geladen wird.

Hinweis

HTTP Flood ist nur eine der ver­schie­de­nen Formen von DDoS-Attacken. Auch mit Ping-Flood, SYN-Flood, UDP Flood und dem Ping of Death versuchen Angreifer, den Dienst von Web­ser­vern zu un­ter­bin­den.

Zum Hauptmenü