Montag, 11. Juli 2011


Topthema

Donnerstag, 18. Februar 2010 | Topthema

About Security #243: Schwachstellen-Suche: DoS verhindern (2)

(Link zum Artikel: http://www.entwickler.de/entwicklerde/kolumnen/054001)

Bei der Abwehr von DoS-Angriffen hat jeder Betreiber einer Webanwendung einen natürlichen Verbündeten: Seinen ISP, der ggf. ebenso unter dem DoS-Angriff zu leiden hat wie er selbst.

Mitgegangen, mitgefangen

Abgesehen von wenigen Sonderfällen kommt beim Betrieb einer Webanwendung früher oder später ein Dritter ins Spiel, dessen Dienstleistungen in Anspruch genommen werden. Z.B. weil der Webserver im Rechenzentrum eines ISP oder einem Colocation-Standort gehosted wird, weil die Netzwerkanbindung des eigenen Standorts über einen oder mehrere ISP an einen Backbone angebunden ist oder der DNS-Server durch einen darauf spezialisierten Anbieter bereit gestellt wird. Dieser Dritte ist ein natürlicher Verbündeter im Kampf gegen DoS-Angriffe, da sie seine Infrastruktur ebenfalls in Mitleidenschaft ziehen.

Insbesondere der DNS-Server ist ein potentielles Ziel für DoS-Angriffe: Kann der Domainname nicht zur IP-Adresse aufgelöst werden, ist die Webanwendung nicht mehr erreichbar - obwohl der Server völlig einwandfrei funktioniert. Auch bei der Abwehr eines DoS-Angriffs kann der DNS-Server helfen, indem darüber ein einfaches Load Balancing realisiert wird: Beim Einsatz des Round-Robin-Verfahrens wird für einen Domainnamen der Reihe nach die IP-Adresse eines von mehreren zuständigen Servern zurück geliefert und die Last damit auf mehrere Server verteilt. Ein so implementiertes Load Balancing wird zwar vom Angreifer bemerkt und kann dann beim Angriff berücksichtigt werden, verlangsamt den Angriff aber auf jedem Fall, denn statt eines Servers müssen nun mehrere angegriffen werden.

Global statt lokal

Eine Nummer größer sind Anbieter, die Global Server Load Balancing (GSLB) bereit stellen, bei denen die Anfragen je nach geographischer Herkunft auf mehrere weltweit verteilte Server aufgeteilt werden. Zum einen führt diese Redundanz dazu, dass im Falle eines DoS-Angriffs dann (hoffentlich) nur einer oder ein Teil der Server lahm gelegt wird, während die anderen weiter ihren Dienst tun. Zum anderen werden DDoS-Angriffe aus verschiedenen Regionen automatisch auf mehrere Server verteilt, so das (wieder hoffentlich) nicht alle Server lahm gelegt werden.

Auch weltweite Caches wie sie z.B. von Akamai bereit gestellt werden, haben ähnliche Auswirkungen auf DoS/DDoS-Angriffe. Da sie aber nur für statische Inhalte einsetzbar sind, ist ihr Nutzen begrenzt.

Netzwerk und Server härten

Eine weitere Maßnahme zur Abwehr von DoS-Angriffen ist das Härten des Netzwerks und der Server. Je nachdem, wie viel Kontrolle der Betreiber darüber hat, muss der ISP hinzugezogen werden, der dann seinen Teil der Infrastruktur härten muss. Im Netzwerk sollte der gesamte Traffic so früh wie möglich gefiltert werden, um nicht unnötig Daten zum Server zu transportieren, der sie dann doch nur verwirft. Im Falle eines DoS-Angriffs kommt hinzu, dass bösartige Netzwerkpakete um so mehr Ressourcen verbraucht haben, je weiter sie im Netzwerk vordringen können. Gespoofte Pakete, die angeblich aus dem internen Netz kommen, sowie Pakete mit nicht routbarer Senderadresse sollten schon vom Border-Router verworfen werden. Ob ICMP-Pakete ausgefiltert werden, ist Geschmacksache: Das Ausfiltern verhindert ICMP-basierte Angriffe (siehe About Security #58), aber auch den Einsatz nützlicher Diagnosefunktionen. Daher empfiehlt es sich, wenn möglich einen bestimmten, kleinen Anteil der Bandbreite für ICMP-Traffic frei zu geben statt die Pakete vollständig auszufiltern. Dadurch werden Flooding- und Smurf-Angriffe gestoppt, die Nutzung von Diagnosefunktionen aber nicht unnötig verhindert.

About Security: Die komplette Serie

Das Härten des Servers wird in einer zukünftigen Folge von About Security ausführlich behandelt. Zur Abwehr von DoS-Angriffe besteht die wichtigste Maßnahme darin, System und Anwendungen auf dem aktuellen Stand zu halten, um nicht das Opfer eine DoS-Schwachstelle zu werden, für die es bereits einen Patch gibt. Außerdem muss ggf. der TCP/IP-Stack gegen DoS-Angriffe gehärtet werden, dafür gibt es z.B. unter Linux die SYN Cookies zur Abwehr von SYN-Floods.

Webanwendung sicher entwerfen

Eine Webanwendung stellt i.A. eine Vielzahl von Funktionen bereit - und sehr viele davon lassen sich für DoS-Angriffe missbrauchen. Daher muss schon beim Entwurf der Anwendung die Bedrohung durch DoS-Angriffe berücksichtigt werden. Böse ausgedrückt, geht es beim sog. "Threat Modelling" darum, die Anwendung zu (zer)stören: Jede gewünschte Funktion wird aus dem Blickwinkel eines Angreifers auf mögliche Schwachpunkte untersucht, um diese dann im Gegenzug zu beseitigen - oder notfalls die Funktion zu verwerfen, wenn sie sich nicht sicher implementieren lässt. Wobei das zumindest im Rahmen der Abwehr von DoS-Angriffen kaum notwendig sein wird. Im wesentlichen geht es dabei darum, mit den vorhandenen Ressourcen verantwortungsvoll um zu gehen, so dass ein Angreifer sie nicht alle für sich reserviert und dadurch alle anderen Benutzer an der Nutzung der Anwendung hindern kann. Worauf man dabei achten muss, ist das Thema der nächsten Folge.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security - Übersicht zum aktuellen Thema:

Kommentare

Folgende Links könnten Sie auch interessieren