The Protocols that run the Internet Attack Types in the Internet

Transcrição

The Protocols that run the Internet Attack Types in the Internet
Ausarbeitung zum Seminar:
The Protocols that run the
Internet
Universität Konstanz
Fachbereich Informatik und Informationswissenschaften
Thema:
Attack Types in the Internet
Jens Gerken
Inhaltsverzeichnis
1. Einleitung
2. Einführung – Internet Attacken
a. Gründe für die Angreifbarkeit des Internets
b. Welche Folgen haben Angriffe auf das Internet
c. Welche Techniken existieren
3. Network Service Attacks
a. Process Manipulation
b. Information Leaks
4. Distributed Denial of Service Attacken: Angriffs- und
Verteidigungstechniken
a. Einführung in DDoS
b. Klassifizierung der DDoS Angriffstechniken
c. Klassifizierung der DDoS Verteidigungstechniken
5. Fazit
6. Quellen & Links
2
1. Einleitung
Am 21. Oktober 2002 gegen 17:00 (Eastern Daylight Time) war es soweit. Die bislang größte
Attacke auf das Herz des Internets – die 13 DNS Root Server – wurde gestartet. Der Angriff
dauerte etwa eine Stunde und war sowohl was die Koordination der Attacke als auch den
angerichteten Schaden angeht, in den Augen einiger Serverbetreiber bislang einzigartig. Auch
wenn derartige Angriffe beinahe täglich gegen einzelne Root Server gefahren werden, so gab
es in der Vergangenheit niemals eine Attacke in derartigem Ausmaß, welche alle 13 Server
gleichzeitig betraf. Lediglich 4-5 der 13 Server überstanden den Angriff unbeschadet.
Allerdings brach die Attacke genauso unvermittelt ab, wie sie begonnen hatte – in den Augen
von Paul Vixie, Gründer des Internet Software Consortiums, Chefarchitekt des DNS-Servers
BIND und Betreiber des F-Root-Servers, hätten aber auch die letzten 4-5 Server nicht mehr
stand halten können, wenn die Attacke nur ein wenig länger angedauert hätte. Es scheint also,
als wenn dieser Angriff nur ein „Kräftemessen“ war, um zu sehen was möglich ist oder den
DNS-Root Server Betreibern die Gefahren aufzuzeigen. An den Augen des normalen
Internetanwenders ging der Angriff völlig unbemerkt vorbei – die Root Server sind so
aufgebaut, dass bis zu 8 davon komplett ausfallen können, ehe merkliche Verzögerungen
eintreten. Sie dienen dabei als Anlaufstellen für definitive und autorisierte Auskünfte für die
korrekten Adressen innerhalb von Top Level Domains im Netz1.
Im Gegensatz zu den typischen Hackerszenarien wurde keiner der Server in irgendeiner
Weise kompromittiert. Der Angriff bestand in einer Distributed Denial of Service, oder kurz
DDoS, Attacke. Diese relativ neue Angriffsform, die ersten „distributed“ DoS Attacken
starteten 1999, hat weniger das Ziel den Rechner des Opfers zu übernehmen oder Daten zu
stehlen, sondern vielmehr ihn soweit lahm zu legen, dass er nicht weiter seiner Tätigkeit
nachgehen, also seinen Service anbieten kann. Ein derartiger Angriff auf einen Webserver
hätte beispielsweise zur Folge, dass die Seite nicht mehr erreichbar ist und somit legitime
Nutzer den angebotenen Service nicht mehr nutzen können. Darüber hinaus existieren
zahlreiche Scripts und Tools, die derartige Angriffe auch für relativ unbedarfte „Hacker“
möglich machen – hinzu kommt, dass es mittlerweile auch sehr schwer ist, den Angreifer zu
entdecken. Auch im obigen Fall des Angriffs auf die Root Server konnten zwar 4 Länder
ausgemacht werden (alle USA freundlich gesinnt), von denen der Angriff gestartet wurde,
weiter kam man jedoch auch mit Hilfe des FBI nicht.
Vom technischen Standpunkt her ist eine DoS oder DDoS Attacke relativ simpel. Es wird
einfach versucht, entweder soviel Traffic an den Zielrechner zu schicken, dass dieser keinen,
und somit auch keinen legitimen, mehr annimmt, oder aber seine Rechenleistung soweit
aufzubrauchen, dass er ebenfalls keine legitimen Anfragen mehr bearbeiten kann. Um dies zu
erreichen wird das Prinzip „Kraft von vielen > Kraft von wenigen“ herangezogen. Der
Angreifer macht sich zunächst etliche Rechner untertan und startet mit dieser Armee einen
koordinierten Angriff. Die Vergangenheit hat gezeigt, dass mit dieser Methode prinzipiell
jedes Ziel angreifbar ist, egal wie es geschützt wird. Es gibt allerdings trotzdem
Möglichkeiten mit solchen Attacken umzugehen und sie auch zu überstehen. Die
unterschiedlichen Angriffsmöglichkeiten, aber auch, was man dagegen tun kann, möchte ich
in Kapitel 4 ausführlich beschreiben.
1
http://www.heise.de/newsticker/data/jk-23.10.02-001/
3
2. Einführung – Internet Attacken
Das Internet ist tagtäglich unzähligen Angriffen ausgeliefert, seien es private Racheaktionen,
Firmenspionagen oder Sabotageaktionen. Die meisten dieser Angriffe werden kaum bekannt,
da der angerichtete Schaden nur gering ist. Wenn man verstehen will, wie man gegen solche
Angriffe in Zukunft vorgehen soll, muss man zunächst drei Dinge verstehen:
• Wieso sind diese Angriffe überhaupt möglich?
• Welche Folgen haben die Angriffe?
• Welche Angriffstechniken werden eingesetzt?
Im Folgenden möchte ich kurz auf diese drei Punkte eingehen.
2.1 Gründe für die Angreifbarkeit des Internets
2.1.1
Konzeptionelle Fehler
Bei der Konzeption des Internets stand stets Funktionalität im Vordergrund und nicht
Sicherheit. In dieser Hinsicht war es auch überaus erfolgreich, ist doch mittlerweile
praktisch die gesamte Welt über dieses Netz miteinander verbunden. Um die
maximale Funktionalität zu erreichen, wurden Protokolle kreiert, die zwar für den
jeweiligen Endnutzer „billig“ sind, und damit auf dieser Seite relativ wenig
Rechenleistung oder Bandbreite benötigen, allerdings für den Server sehr „teuer“ sein
können was diese beiden Punkte anbelangt. Beispielsweise ist es relativ aufwendig für
den Server, fehlerhafte Pakete zu korrigieren und wiederherzustellen. Diese Tatsache
kann aber auch ausgenutzt werden, indem einfach absichtlich viele fehlerhafte Pakete
verschickt werden – für den Sender ist das nicht besonders aufwendig, wenn es jedoch
im großen Stil durchgeführt wird, kann damit ein Server lahmgelegt werden. Auch
werden Daten zum Großteil unverschlüsselt, und damit für jedermann einsehbar,
übertragen.
Ein weiteres Problem st die dezentralisierte Arbeitsweise des Internets. Es gehört
niemandem und somit können auch nur sehr schwer einheitliche Richtlinien bezüglich
der Sicherheit durchgesetzt werden. Da die Sicherheit eines einzelnen Systems aber
auch von der Sicherheit aller abhängt, wird man sich nie komplett vor Angriffen
schützen können, solange nicht gemeinsam vorgegangen wird. Am deutlichsten zeigt
sich dies bei DDoS Attacken. Solange ein Angreifer hunderte von privaten oder auch
universitären Rechnern relativ problemlos „kapern“ kann, bringt auch das
ausgefeilteste Sicherheitssystem nicht viel um den eigenen Server zu schützen.
2.1.2
Programmiertechnische Fehler
Programmiertechnische Fehler sind die häufigste Ursache für Angriffe. Oftmals
werden Softwareentwickler dazu gedrängt möglichst performanten Code zu schreiben
– und legen dementsprechend weniger Wert auf Robustheit und Sicherheit im Falle
eines Angriffes. Schon bei herkömmlicher „Offline- Software“ verschlingt Bugtesting
sowohl viel Zeit als auch viel Geld. Bei Applikationen, die mit dem Internet agieren,
ist ein Bug gleichzeitig oftmals auch ein möglicher Angriffspunkt.
In dieser Hinsicht sollte vor allem mehr Augenmerk auf sogenanntes „Bounds
Checking“ gelegt werden. Das bedeutet, dass zu jedem Zeitpunkt jedes Argument und
4
jegliche Daten, die an eine Routine übergeben werden, überprüft und verifiziert
werden. In der Vergangenheit wurde oftmals unzureichendes „Bounds Checking“ in
Bezug auf die Länge des Arguments ausgenutzt, um einen Speicherüberlauf zu
provozieren und anschließend den eigentlichen Angriffscode direkt auf dem
Executable Stack zu platzieren.
2.1.3
Konfigurations-Fehler
Konfigurationsfehler sind ebenfalls ein möglicher Angriffspunkt. Oftmals sind Service
aktiv, die unnötig sind, aber dem möglichen Angreifer entweder wichtige
Informationen liefern oder direkt Ziel eines Angriffs sein können. Auch die falsche
Konfiguration einer Firewall oder sonstiger Abwehrsysteme fällt in diesen Bereich.
2.2 Welche Folgen haben Angriffe auf das Internet
2.2.1
Verlust der Vertraulichkeit
Wenn Daten unverschlüsselt übertragen werden und dadurch von Dritten gelesen
werden können, ist die Vertraulichkeit einer Übertragung nicht mehr gewährleistet.
Die Vertraulichkeit einer Übertragung ist für jegliche Kommunikation über das
Internet von entscheidender Bedeutung. Wenn diese nicht mehr gewährleistet werden
kann, verliert das Internet sowohl für das B-to-C business als auch das B-to-B business
an Bedeutung – doch genau diese beiden Punkte sichern langfristig seinen Erfolg.
2.2.2
Verlust der Integrität
Wenn in Rechner eingedrungen werden kann und somit auch Daten manipuliert
werden können, ist die Integrität der Daten nicht mehr gegeben. Gleiches gilt auch für
das Abfangen und Manipulieren von Daten bei der Übertragung. Die Folgen hier sind,
ähnlich wie bei dem Verlust der Vertraulichkeit. In vielen Fällen treten beide auch
gemeinsam auf. Der Verlust der Integrität geht hierbei noch einen Schritt weiter als
der Verlust der Vertraulichkeit. Wenn Daten nicht nur von dritten gelesen, sondern
auch manipuliert werden können, ist letztendlich die Kommunikation via Internet
sinnlos, da nicht vertrauenswürdig.
2.2.3 Verlust der Verfügbarkeit
DoS Attacken haben den Ausfall eines angebotenen Service zur Folge. Somit ist
beispielsweise eine Webseite nicht mehr erreichbar. Auf den ersten Blick scheint
dieser Punkt der harmloseste zu sein, da zumeist derartige Ausfälle nur temporär sind.
Allerdings sind die ersten beiden Punkte durch beispielsweise VerschlüsselungsProtokolle oder höhere Sicherheitsmaßnahmen im eigenen Unternehmen weitgehend
auszuschließen. Wie in Kapitel 4 sichtbar werden wird, gibt es gegen DoS Attacken
jedoch kein Allheilmittel.
2.3 Welche Techniken existieren
Die im Folgenden kurz angeführten Techniken sind nur eine Auswahl und sollen
keineswegs einen Anspruch auf Vollständigkeit erheben.
5
2.3.1
„Social Engineering“
Ein oft nur wenig beachteter Punkt bei Sicherheitsüberlegungen ist das sogenannte
„Social Engineering“. Um an Passwörter zu gelangen, gibt es nicht nur den
„technischen“ Weg, indem man sich in ein System hackt. Ein einfacher Anruf bei der
Sekretärin kann auch schon entscheidende Türen öffnen. Der Anrufer gibt sich als
Systemadministrator aus, der einen Fehler beheben will, wenn die Sekretärin
beispielsweise nicht sonderlich mit Computern vertraut ist, ist es ihm eventuell ein
Leichtes sie derart zu verunsichern, dass sie ihm Glauben schenkt. Eine kurze Frage
nach dem Passwort, damit er den Fehler von seinem Platz aus beheben kann und schon
entscheidet es sich, wie sicher die Firmendaten trotz aller Sicherheitsmaßnahmen auf
technischer Ebene sind.
2.3.2 Viren, Würmer, Trojaner
Auch Viren, Würmer oder Trojaner versuchen nicht auf dem „harten“ Weg ein System
zu überwinden. Auch hier versucht der Angreifer sich einzuschleichen. Die enorme
Verbreitung von Email-Würmern in den letzten Jahren hat gezeigt, wie einfach mit
dieser Methode zumindest die Rechner von „Otto-Normal-Verbraucher“ in Beschlag
genommen werden können. Und auch Firmen und Webserver sind vor derartigen
Angriffen nicht gefeit. Beispielsweise kann ein Email-Wurm, der 4MB groß ist, wenn
er sich in einem Firmensubnetz hundertfach verschickt, dort die zumeist genutzten MS
Exchange Mail Servers und Outlook Clients crashen.
2.3.3
Spoofing (IP,DNS, Web)
Generell sagt Spoofing aus, dass dadurch der Angreifer versucht, seine eigene Identität
zu verbergen. Letztendlich wird bei fast jeder Attacke IP-Spoofing verwendet, um eine
Entdeckung zu vermeiden.
2.3.4 Sniffing
Mit Sniffing ist das “Abhören” von Datenpaketen gemeint, die eigentlich für jemand
anderes bestimmt sind. Diese Technik ist oftmals Grundvoraussetzung für
weitergehende Angriffe.
2.3.5 Connection Hijacking
Oftmals ist das Zielobjekt sehr gut geschützt und kaum zu knacken. Allerdings gibt es
noch andere Möglichkeiten sich Zugang zu verschaffen. Beispielsweise mit Hilfe einer
autorisierten Verbindung. Im Falle einer TCP Verbindung, kann der Angreifer
versuchen, diese zu desynchronisieren (mit Hilfe von Sniffing und IP-Spoofing).
Danach kann der Host nicht mehr direkt mit dem eigentlichen Empfänger
kommunizieren. Hier tritt nun der Angreifer auf, der in beide Richtungen als
Vermittler agiert – allerdings mit der zusätzlichen Fähigkeit den Datenstrom
manipulieren zu können und eigene Pakete einzuschleusen. Es gibt viele verschiedene
Varianten dieser Technik. Beispielsweise ist es auch möglich über eine Denial of
Service Attacke auf den Client dessen Verbindung zum Host zu kappen und dann
mittels IP-Spoofing als eben dieser aufzutreten.
6
Im Folgenden möchte ich mich auf die sogenannten Network Service Attacks, und hier
insbesondere auf Distributed Denial of Service Attacken konzentrieren. Einige der eben
beschriebenen Techniken finden auch hier Anwendung, wie sich zeigen wird.
Da das aus Filmen bekannte „Hacken“, in der Form des „if you have no password but still
want the confidential information, you can try to hack in - plz click here“ Buttons auf der CIA
Main Page doch nur reine Fiktion ist, mussten andere Ansatzpunkte gefunden werden. Diese
bieten sich oftmals in den sogenannten Services und Diensten, die auf einem Server aktiv
sind. Beispielsweise kann ein einfacher telnet Service, der wie oben bereits kurz angerissen
nur unzureichendes „Bounds Checking“ der übergebenen Kommandos und Argumente
durchführt, ein Sicherheitsrisiko darstellen. Genau dann, wenn eben ein zu langes Argument
den Service zum Absturz bringt – und alles was über die Länge hinaus geht, einfach auf den
Executable Stack gelegt wird – und dann eben auch ausgeführt wird.
3. Network Service Attacks
Network Service Attacks lassen sich grob in 2 Punkte untergliedern. Zum einen in „Process
Manipulation“ bei welchem beispielsweise Fehler oder Schwächen in Protokollen ausgenutzt
werden. Zum anderen in die sogenannten „Information Leaks“. Hierbei handelt es sich
zumeist um Features, die jedoch dem potentiellen Angreifer zu viele Informationen liefern,
mit welchen er dann die eigentliche Attacke starten kann (beispielsweise welche Version des
Betriebssystems installiert ist, eine Liste aller aktuellen Verbindungen mit IP usw.).
3.1 Process Manipulation
Auch hier ist eine weitere Unterteilung von Nöten in:
•
•
•
Overflow-based Attacks
Non Overflow-based Attacks
Denial of Service Attacks
3.1.1 Overflow-based Attacks
Dies ist mit die häufigste Angriffsart. Gerade in den letzten Wochen wurden wieder
Sicherheitslöcher bekannt, die derartige Angriffe ermöglichen könnten2. Wie oben
bereits in den „Programmiertechnischen Fehlern“ angerissen, ist oftmals
unzureichendes Bounds Checking der Grund für die Angriffe. Ein Argument welches
an einen Service übergeben wird, wird beispielsweise nur unzureichend auf dessen
maximal erlaubte Länge überprüft. Wenn nun ein zu langes Argument übergeben wird
und der Service dieses nicht zurückweist, kann es im schlimmsten Fall passieren, dass
dadurch der Speicher überläuft und der Code auf den Executable Stack geschrieben –
und dort ausgeführt wird. Wenn der Angreifer erst mal ein derartiges Sicherheitsloch
gefunden hat, kann er quasi jeglichen beliebigen Code auf dem Server ausführen
lassen.
2
http://www.heise.de/newsticker/data/dab-04.08.03-001/
7
Ein recht bekanntes Beispiel für einen derartigen Angriff ist der Code Red Wurm.
Dieser machte sich das unzureichende „Bounds Checking“ im ISAPI Filter des
Microsoft Internet Information Services (IIS) in Version 4.0 und 5.0 zu Nutze. Ein
Argument welches an ein .IDA file übergeben wird, wird hierbei nur unzureichend auf
dessen Länge überprüft.
http://www.example.com/default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNN........................NNNNN%u9090%u6858
%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u
9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u00=a
Das Argument welches hier an default.ida übergeben wird, besteht zunächst aus 224
N’s, welche lediglich dazu dienen, den Speicher zu füllen. Erst im Anschluss daran
(kursiv gedruckt) steht der eigentliche Angriffscode (direkt als Maschinencode), der
nun direkt auf den Executable Stack geschrieben wird und auf dem Server selbst
ausgeführt wird. Code Red schaffte es dadurch zu enormer Verbreitung auf Web
Servern, die den IIS nutzten.
3.1.2 Non Overflow-based Attacks
Bei diesen Angriffen, wird nicht versucht den Speicher zu manipulieren, vielmehr
werden direkt Schwächen von Servicen ausgenutzt, um dem Angreifer die
Möglichkeit zu bieten auf Systemebene Kommandos auszuführen oder auf Daten
zuzugreifen. Um den Unterschied zu Overflow-based Attacks zu verdeutlichen auch
hier ein reales Beispiel:
Bereits im Jahr 1996 wurde dieser Angriff gestartet. Nichts desto trotz ist er zum einen
Auf Grund des attackierten Ziels und zum anderen auf Grund der Einfachheit des
Angriffes immer noch nicht aus dem Gedächtnis zu löschen. Das Ziel war der CIA
Web Server und das Mittel zum Ziel ein fehlerhaftes CGI Script. Folgende Anfrage
wurde an den CIA Webserver gestellt:
http://www.cia.gov/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
Aufgeschlüsselt bedeutet das:
http://www.cia.gov
/cgi-bin/phf
?Qalias=x
%0a
/bin/cat
%20
/etc/passwd
Die Zieladresse
der Pfad zu dem fehlerhaften CGI Script – phf in diesem
Fall
die initialisierende Anfrage an das phf Script
hex für Carriage Return, in diesem Fall als „Shell
Escape“ benutzt
Den Befehl, den der Angreifer auf dem Server ausführen
will
hex für Space, um dem Befehl ein Argument zu
übergeben
das übergebene Argument, in diesem Fall das passwd file
Das einfache Benutzen eines „Shell Escape“ in dem übergebenen Argument erlaubt
hier dem Angreifer anschließend jeden Befehl auf dem Server auszuführen –
beispielsweise das Ansehen des passwd files. Dass dieser Fehler kein Einzelfall ist,
8
zeigen die mittlerweile über 250 prinzipiell ähnlichen CGI-Script Attacken, die bisher
bekannt sind.
3.1.3 Denial of Service Attacks
Während die obigen Angriffe auf Fehler im Design eines Scripts oder eines Services
zurückgeführt werden können, muss ein System nicht zwangsläufig unsicher sein, um
einer Denial of Service Attacke zum Opfer zu fallen. In Kapitel 4 werde ich mich
eingehend mit den verschiedenen Angriffsmöglichkeiten und auch VerteidungsMechanismen auseinandersetzen.
3.2 Information Leaks
Auch bei Information Leaks macht sich der Angreifer gewisse Eigenschaften eines Services
zu Nutze – allerdings kann man diese Eigenschaften nur sehr selten als Bug einstufen.
Vielmehr sind es oftmals sogar gewollte Features, die dem Angreifer Informationen liefern,
welche dieser wiederum für seinen Angriff missbrauchen kann. Das kann damit anfangen,
dass der Service beispielsweise die eigene Versionsnummer preisgibt, oder das installierte
Betriebssystem verrät. Diese Information kann durchaus auch für legitime Nutzer wichtig
sein, jedoch kann ein potentieller Angreifer dadurch die Möglichkeit erhalten, seinen Angriff
speziell auf Schwachstellen von diesem System auszurichten.
Eine weitere Möglichkeit ist das Aufdecken von User-Details. Der Solaris Finger-Service gibt
auf die Anfrage finger „1 2 3 4 5 6 7 8 9 0“ detaillierte Informationen über die Nutzer des
Rechners wieder. Wenn der Server also nicht selbst direkt angreifbar ist, so ist es vielleicht
doch einer der autorisierten Nutzer. Sei es über Connection Hijacking oder das Eindringen in
den Client Rechner auf der Suche nach unverschlüsselt abgespeicherten Passwörtern. Wenn
die Login Namen bekannt sind, wird ebenfalls eine Password Brute Force Attacke interessant.
9
4. Distributed Denial of Service Attacken: Angriffs- und
Verteidigungstechniken
4.1 Einführung in DDoS
Der Hauptgrund, wieso Distributed Denial of Service Attacken so erfolgreich sind, ist der,
dass man sich nur schwer allein dagegen schützen kann. Sicherheit im Internet ist keine
Angelegenheit eines einzelnen – die eigene Sicherheit hängt stark mit der Sicherheit des
gesamten Internets zusammen. Weiterhin machen sich DDoS Attacken zwei weitere
Grundprinzipien zu Nutze: Zum einen sind die Ressourcen im Internet nicht unbegrenzt.
Niemand kann einen Webserver aufstellen, der unendlich viel Traffic handhaben kann. Hand
in Hand damit geht das Prinzip der „Kraft von vielen ist größer als die Kraft von wenigen“.
Jedes Ziel ist potentiell angreifbar, solange man nur auf der Angriffsseite genügend Rechner
vereint, die das Ziel gemeinsam attackieren.
4.1.1
Wie funktioniert DDoS
Um eine DDoS Attacke auszuführen, müssen zunächst die sogenannten Agents (auch
slaves, deamons, etc. genannt.) von dem Angreifer rekrutiert werden. Über zumeist
automatisierte Scanning- Mechanismen, wird nach Rechnern gefahndet, die potentielle
Sicherheitslücken offenbaren. Sobald der Angreifer fündig geworden ist, infiltriert er
den Agent und installiert darauf den Attack Code (zumeist ebenfalls automatisiert).
Sobald genügend Agents beisammen sind, wird die Attacke gestartet. Um ein
Entdecken der Agents zu verhindern, werden oftmals Spoofing Techniken angewandt.
Dadurch können die Agents auch für weitere Attacken Verwendung finden.
10
4.1.2
Ziele einer DDoS Attacke
Die Ziele einer DDoS Attacke können vielfältig sein. Angefangen bei dem
persönlichen Racheakt (eine nicht unerhebliche Anzahl an entdeckten Attacken konnte
hierauf zurückgeführt werden), hin zum Schädigen einer Konkurrenzfirma oder
einfach nur um innerhalb der Hackerszene zu Popularität zu gelangen. Kleine DoS
Attacken können auch genutzt werden, um Connection Hijacking zu ermöglichen.
4.2 Klassifizierung der DDoS Angriffstechniken
4.2.1 Überblick
Die (wie im Schaubild zu sehen) verwendete Klassifizierung orientiert sich weitestgehend an
dem Technical Report #020018 der University of California3. Im Folgenden möchte ich auf
die einzelnen Punkte im Detail eingehen.
4.2.2
Klassifizierung anhand dem Grad der Automatisierung
Bevor der eigentliche Angriff auf das Ziel gestartet werden kann, müssen zunächst die Agents
infiltriert werden. Dies kann zum einen manuell geschehen, was jedoch verständlicher Weise
für groß-angelegte Angriffe zuviel Zeit in Anspruch nimmt. Aus diesem Grund sind
mittlerweile die meisten Angriffe semi-automatisch. Eine komplette Automatisierung ist
jedoch ebenfalls möglich, muss allerdings mit einigen Einschränkungen leben.
3
A Taxonomy of DDoS Attacks and DDOS Defense Mechanisms – Jelena Mirkovic, Janice Martin and Peter
Reiher, Computer Science Department, UCLA, Tech. Report #020018
11
A Manuelle Angriffe
Wie oben bereits angedeutet, muss in diesem Fall der Angreifer „von Hand“ nach
möglichen Agents scannen. Sobald er diese gefunden hatte, muss er ebenfalls
selbständig in sie eindringen und den Attack Code übermitteln. Er muss auch
weiterhin mit ihnen in Verbindung bleiben um den eigentlichen Angriff letztendlich zu
befehlen. Nur die sehr frühen DDoS Attacken gehörten in diese Kategorie. Mit der
Verbreitung von relativ einfach zu bedienenden Angriffstools etwa in der Mitte des
Jahres 1999, sind diese Attacken von der Bildfläche verschwunden.
B Semi-Automatische Angriffe
Die Mehrzahl der heutigen Angriffe fallen in diese Kategorie. Um nicht mit jedem
Agent einzeln in Kontakt stehen zu müssen, werden sogenannte Handler Rechner
(auch Master genannt) eingeführt. Diese werden vom Angreifer infiltriert und haben
danach die Aufgabe zum einen neue Agents zu infiltrieren, zum anderen auch den
Angriff zu koordinieren. Dazu entwickelt der Angreifer (oder er benutzt vorgefertigte)
automatisierte Scanning und Infiltrations Scripts, die beispielsweise nur nach
bestimmten Sicherheitslücken scannen und dann genau wissen, wie der gefundene
Rechner zu kompromittieren ist. Der Angreifer selbst steht dann nur noch mit den
Handler Rechnern in Kontakt um den Angriff zu steuern. Die Kommunikation
zwischen den Handler und Agents kann auf zwei Arten ablaufen:
1. Direkte Kommunikation
Bei Angriffen mit direkter Kommunikation zwischen Handler und Agent
müssen sich beide Seiten genau kennen um miteinander kommunizieren zu
können. Zu diesem Zweck wird die IP des Handlers in den Attack Code
fest integriert. Jeder Agent sendet dann zunächst ein „Ready“ Signal an den
jeweiligen Handler und dieser speichert die IP’s „seiner“ Agents in einer
Liste, um zu einem späteren Zeitpunkt die Kommunikation fortzusetzen
(beispielsweise um den Angriff zu befehlen). Das Hauptproblem dieser
Methode ist die Verletzlichkeit des gesamten DDoS Netzwerks, sobald ein
Agent identifiziert wurde. Von diesem kann dann auf den Handler
geschlossen werden und somit dessen komplette Agents außer Kraft gesetzt
werden. Weiterhin besteht die Gefahr, auch andere Handler/Agents zu
finden oder sogar auch den Angreifer selbst, da die Rechner auf Netzwerk
Verbindungen achten müssen und sie dadurch von Netzwerk Scannern
entdeckt werden können.
2. Indirekte Kommunikation
Indirekte Kommunikation hat das Ziel, die oben genannten Schwachstellen
der direkten Kommunikation zu verbessern oder gar auszumerzen. In
letzter Zeit wurden hierfür vornehmlich sogenannte Internet Relay Chats
(IRC) missbraucht. Hierbei weiß weder der Handler die IP Adresse der
Agents noch kennt ein Agent die IP des Handlers. Die Rechner connecten
einfach allesamt zu einem bestimmten IRC Netzwerk in einen
gemeinsamen Channel. Dort ist es dem Handler möglich, den Agents
Befehle zu geben und somit mit ihnen zu kommunizieren. Letztendlich ist
es sogar möglich, dass der Angreifer wiederum direkt mit den Agents
kommuniziert und das IRC Netzwerk quasi die Rolle des Handlers
12
übernimmt. Neben dem Vorteil, dass nun nicht von einem entdeckten
Agent auf Teile oder das gesamte DDoS Netzwerk geschlossen werden
kann, erfolgt die Kommunikation nun auch auf einem Port der auch von
legitimen IRC Clients genutzt wird. Netzwerk Scanner können also nur
bedingt bei der Suche nach den Agents helfen. Das Aufdecken eines
Agents führt also zunächst höchstens zu dem IRC Netzwerk über welches
die momentane Kommunikation abläuft. Ohne die aktive Hilfe der
jeweiligen IRC Operator ist es jedoch nahezu unmöglich, weitere Agents
oder gar den Angreifer selbst zu identifizieren.
C Vollautomatische Angriffe
Vollautomatische Angriffe beschränken sich letztendlich darauf, dass der Angreifer
sozusagen auf den Knopf drückt und dadurch unwiderruflich den Angriff auslöst. Im
Attack Code ist sowohl die IP des Ziels als auch der Start des Angriffs fest integriert
und auch wie lange beispielsweise der Angriff dauern soll. Für den Angreifer
minimiert sich somit die eigene Gefahr entdeckt zu werden, da er nur noch mit dem
Start des Angriffs Scripts zu tun hat. Um aber trotzdem das dadurch aufgebaute DDoS
Netzwerk nicht nur einmal nutzen zu können, werden häufig sogenannte „Back
Doors“ bei den Agents offengelassen, um sie auch in Zukunft für Angriffe benutzen zu
können.
Sowohl semiautomatische als auch vollautomatische Angriffe automatisieren das Infiltrieren
der einzelnen Agents. Dabei kann unterschieden werden zwischen den unterschiedlichen
Scanning Techniken und darüber hinaus auch wie der Attack Code übermittelt wird.
A Scanning Techniken
1. Random Scanning
Bei dieser Technik scannt jeder einzelne infiltrierte Agent nach neuen
möglichen Agents. Er geht dabei allerdings nicht systematisch vor, sondern
scannt zufällig alles in einem festgelegten IP Adressraum. Da es dadurch
natürlich zu vielen Mehrfachscans kommen kann, ist der allein dadurch
kreierte Traffic nicht unerheblich. CodeRed brachte allein dadurch einige
Firmensubnetze zum erliegen.
2. Hitlist Scanning
Hierbei wird dem Agent eine Liste mit IP Adressen zur Verfügung gestellt.
Sobald er einen weiteren Agent infiltriert hat, gibt er an diesen die Hälfte
der Liste weiter und behält die andere Hälfte. Dadurch wird die Scanning
Geschwindigkeit enorm erhöht und es gibt keinerlei Mehrfachscans ein und
desselben Rechners.
3. Topological Scanning
Diese Technik wendet so gut wie jeder Email-Wurm an. Die Informationen
die auf dem infiltrierten Rechner gefunden werden, werden zur weiteren
Verbreitung genutzt. Beispielsweise das Outlook Adressbuch.
13
4. Permutation Scanning
Diese Technik ist momentan noch nicht in Verwendung. Es wird hierbei
versucht die Vorteile von Hitlist Scanning und Random Scanning zu
vereinen. Der Vorteil von Random Scanning gegenüber Hitlist Scanning
liegt darin, dass mehr potentielle Agents zur Verfügung stehen, da man
nicht an eine feste Liste von IP Adressen gebunden ist. N. Weaver
beschreibt die genaue Funktionsweise in seinem Paper „Warhol Worm“4
5. Local Subnet Scanning
Diese Scanning Methode ist prinzipiell nur eine Ergänzung zu den bisher
genannten. Es geht darum, dass ein einzelner Agent auch sein komplettes
Subnet scannt, in dem er sich befindet. Dadurch reicht ein einzelner
kompromittierter Rechner hinter einer Firewall, um das gesamte Netz
dahinter zu scannen und eventuelle Agents zu rekrutieren.
B Weitergabe das Attack Codes
1. Central Source Propagation
Bei dieser Technik verweilt der eigentliche Attack Code auf einem oder
mehreren zentralen Server (beispielsweise die Handler). Sobald ein Agent
infiltriert wurde, lädt sich dieser selbständig den Attack Code herunter.
2. Back-Chaining Propagation
4
N. Weaver, „Warhol Worm“, http://www.cs.berkeley.edu/~nweaver/warhol.html
14
Back-Chaining Propagation funktioniert ohne zentrale Anlaufstelle.
Vielmehr dient der jeweilige Infiltrator immer als Downloadquelle für den
Attack Code. Sobald also ein Agent A den nächsten Agent B infiltriert hat,
lädt sich Agent B von Agent A den Attack Code herunter.
3. Autonomous Propagation
Hierbei wird einfach während der Infiltration bereits der Attack Code auf den
Agent mit überspielt. Somit fällt der Schritt des Herunterladens weg.
4.2.3
Klassifizierung anhand der ausgenutzten Schwachstelle
Ähnlich wie bei overflow oder non-overflow based Attacks, können auch bei DDoS Attacken
Schwächen in Protokollen oder Services ausgenutzt werden um den DoS zu erreichen.
Andererseits kann auch versucht werden, durch die pure Masse an gesendetem Traffic den
Zielrechner lahmzulegen.
A Angriffe auf Protokoll Basis
Bei dieser Form von Angriffen werden Schwächen oder auch Features von
Protokollen derart ausgenutzt, dass das Ergebnis ebenfalls ein Denial of Service ist.
Bekannte Beispiele sind TCP SYN Flooding oder CGI Request Flooding. Das SYN
Flag ist Teil des TCP Handshakes zur Herstellung einer TCP Verbindung. Dabei
schickt der Client zunächst ein Paket mit gesetztem SYN Flag an den Server.
Daraufhin antwortet dieser mit einem Paket bei dem sowohl das SYN Flag als auch
das ACK Flag gesetzt sind. Der Client muss nun noch ein letztes Paket mit gesetztem
ACK Flag (aber nun ohne SYN Flag) an den Server schicken und die Verbindung
steht. Ausgenutzt wird hierbei nun die Tatsache, dass der Server, sobald er ein SYN
Paket erhält, für die kommende Verbindung schon Speicher in seiner „Connection
Queue“ bereitstellt. Der Angreifer schickt also mit Hilfe seines DDoS Netzwerks in
kurzer Zeit unzählige SYN Pakete, jedoch niemals das abschließende Paket mit
gesetztem ACK Flag. Die Connection Queue läuft über und bringt den Server
letztendlich dazu, dass er keine legitimen TCP Verbindungen mehr annehmen kann.
Bei CGI Request Attacken wird mit Hilfe zahlreicher CGI Anfragen die CPU Zeit des
Servers aufgebraucht. Wie bei vielen anderen Protokoll Attacken, macht man sich
hierbei auch die Tatsache zu Nutze, dass beispielsweise das Auswerten einer CGI
Anfrage den Server deutlich mehr Rechenzeit kostet, als den Client eine solche
Anfrage zu stellen. Auch das Senden von absichtlich fehlerhaften Paketen ist eine
beliebte Angriffsform. Der Server verbraucht hier seine CPU Zeit bei dem Versuch,
die Pakete trotz der Fehler zu lesen und wiederherzustellen.
15
B Brute Force Attacken
Bei Brute Force Attacken wird der Server dadurch versucht lahmzulegen, dass der
Angreifer große Mengen an scheinbar legitimen Traffic schickt. Man versucht also die
Bandbreite des Ziels vollständig in Beschlag zu nehmen und dadurch den Service
nicht mehr erreichbar zu machen.
1. Filterbare Attacken
Bei diesen Angriffen ist es dem Opfer möglich, den Attack Stream
herauszufiltern ohne gleichzeitig auch legitimen Traffic zu filtern. Das
kann beispielsweise der Fall sein, wenn der Traffic an unkritische Service
gerichtet ist, die für die normale Funktionsweise nicht unbedingt notwendig
sind. Es wird dann einfach jeglicher Traffic der an diesem Port ankommt,
herausgefiltert. Beispiele für solche Angriffe sind UDP Floodings oder
ICMP Request Floodings.
2. Nicht filterbare Attacken
In diesem Fall besteht der Angriff beispielsweise aus legitimen HTTP
Zugriffen. Ein herausfiltern hätte die Folge, dass auch die Zugriffe von
normalen Nutzern gefiltert werden würden. Somit würde das Opfer selbst
noch dazu beitragen, den Denial of Service zu erreichen.
Der generelle Unterschied zwischen Protokoll Attacken und Brute Force Attacken besteht
darin, dass erstere durch Änderungen an den jeweiligen Protokollen weitestgehend vereitelt
werden können. Beispielsweise kann man TCP SYN Attacken mit TCP SYN Cookies
begegnen. Diese helfen allerdings nicht mehr weiter, wenn der Angreifer mehr TCP SYN
Anfragen stellt, als das Netzwerk rein physisch handhaben kann. Die Protokoll Attacke wird
also zur Brute Force Attacke. Allgemein gilt jedoch, dass Protokoll Attacken meist deutlich
weniger Traffic benötigen um ihr Ziel zu erreichen. Wenn es dem Opfer also gelingt, diese
weitestgehend auszuschließen, dann erhöht es dadurch zumindest die Schwelle für einen
Angriff.
Es ist weiterhin zu beachten, dass sowohl Pakete die für Protokoll Attacken genutzt werden,
als auch solche für Nicht-Filterbare Angriffe, zumindest zum Teil korrekt und nicht gefälscht
sein dürfen. Beispielsweise müssen bei einer HTTP Flood Attacke die Pakete zu bestehenden
TCP Verbindungen gehören. Dadurch ist es für den Angreifer nicht mehr so leicht, die
Identität seiner Agents zu verschleiern.
4.2.4
Klassifizierung anhand der Dynamik des Angriffes
Die Mehrheit der Angriffe läuft getreu dem Motto „volle Kraft voraus“ ab. Das heißt, von
Beginn bis zum Ende der Attacke wird soviel Traffic wie nur möglich an das Ziel geschickt.
Der Nachteil dabei ist, dass es dem Opfer relativ leicht möglich ist, den Angriff zu bemerken
und Gegenmaßnahmen einzuleiten. Allerdings ist dies auch die effektivste Möglichkeit um
einen Denial of Service zu erreichen.
Es kann jedoch auch von Nutzen sein, wenn ein Angriff lange Zeit unentdeckt bleibt. Um das
zu erreichen kann der Angreifer zum einen den Traffic sehr langsam erhöhen. Wie sich bei
den Verteidungsmöglichkeiten zeigen wird, ist es sehr schwer für das Opfer derartige
16
Angriffe überhaupt zu bemerken. Eventuell geht es einfach von einem erhöhten legitimen
Traffic - Aufkommen aus und investiert beispielsweise in neue Hardware um dem gerecht zu
werden. Eine andere Möglichkeit um Entdeckung zu vermeiden, wäre das Fluktuieren des
Angriffs Traffics. Je nach Verhalten des Opfers könnte dieser beispielsweise kurz ausgesetzt
werden sobald Gegenmaßnahmen eingeleitet werden um dann nur wenig später wieder mit
voller Kraft eingesetzt zu werden.
4.2.5
Klassifizierung anhand des verursachten Schadens
Momentan können quasi alle bekannten Angriffe hier in die Kategorie der „disruptives
Attacks“ eingeordnet werden. Also diejenigen, die einen vollständigen Denial of Service zum
Ziel haben. Wie bereits eben angedeutet, kann aber auch nur ein erhöhtes Traffic Aufkommen
für das Opfer sehr kostspielig sein. Wenn ein Angreifer den legitimen Traffic seines Ziels,
beispielsweise eine E-Commerce Webseite à la www.amazon.com, um 30 Prozent erhöht,
kann es sein, dass zu Stoßzeiten die Seite nicht mehr erreichbar ist. Da der eigentliche Angriff
von dem Opfer eventuell gar nicht bemerkt wird, bleibt diesem nichts anderes übrig, als die
Ressourcen aufzustocken, um mit dem gestiegenen Traffic zurechtzukommen und auch zu
Stoßzeiten die Seite erreichbar zu machen.
4.3 Klassifizierung der DDoS Verteidigungstechniken
Wie schon mehrmals erwähnt gibt es gegen Distributed Denial of Service Attacken kein
Allheilmittel, keine „silver bullet“. Aus diesem Grund richten sich auch die
Verteidigungsmechanismen oftmals nur gegen einzelne Angriffsformen und funktionieren nur
unter bestimmten Vorraussetzungen. Um wirklich effektiv DDoS Attacken bekämpfen zu
können, ist es zudem notwendig, auch gemeinsam gegen diese vorzugehen und verschiedene
Verteidigungstechniken zu kombinieren.
4.3.1
Überblick
Zunächst auch hier eine Übersicht der verwendeten Klassifikation
17
Die Hauptunterscheidung liegt hierbei bei dem Aktivitätslevel des Vorgehens. Zum einen
kann auf einen Angriff reagiert und entsprechende Gegenmaßnahmen eingeleitet werden, zum
anderen kann aber auch im Voraus versucht werden, DDoS Angriffe zu erschweren.
4.3.2
Klassifizierung anhand der Präventivmaßnahmen
Das Ziel von Präventivmaßnahmen kann zum einen sein, einen Angriff zu erschweren oder
gar unmöglich zu machen - zum anderen aber auch „nur“ dem Opfer zu ermöglichen, einen
Angriff derart zu überstehen, dass legitime Nutzer des angebotenen Service, nur gering oder
gar nicht von einem Angriff beeinträchtigt werden.
A Präventivmaßnahmen um einen Angriff zu verhindern
Auch hier ist eine weitere Unterteilung von Nöten. Die Maßnahmen können auf
Systemebene ansetzen oder auf der Protokollebene.
1. System Sicherheit
Das Erhöhen der allgemeinen System Sicherheit hilft nicht nur gegen
DDoS Attacken, sondern schützt beispielsweise auch vor Infiltrationen und
anderen Angriffsmöglichkeiten. Weiterhin kann dadurch verhindert
werden, dass die eigenen Rechner eventuell für eine DDoS Attacke
missbraucht werden. Man leistet also einen Beitrag für die allgemeine
Sicherheit im Internet. Möglichkeiten die System Sicherheit zu erhöhen
gibt es viele, angefangen bei regelmäßigen Softwareupdates um bekannte
und vom Hersteller behobene Sicherheitslücken auch schnell zu schließen,
hin zu Firewalls, Virenscanner, System – Überwachungssysteme etc. Auch
wenn keine dieser Maßnahmen 100% Sicherheit gewährt, so senken sie
doch die Gefahr und die möglichen Schäden einer DDoS Attacke.
2. Protokoll Sicherheit
In vielen Fällen kann ein fehlerhaftes oder schlechtes Protokoll einen
Angriff entscheidend vereinfachen. Ein Beispiel hierfür ist das oben
genannte TCP SYN Flooding. Hier kann prinzipiell nur gemeinsam
vorgegangen werden um eine Lösung zu finden. Das Problem, dass viele
Operationen für den Client „billig“ aber für den Server sehr „teuer“ sind,
steht hierbei im Vordergrund. Ziel ist es zum Beispiel dem Nutzer erst
Ressourcen zur Verfügung zu stellen, nachdem dessen Authentizität
wirklich sicher gestellt ist.
Letztendlich könnten durch diese Maßnahmen Protokollattacken quasi vollständig
verhindert werden. Zudem sind sie mit allen im Folgenden beschriebenen Maßnahmen
kombinierbar.
B Präventivmaßnahmen um im Falle eines Angriffes Denial of Service zu verhindern
Das Ziel dieser Präventivmaßnahmen ist es nicht, den Angriff an sich unmöglich zu
machen, sondern vielmehr das erfolgreiche Überstehen eines solchen. Erfolgreich
heißt hierbei, dass legitime Nutzer weiterhin den Service nutzen können und nicht
beeinträchtigt werden. Um das zu erreichen, können wiederum zwei unterschiedliche
Ansätze verfolgt werden.
18
1. Zuweisung von Ressourcen
Eine Möglichkeit zumindest bestimmte Service auch im Falle einer Attacke
aufrechtzuerhalten, ist das Verteilen von Nutzer Priviligien. User die sich
authentifiziert haben und sich auch angemessen verhalten, erhalten Zugriff
auf bestimmte Service, die für den normalen Nutzer und damit auch für den
potentiellen Angreifer, zunächst nicht zugänglich sind.
2. Verteilung und Vergrößerung der Ressourcen
Die wohl „einfachste“ Möglichkeit um gegen DDoS gewappnet zu sein, ist
das Ausbauen der eigenen Kapazitäten. Angefangen bei der Bandbreite,
über mehrere Server hin zu Load Balancern, welche den Traffic auf
mehrere Server gleichmäßig verteilen können. Auch wenn diese Methode
sehr teuer ist und letztendlich nur die Schranke, die es für den Angreifer zu
überwinden gilt, höher setzt, so hat die Vergangenheit doch gezeigt, dass
beispielsweise Microsoft dadurch auch einigen sehr großen DDoS Attacken
standhalten konnte.
4.3.3
Klassifizierung anhand der reaktionären Maßnahmen
Da letztendlich die Möglichkeit einer DDoS Attacke mit den bisher beschriebenen
Maßnahmen nur vermindert aber nicht ausgelöscht werden kann, sollte man sich auch
Gedanken über den Fall der Fälle machen – welche Maßnahmen man ergreift, wenn der
Angriff begonnen hat. Da eine DDoS Attacke auf den ersten Blick auch wie ganz normales,
nur eben sehr hohes, Traffic Aufkommen aussehen kann, besteht hierbei zunächst die
Schwierigkeit, den Angriff zweifelsfrei zu erkennen. Sobald das geschehen ist, müssen die
Gegenmaßnahmen eingeleitet werden.
A Möglichkeiten der Entdeckung einer DDoS Attacke
Allen Möglichkeiten gemeinsam, ist das Ziel, eine möglichst hohe Erfolgsrate zu
haben mit möglichst wenigen Fehlalarmen. Falls legitimer Traffic als DDoS eingestuft
würde, hätte das zur Folge, dass das System selbst den DoS verursachen würde
.
1. Pattern Attack Detection
Bei jedem Angriff kann eine gewisse Charakterisierung des Attack Streams
erfolgen. Die entsprechende Signatur wird dann in einer Datenbank
abgespeichert. Ein System, welches mit „Pattern Attack Detection“ arbeitet,
nutzt lediglich diese Datenbank mit bekannten Angriffssignaturen, um
einen Angriff zu erkennen. Das offensichtliche Problem dabei ist, dass neue
Angriffsformen nicht entdeckt werden - allerdings entdeckt es dafür bereits
bekannte sehr sicher und verlässlich.
2. Anomaly Attack Detection
Hierbei wird ein Modell des Normalzustandes hinsichtlich Traffic, System
Performance, CPU Auslastung, etc. erstellt. Der aktuelle Status wird immer
mit diesem Modell verglichen und sobald zu große Abweichungen
eintreten, Alarm ausgelöst. Die Schwierigkeit besteht nun darin,
festzulegen, was eine „zu große“ Abweichung ist. Weiterhin muss das
Modell auch aktualisiert werden. Geschieht dies zu selten, können eventuell
Fehlalarme ausgelöst werden, geschieht es zu oft, ist das System machtlos
19
gegen Angriffe mit langsam ansteigendem Traffic wie in Kapitel 4.2.4
beschrieben. Allerdings können eben im Gegensatz zu der „Pattern Attack
Detection“ auch bisher unbekannte Angriffe entdeckt werden.
3. Hybrid Attack Detection
Hybride Systeme versuchen die Vorteile von beiden Varianten zu vereinen,
indem sie anhand der entdeckten Angriffe durch ein „Anomaly Attack
Detection“ System neue Signaturen für die Musterdatenbank erstellen. Je
automatisierter diese Systeme ablaufen, desto höher ist das Risiko auch mal
einen legitimen Datenstrom als DDoS Angriff einzustufen. In diesem Fall
wird das Abwehrsystem selbst zum Denial of Service Tool.
B Mögliche Gegenmaßnahmen im Falle einer DDoS Attacke
Wie schon mehrfach erwähnt, dürfen eventuelle Gegenmaßnahmen nicht dazu führen,
dass legitime Nutzer eingeschränkt werden. Neben dem Versuch den Attack Stream
beispielsweise zu filtern oder zu limitieren, besteht auch die Möglichkeit, den
Angreifer oder zumindest dessen Agents, ausfindig zu machen und somit direkt an der
Quelle die Attacke zu bekämpfen.
1. Maßnahmen zur Identifikation der Agenten
Hierbei wird versucht, mit Hilfe von Traceback Techniken, die einzelnen
Agenten ausfindig zu machen. Im besten Fall besteht zwischen Agent und
Handler eine direkte Kommunikation, wodurch es eventuell dann sogar
möglich ist, das komplette DDoS Netzwerk aufzudecken und somit den
Attack Stream problemlos zu droppen.
2. Maßnahmen um den Attack Stream zu limitieren
Falls das Erkennungssystem nicht zweifelsfrei einen Angriff erkennen
kann, oder des Öfteren auch mal falschen Alarm schlägt, kann diese
Maßnahme zumindest bedingt weiterhelfen. Hierbei wird einfach der
verdächtige Traffic Stream limitiert. Dadurch wird beispielsweise die
Webseite auch schwerer erreichbar, kann aber eventuell den Totalausfall
noch verhindern. Gegen große Attacken hilft diese Technik aber oftmals
nicht weiter, da trotz der Limitierung ja weiterhin ein Teil des Traffics
durchgelassen wird.
3. Filter Maßnahmen
Falls der Attack Stream in die Kategorie „Filterbare Attacken“ fällt, kann
mit Hilfe einer Firewall dieser gedroppt werden. Diese Technik sollte nur
eingesetzt werden, wenn das Erkennungssystem sehr zuverlässig arbeitet
und der Attack Stream wirklich einwandfrei zu isolieren ist.
4. Rekonfigurations Maßnahmen
Hierbei werden im Falle des Angriffes beispielsweise zusätzliche
Ressourcen freigeschalten oder es wird versucht, die vom Angriff
betroffenen Server zu isolieren.
Sowohl für Präventivmaßnahmen als auch für die reaktionären Gegenmaßnahmen gilt, dass
der Erfolg durch die Kooperation mit anderen Unternehmen oder ISPs deutlich gesteigert
20
werden kann. Beispielsweise können Traceback und Pushback Methoden von einzelnen
Instanzen letztendlich gar nicht effektiv eingesetzt werden. Auch das Einführen von neuen,
verbesserten Protokollen ist nur gemeinsam möglich.
4.3.4
Klassifizierung anhand der Stelle, an der die Verteidigung ansetzt
Zumeist wird ein Angriff direkt am Ort des Geschehens bekämpft, also beim Opfer selbst.
Der Grund liegt ganz einfach darin, dass der Geschädigte auch selbst das höchste Interesse
zeigt, gegen den Angriff vorzugehen und sich zu schützen. Allerdings könnten die Erfolge
erhöht werden, wenn auch an anderen Stellen des Internets schon Schutzmechanismen
installiert werden würden. Dadurch könnten zum einen mehrere potentielle Opfer auf einmal
geschützt werden und zum anderen könnten die gemeinsamen Bemühungen auch die
Effektivität steigern. Traceback und Pushback Techniken sind Beispiele für Möglichkeiten,
mit deren Hilfe durch dieses gemeinsame Vorgehen die Sicherheit erhöht werden könnte.
Wenn man diesen Schritt konsequent weitergehen würde, so sollte als nächstes Ziel versucht
werden zu verhindern, dass ein Netz überhaupt als Ausgangspunkt für DDoS Attacken
verwendet werden kann. Angefangen bei der Firma, die ihr Subnetz sicherer macht hin zu den
ISPs. Das Problem dabei ist, dass der Aufwand und dadurch die Kosten dafür sehr hoch sind.
Wer für diese Kosten allerdings aufkommen soll, ist unklar, da der Return of Investment,
zumindest für kurzfristig denkende Menschen, nicht sofort offenbar wird.
5. Fazit
Abschließend bleibt zu sagen, dass Sicherheit im Internet keinesfalls eine Angelegenheit von
einzelnen sein darf. Solange nicht wirklich jeder seinen Teil dazu beiträgt, kann die Gefahr
die von solchen Attacken ausgeht, kaum gebannt werden. Gerade DDoS Attacken zeigen
diese Tatsache nur allzu schmerzlich auf. Die rasante Entwicklung der letzten 3 Jahre hat
gezeigt, dass wir hier noch lange nicht am Ende sind und die Angriffe in Zukunft wohl
deutlich raffinierter ablaufen werden. Hinzu kommt die ständige Weiterentwicklung der
Attack-Tools, bei denen mittlerweile schon fast die Eingabe des Ziels und ein zusätzlicher
Mausklick genügen, um den Angriff zu starten.
Um dieser Gefahr wirklich effektiv zu begegnen, muss das Sicherheitsverständnis vor allem
auch bei dem „normalen“ Internetnutzer deutlich gesteigert werden. Die Schwierigkeit liegt
dabei wohl darin, dass Sicherheitstools wie Firewalls nur schwer zu konfigurieren und somit
für den unbedarften Anwender kaum nutzbar sind. Inwieweit es hier möglich ist, in Zukunft
Tools zu entwickeln, die wirklich von jedem bedienbar sind, wird in meinen Augen einen
entscheidenden Anteil tragen, ob das Internet für alle sicherer werden kann. Wie bei vielen
Problemen ist auch hier nur ein gemeinsames Vorgehen effektiv und sinnvoll.
21
6. Quellen
“A Taxonomy of DDoS Attacks and DDoS Defense Mechanisms”, Jelena Mirkovic, Janice Martin and Peter
Reiher, Computer Science Department, UCLA, Technical Report #020018
“An Introduction to Internet Attack and Penetration”, Matta Security Limited, 2002
“TCP Hijacking”, Stefan Krecher, Chaos Computer Club
“Managing the Threat of Denial of Service Attacks”, Allen Householder, Art Manion, Linda Pesante, George M.
Weaver, Rob Thomas, CERT Coordination Center, ver10.0 – 2001
“An Analysis of Using Reflectors for DDoS Attacks”, Vern Paxson, AT&T Center for Internet Research at ICSI,
2001
“Distributed Attacks and the way to deal with them”, Tim Yardley, UIUC, 2000
“Trends in Denial of Service Attacks”, Kevin J. Houle, George M. Weaver, CERT Coordination Center, ver1.0 –
2001
“Denial of Service Attacks”, CERT Coordination Center, 1999
“Warhol Worm”, Nicholas C. Weaver, Berkeley University, 2001
“DoS using Nameservers”, CERT Coordination Center, 2000
“Smurf Attack”, CERT Coordination Center, 1998
“Results of the Distributed-Systems Intruder Tools Workshop, CERT Coordination Center, 1999
“ISP Security – Real World Techniques”, Brian W. Gemberling, Christopher L. Morrow, Barry R. Greene, 2001
“IP Network Scanning and Reconnaissance”, Matte Security Limited, 2002
“Broadband Network Insecurity and Implications”, Matta Security Limited
6.1
Weiterführende Links
http://staff.washington.edu/dittrich/misc/ddos/
http://www.cert.org/
http://security.royans.net/info/articles/feb_attack.shtml
http://security.royans.net/static/papers.shtml
http://www.robertgraham.com/op-ed/magic-ddos.html
http://www.securityfocus.com/cgi-bin/sfonline/library.pl?cat=9&offset=10
22