Hardware-View: Denial of Service
Titel: Denial of Service |
Hinweis: Für die Korrektheit oder Aktualität der Informationen kann nicht garantiert werden. Der Autor übernimmt daher keine Haftung für Schäden, die durch Nutzung der Informationen entstanden sind.
Wenn Sie ein aktiver Netzwerkadministrator sind, wird Ihnen der Begriff DoS kein Geheimnis mehr sein. Dies muss jedoch nicht zwangsläufig bedeuten, dass Sie wissen, wie Sie in einer solchen Situation handeln müssen. In diesem Artikel wird der DoS (Denial of Service) in seinen wichtigen Aspekten untersucht und näher gebracht. Sie werden hier keine Programmanleitungen finden, dafür aber einen strukturierten Aufbau einer DoS-Attacke. An dieser Stelle sei darauf hingewiesen, dass das Thema DoS eine ebenso schnelllebige Angelegenheit ist, wie das zu Grunde liegende Fachgebiet Datenverarbeitung selbst. Vermutlich sind bereits wenige Monate nach Veröffentlichung dieses Artikels einige der hier geschilderten Sachlagen in einem anderem Licht zu betrachten. Der Artikel ist kurz, er soll jedoch die Kernpunkte des Themas erläutern und weiterführende Quellen geben.
��DoS-Angriffe
Die Weiterentwicklung der Netzwerktechnologie schließt nicht nur Sicherheitslücken, ganz und gar nicht. Vor einigen Jahren regelmäßig, heute glücklicherweise relativ eingedämmt, entstehen neue Sicherheitslücken in den Systemen und Protokollen. Der Begriff entstehen ist hierbei als umfassend zu betrachten, denn er beinhaltet nicht nur entstehen im Sinne von neu hinzugefügt, sondern auch diejenigen Fälle, in denen Altes erstmals oder gar neu entdeckt wird. Sind alte oder neue Sicherheitslücken entstanden, hängt es von verschiedenen Komponenten ab, wie schnell die Lücke zum relevantem Sicherheitsfaktor wird. Solche Komponenten sind beispielsweise Charakter und Intention derjenigen Person, welche die Lücke schließlich entdeckt. Eine DoS-Attacke verursacht nun genau das, wofür der Name im Allgemeinen steht: Das Opfer wird nach einer erfolgreichen Attacke nicht mehr in der Lage sein, seine Dienste anzubieten bzw. diese nur noch sehr langsam anbieten, dabei nutzen destruktive Angriffsformen dieser Art im Allgemeinen genau solche Sicherheitslücken aus. Der Wirkungsgrad einer DoS-Attacke kann sich von lediglich einem Zielrechner bis hin zu einem ganzen Netzwerk erstrecken, die Wirkungsdauer von wenigen Sekunden bis hin zu Tagen und Wochen. Dies alles hängt vermutlich von der Erfahrung des bzw. der Angreifer und der des bzw. der Administratoren ab. Während bis zu diesem Punkt hauptsächlich der Aspekt der Sicherheitslücken betrachtet wurde, sei noch wichtig anzumerken, dass es für einen DoS in so manchen Fällen gar keiner Sicherheitslücke bedarf.
DoS-Angriffe werden in der Regel in folgende drei Varianten aufgeteilt:
- Bandbreitensättigung
- Ressourcensättigung
- Herbeiführung von System- und Anwendungsabstürzen
Bei einer Bandbreitensättigung geht der Angriff gezielt auf das Netzwerk bzw. dessen Hardware-Glossar: Router und andere Weiterleitungsstellen, oder konkret an die daran angeschlossenen Netzwerkverbindungen. Jeder Router kann nur eine endliche Datenmenge gleichzeitig bewältigen. Dies hängt von Ausstattung und Leistungsfähigkeit des Geräts ab. Die Bandbreitenkapazitäten eines Netzwerks beginnen bei einer normalen Hardware-Glossar: LAN-Topologie bei dem 10BASE-T-Standard und gehen bis zum 100BASE-T-Standard (10Mbit/s und 100Mbit/s), dabei gibt es noch viele weitere LAN-Standards und Netzwerktechnologien, wie beispielsweise dem Glasfasernetzwerk und dem Hardware-Glossar: WLAN. Ein DoS wird hier herbeigeführt, indem das angreifende Programm oder die angreifenden Programme die komplette Bandbreitenkapazität der Netzwerkverbindung in Anspruch nehmen. Fehlkonfigurationen der Soft- und Hardware können dabei ausgenutzt werden. Solange der Angriff fortsetzt und nicht unterbunden wird, kann der Router keine oder nur wenige Netzwerkdaten senden. Die Nutzung der bereit gestellten Dienste, beispielsweise Internet-, Datei-, Web- oder Mailserver, fällt demnach aus. Administratoren können im Grunde nur wenig gegen Angriffe dieser Art unternehmen. Der gebräuchlichste Ansatz ist derjenige, solche Pakete unbearbeitet vom Router oder der Hardware-Glossar: Firewall löschen zu lassen, die eindeutig dem Angriff zugeordnet werden, damit echte Pakete regulär weitergeleitet werden können.
Die Ressourcensättigung funktioniert auf ähnliche Weise, kommt laut diverser Statistiken jedoch häufiger zum Einsatz. Bei diesem Angriffs-Typ werden die für die Anwendung zur Verfügung stehenden Ressourcen des Zielsystems gezielt aufgebraucht. Da jeder Webserver eine maximale Verbindungsanzahl besitzt, kann diese so beispielsweise mit ungültigen Anfragen gefüllt werden, um andere (echte) Clients zu unterbinden. Bekannte Methoden hierfür sind unter anderem die SYN- und RST-Floods, welche mehrere Tausend gefälschte Verbindungsanfragen zum Hardware-Glossar: Server senden, und diesen so überfordern können (siehe Hardware-Glossar: Spoofing). Bei einer SYN-Flood-Attacke wird der Anfang des Three-Way- Handshakes" nachgeahmt, welcher bei einer Hardware-Glossar: TCP-Verbindung durchgeführt wird. Da die Ursprungs-Hardware-Glossar: IP-Adresse gefälscht ist, wartet der Server danach vergeblich auf den zweiten Handschüttler, und so häufen sich die unbeantworteten Verbindungen, bis der Server die maximale Anzahl der Verbindungen erreicht hat, und keine Verbindungen mehr akzeptiert. So kann kein anderer Client Informationen von diesem Server erhalten. Die Ressourcensättigung ist jedoch zumeist mit beachtlichem Analyseaufwand verbunden, wenn die Attacke von Erfolg gekrönt sein soll, im Gegensatz zur Bandbreitensättigung, bei der lediglich genügend angreifende Programme, man spricht häufig auch von Bots, vorhanden sein müssen. Die Wirkung einer Ressourcensättigung ist dagegen fast immer gewaltvoller, denn sie trifft den Zielrechner quasi im Kern, wenn man so will.
Die am simpelsten zu realisierende DoS-Attacke (abgesehen vom Analyseaufwand) ist die Herbeiführung von System- und Anwendungsabstürzen. Bei diesen werden allseits bekannte Programmfehler der Hard- und Software ausgenutzt, um so beispielsweise Endlosschleifen in Programmen auszulösen. Ein bekanntes Beispiel hierfür ist die Ping-of-Death-Attacke, bei welcher überlange Hardware-Glossar: ICMP-Echo-Requests verwendet werden. Der Zielrechner bricht früher oder später aufgrund der fehlerhaft implementierten Verarbeitung solcher Netzwerkdaten zusammen. Der zugrunde liegende Analyseaufwand ist jedoch mit derjenigen der Ressourcensättigung vergleichbar. Andererseits werden Sicherheitslücken dieser schwerwiegenden Art relativ schnell im Internet verbreitet, oft mit passenden Programmen, welche die Lücken ausnutzen.
Mögliche Schutzmaßnahmen
Leider liegt dem Erfolg einer DoS-Attacke nicht selten ein fehlerhaft konfiguriertes System zugrunde, dies muss jedoch nicht zwangsläufig der Fall sein. Sicherheit ist kein Produkt, es ist eine fortlaufende Prozedur, sagen zurecht viele Sicherheitsexperten. Folglich ist es dringend zu empfehlen, die Konfiguration der Geräte und Software kontinuierlich zu überwachen und mit aktuellen Patches der Anbieter zu aktualisieren. Glücklicherweise geschieht dies oft automatisiert. Ein (zugegebenermaßen sehr umstrittener) Ansatz gegen Systemabstürze, vorwiegend bedingt durch die Ressourcensättigung, ist das manuelle Verwalten der Prozessprioritäten. Die Priorität eines kritischen Prozesses könnte beispielsweise so niedrig gestellt werden, dass er bei einer Endlosschleife nicht sämtliche Ressourcen, beispielsweise die Hardware-Glossar: CPU-Zeit, aller anderen Prozesse in Anspruch nimmt. So könnten Sie womöglich einen vollständigen Systemabsturz hinauszögern, nicht jedoch verhindern. Bei diesem Ansatz ist zu bedenken, dass Prozesse, die beispielsweise 30% des installierten Speichers benötigen, diesen mit einer verringerten Priorität nach wie vor benötigen. Zeitintensive Datenbankabfragen werden mit verringerter Priorität weiterhin zeitintensiv bleiben, in der Regel sogar noch mehr Zeit in Anspruch nehmen. Insgesamt ist das Prioritätenverwalten lediglich als eine Möglichkeit für erste Notmaßnahmen anzusehen. Eine bekannte DoS-Attacke, und die in Lehrbüchern zum Thema vermutlich erste zu nennende, ist das SYN-Flooding (Gattung Ressourcensättigung), welches weiter oben bereits angesprochen wurde. Wenn Sie Opfer einer solchen Attacke sind, bleibt Ihnen zumeist lediglich das Inkrementieren (Erhöhen) der maximalen Verbindungs- bzw. Datenmenge und das anschließende Suchen nach regelmäßigen Signaturen des Angreifers bzw. angreifenden Programms, damit Sie diese Struktur Ihrem Router oder Ihrer Firewall mitteilen können, und diese den Angreifer schließlich beispielsweise mittels eines Paket-, oder Hardware-Glossar: IP-Filters abwehrt, sofern der Angreifer kein Spoofing (s.o.) anwendet. Sie werden jedoch schnell feststellen, dass das verwischen der Spuren eine der ersten Lektionen eines Hackers ist. Zu nennen ist hier das Hardware-Glossar: IP-Spoofing, Hardware-Glossar: ARP-Spoofing oder auch das Hardware-Glossar: DNS-Spoofing, wobei ersteres häufig zum Einsatz kommt. Wenn ein Angriff dermaßen kritisch eingeschlagen hat, ist zudem eine Maßnahme, den Rechner schlichtweg auszuschalten. Dabei steht im Vordergrund Traffic, und somit Geld, einzusparen. Weiterhin empfehlenswert ist wohl, als Administrator gewisse Programmierkenntnisse aufzuweisen, und in entsprechenden Entwicklergemeinden zu verkehren, und somit möglichst viel Erfahrungen zu sammeln. Selbst programmieren eröffnet bei so manchem Administrator neue Sichtweisen.
Eine kleine DoS-Attacken-Referenz
In diesem Abschnitt werden einige bekannte und gut dokumentierte DoS-Attacken, sowie deren Download-Links und weitere Informationen aufgelistet. Dass diese Attacken alt und gut dokumentiert sind, heißt nicht zwangsläufig, dass sie an Gefährlichkeit eingebüßt haben. Hacker erstellen oftmals so genannte Mutationen aus vorhandenen Programmen und ändern zumeist lediglich die Signatur an dem Programm. Schutzeinrichtungen, beispielsweise Hardware-Glossar: IDS (Intrusion Detection System), arbeiten häufig mit Signaturen, um Pakete einzustufen und zuzuordnen. Mit einer geänderten Signatur wäre die alte womöglich wertlos.
SYN-Flooding
Die bekannteste DoS-Methode ist das SYN-Flooding, welches von jedem Programmierer leicht erstellt werden kann. Die Wirkungsweise wurde weiter oben beschrieben. Unter www.packetstormsecurity.com können Sie ein Beispielprogramm namens synflood.c downloaden, welches auf einer Unix-Plattform geschrieben wurde und nahezu alle Ziel-Plattformen unterstützt.
Hardware-Glossar: UDP-Flooding
Ebenfalls unter www.packetstormsecurity.com unter dem Namen udpflood.tgz zu finden. Es wurde ebenfalls auf einer Unix-Plattform geschrieben und hat viele unterschiedliche Ziel-Plattformen. Die Wirkung ist der des SYN-Flooding ähnlich: Das Zielsystem empfängt mehr Daten, als es gleichzeitig verarbeiten kann und friert demnach ein. Die einzige Möglichkeit, sich dagegen zu wehren ist, schnellstmöglich die UDP-Datenströme zu sperren und mittels eines Paket-Sniffers, wie z.B. Tcpdump oder Windump, nach Signaturen des Angreifers zu suchen. Diese können Sie dann Ihrer Firewall o.ä. mitteilen, sodass künftige Angriffe dieser Art nicht mehr durchgelassen werden.
ICMP-Flooding
Suchen Sie auf www.packetstormsecurity.com nach pingflood und downloaden Sie das Programm namens pingflood.c. Dieses wurde auf einer Unix-Plattform geschrieben und hat wieder viele verschiedene Ziel-Plattformen. Ähnlich der zuvor beschriebenen DoS-Methoden, löst auch diese eine Nichtverfügbarkeit von Diensten im Netzwerk aus, indem es die verfügbare Bandbreite überbeansprucht. Die Gegenmaßnahmen sind die der Vorgänger: Datenstrom einschränken und nach Signaturen suchen.
Fraggle
Das ebenfalls unter www.packetstormsecurity.com zu findende Programm fraggle.c löst einen DoS aus, indem es dafür sorgt, dass das angegriffene System UDP-Netzwerkdaten an eine Zieladresse sendet, über die der Angreifer die Kontrolle hat. Es wurde unter Unix geschrieben und hat aufgrund des UDP-Datenmodus jedes System als potenzielles Angriffsziel, dass UDP-Daten verstehen kann. Gegenmaßnahmen sind das Sperren von unbenutzten Hardware-Glossar: Ports am Paketfilter der Firewall und das Neukonfigurieren der Netzwerkgeräte, sodass diese anschließend nicht mehr auf UDP-Broadcasts reagieren, auf welche sich das Programm bezieht.
BIND
Alle Informationen und den Code zum Berkeley Internet Name Daemon (-Killer) finden Sie unter packetstorm.linuxsecurity.com/Exploit_Code_Archive/bind_nuke.txt. Das Skript wurde unter Unix verfasst und kann jedes System angreifen, das BIND 8.1 ausführt. Die Wirkung des Skripts ist ein DoS im DNS-Server, indem es den BIND-Dienst zum Absturz bringt. Die Schutzmaßnahmen beschränken sich lediglich auf das Aufspielen der aktuellsten BIND-Versionen und das Hoffen, dass die verantwortlichen Programmierer hier nicht halbherzige Arbeit geleistet haben.
Smurf
Suchen Sie unter www.packetstormsecurity.com nach smurf und laden Sie das Programm smurf.c. Dieses wurde, wie alle bisherigen Programme auch, unter Unix verfasst und hat jedes ICMP-kompatibles System als potenzielles Ziel. Die Wirkung ist ähnlich derjenigen der Ping-of-Death Attacke, welche weiter oben beschrieben wurde: Es verursacht eine Nichtverfügbarkeit von Diensten im Zielsystem, indem es gefälschte ICMP-Echo-Requests an die Broadcast-Adresse des Zielsystems sendet. Gegenmaßnahmen: Deaktivieren Sie an IP gerichtete Broadcasts auf dem Router, und konfigurieren Sie die Betriebssysteme so, dass sie nicht auf Pakete antworten, die an IP-Broadcast-Adressen gerichtet sind.
Zu guter Letzt können wir Ihnen die Webseite www.packetstormsecurity.com empfehlen, wenn Sie immer auf dem neuesten Stand bezüglich der DoS-Attacken bleiben möchten. Werfen Sie dort einen Blick auf die Rubrik Last 20 Exploits.
Verteilte DoS-Attacken
Anfang 2000 kam eine neue DoS-Methode auf. Die Idee, sich andere Rechner zum Sklaven zu machen, und diese dann alle gemeinsam ein einziges Ziel angreifen zu lassen, wurde erstmals großflächig realisiert. Opfer dieses Tatendrangs wurden unter anderem Yahoo!, Amazon und eBay. In diesem Fall spricht man von dem Distributed Denial of Services (Hardware-Glossar: DDoS). Dabei wird die so genannte Master-Slave-Logik verwendet, wie sie gerade beschrieben wurde. Der Master bzw. das System des Angreifers steuert die Slaves bzw. die vom Angreifer zuvor eroberten Remote-Systeme, auf welche er sein DoS-Programm installiert hat. Der Angreifer übergibt den Slaves Parameter in Form von Zielhost und Angriffsmethode, und lässt diese dann zu einem bestimmten Zeitpunkt gemeinsam angreifen und beendet den Angriff ebenfalls gemeinsam. Bekannte Angriffsformen sind Trin00, TFN (Tribe Flood Network), TFN2k und Stacheldraht. Alle Programme und die dazugehörigen Informationen finden Sie unter www.packetstormsecurity.org/distributed. Wenn Sie mehr über DDoS erfahren möchten, gibt Ihnen Bennett Todds Artikel Distributed Denial of Service Attacks eine gute Einführung in das Thema. Sie finden ihn unter
www.linuxsecurity.com/resource_files/intrusion_detection/ddos-faq.html.
Weiterhin interessant ist Ciscos Artikel Strategies to Protect Against Distributed Denial of Service (DDoS) Attacks, zu finden unter www.cisco.com/warp/public/707/newsflash.html.