-=DoS
- Denial of Service=-
|
Hi
Leutz, Hier sind die 12 häufigsten DoS Attacken erklärt , mit ansätzen wie man mit C++ /C per Raw Sockets einen DoS Programm machen könnte :) |
Was
ist DoS ?
|
Diese Gruppe von Angriffsstrategien dient meist dem Lahmlegen eines Rechners oder einzelner Funktionen dieses Rechners. Dabei wird in der Regel der Aspekt ausgenutzt, daß die Ressourcen (Speicher, Rechenzeit, etc.) auf einem Rechner nur in begrenztem Maße vorhanden sind. Ein Denial of Service Attacke versucht nun auf dem angegriffenen Rechner eine der Ressourcen zu überlasten, so daß der Rechner seinen regulären Aufgaben nicht mehr nachkommen kann und seine Clients nicht mehr bedienen kann. Denial of Service Attacken stellen eine wichtige Gruppe von Angriffen dar, da sie oft als Vorstufe zu einem wesentlich weiterreichenden Angriff dienen. |
Distributed DoS |
Eine
Denial-of-Service Attacke, an dem sich mehrere Rechner beteiligen. Je
nach Intensität ( also Bandbreite ) können solche verteile
Attacken ganze Netzwerkknoten lahmlegen
|
Broadcast Storms (Denial-of-Service Attacke) |
Broadcast
Storms richten besonders viel Schaden in lokalen Netzwerken an, in denen
jeder Rechner als Gateway fungiert und die Netzwerktopologie nur mangelhaft
gewartet wird. An jeden Rechner wird bei einer Broadcast Storm-Attacke
ein Strom an IP-Paketen geschickt, die allesamt an nichtexistierende
Ziele adressiert sind. Wird dieser Datenstrom für mehrere Rechner
innerhalb dieses Netzwerkes aufrechterhalten, ist das gesamte Netzwerk
recht bald ziemlich lahmgelegt, da die Rechner die falsch adressierten
Daten über die Gateways immer wieder in andere Subnetze verschieben.Um
die Problematik von Broadcast Storms zu vermeiden, ist eine ausgeklügelte
und sorgfältige Planung des Netzwerks notwendig, um das "Hängenbleiben"
von umherirrenden IP-Paketen von vorneherein zu verhindern bzw. in kürzester
Zeit zu eliminieren.
|
Land
Attacks
|
Durch
die Land-Attacke wird ein sehr komplexer Angriff ausgeführt, welcher
ein SYN-Paket mit identischer Absender- und Empfängerport erzeugt.
Anschliessend wird dieses Paket an einen offenen Port gesendet, wo das
Paket durch die vielen IP-Stacks eine Art Race-Condition erzeugt, und
dadurch das System des Opfers lahm legt.
Diese Angriffsart ist seit Ende 1997 bekannt, und es handelt sich hierbei um eine der letzten Varianten der DoS-Attacken, welche beachtliche Popularität erlangte. Die Auswirkungen waren relativ begrenzt, da viele Rechner schon durch Updates, Patches und Bug-Fixes gegen andere DoS-Attacken geschützt waren, und die verschiedenen Systemadministratoren gewisse Vorkehrungen trafen, um auch diese Attacke wirkungslos erscheinen zu lassen. Eine Besonderheit von Land war jedoch, dass die weit verbreiteten, und oft an zentralen Knotenpunkten der Netze installierten Cisco-Router von den Attacken betroffen waren. |
Message
Flooding
|
Dies
ist die primitivste Art des DoS-Angriffs auf einen Rechner. Dabei wird
nur ein Brute- Force Angriff durchgeführt, bei dem (sinnlose) Nachrichten
in einer so großen Zahl an einen Rechner gesendet werden, daß
er durch die Flut dieser Nachrichten nicht mehr dazu kommt die Nachrichten
seiner Clients zu behandeln. Ein gutes Beispiel für solche Nachrichten
sind Ping-Anfragen (echo-request). Wird ein Rechner durch eine große
Zahl an solchen Nachrichten Bombadiert, so kann dies dazu führen,
daß er einen Großteil seiner Rechenzeit damit verbringt
die entsprechenden Antworten (echo-replies) zu ver- schicken. Dies kann
dazu führen, daß der Rechner nicht mehr in der Lage ist die
Anfragen seiner Clients zu bearbeiten und somit quasi ausgeschaltet
ist. Einen ähnlichen Weg wie beim Message Flooding, gehen die s.g.
Service Overloading Attacks. Allerdings werden hier gezielt Services
angesprochen, die einen Großteil der Rechnerressourcen aufzehren
können. Dabei ist hier nicht die Menge der Nachrichten ausschlaggebend,
sondern es kann hier unter Umständen sogar eine einzige Nachricht
genügen. Bekannte Dienste (services), die für einen solchen
Angriff anfällig sind sind z.B. der finger-Dienst, der auf den
meisten Rechnern zur Verfügung steht. Aber auch speziellere Dienste,
wie etwa ein Datenbankserver, die nicht genügend gesichert sind
kommen als Angriffspunkte in Frage. Bei einem Datenbanksystem kann eine
entsprechend formulierte Abfrage (etwa ein Join über mehrere Tabellen)
die Systemressourcen bis an die Grenzen belasten.
|
Mail-Bombing
(Denial-of-Service Attacke)
|
Einer der
ältesten Denial of Service-Attacks ist das inzwischen "klassische"
Mail-Bombing. Hierzu wird ein Empfänger mit einer Vielzahl von
gleichlautenden Emails regelrecht bombadiert, so daß das nächste
Herunterladen der vorhandenen Emails zur Qual werden dürfte.
Die Ausführung erzeugt aber noch ein anderes Opfer: Eine sehr unangenehme Variante des Mail-Bombings ist die Anmeldung eines Opfers bei Unmengen von Mailinglisten. Das Opfer muß sich nämlich nach so einer Attacke mühsam aus allen angemeldeten Listen manuell wieder austragen. |
SYN
Attacks
|
Dieser
Typ einer Denial Of Service Attacke, ist die wohl hinterhältigste
überhaupt. Hier wird das Drei-Wege-Handshaking von TCP benutzt,
um sog. halboffene Verbindungen herzustellen. Da TCP ein sicheres Übertragungsprotokoll
ist gibt es Mechanismen, um eine Verbindung zu synchronisieren. Dies
wird über das erwähnte Drei-Wege- Handshaking von TCP erledigt.
Dabei gibt es, wie der Name schon ahnen läßt, drei Schritte,
die durchgeführt werden: - Der Client sendet eine Synchronisationsnachricht
(SYN) an den Server - Der Server antwortet mit einem entsprechenden
Acknowledgment (ACK/SYN) - Darauf sendet der Client sein Acknowledgement
(ACK) an den Server. Mit diesen drei Schritten ist das Handshaking abgeschlossen.
Nach Schritt 2 befindet sich auf dem Server ein Eintrag für die
Verbindung, der bestehen bleiben muß, bis der Client seine Antwort
gesendet hat. Eine Verbindung in diesem Stadium nennt man halboffen.
Ein SYN-Attack nutzt nun die Tatsache aus, daß der Server die
halboffenen Verbindungen speichern muß, bis er eine Antwort darauf
erhält. Wird diese Antwort allerdings nie gesendet, so muß
der Server die halboffene Verbindung trotzdem im Speicher behalten.
In den TCP/IP Implementierungen wird in der Regel eine Query benutzt,
die einen gewissen endlichen Speicher für die halboffenen Verbindungen
zur Verfügung stellt. Erstellt nun ein Angreifer eine größere
Menge dieser halboffenen Verbindungen, so ist abzusehen, daß der
Speicher der Queue irgendwann zu Ende geht. An dieser Stelle ist es
dem Server nicht mehr möglich eine weitere TCP-Verbindung aufzubauen.
Er kann somit nicht mehr auf Anfragen seiner Clients reagieren. Im schlimmsten
Falle kann es sogar dazu führen, daß der Serverrechner durch
den Überlauf der Queue abstürzt, wodurch er dann völlig
lahmgelegt wäre.
Diese Flood-Attacke erlebte besonders im Herbst 1996 großen Aufschwung. |
Nukes
bzw. Out of Band-Packets (Denial-of-Service Attacke)
|
Nahezu
schon legendäre Denial of Service-Attacks sind die sogenannten
Nukes. Hierzu werden spezielle IP-Pakete, die ein besonderes Merkmal
haben, an einen Rechner geschickt. Entsprechend ungesicherte Betriebssysteme
( ungepatchte Versionen von Windows und Linux ) quittieren den Empfang
solcher Pakete mit dem völligen Systemstillstand. Inzwischen existieren
für (fast) alle betroffenen Betriebssysteme geeignete Patches,
die diesen Fehler eliminieren.
Out of Band-Packets bestehen aus einem speziellen UDP-Paket, daß gewöhnlich an den Port 139 (NetBIOS-Port) gesendet wird, da dieser standardmäßig bei vielen Computern geöffnet ist. Prinzipiell funktioniert es aber auch mit allen anderen Ports, die für Datenempfang standardmäßig geöffnet sind. Die Wirkungsweise liegt nun darin, daß ein entsprechend ungesichertes Betriebssystem mit Out of Band-Informationen nichts anfangen kann und in einer "panikartigen" Reaktion im ungünstigsten Fall die aktuelle Sitzung mit einem Systemabsturz beendet. |
Ping-AT-Attacks
(Denial-of-Service Attacke)
|
Der
amerikanische Modemhersteller Hayes hat Ende der 70er Jahre eine einheitliche,
zeilenorientierte und offene Befehlsprache für Modems entwickelt,
die sogenannten AT-Befehle. Anhand dieser AT-Befehle ist es möglich,
jedes Modem anzusprechen, in welches diese Sprache implementiert ist.
Inzwischen sind in allen modernen Modems die AT-Befehlssprache implementiert,
so daß Modems von Betriebssystemen und Programmen meist universell
angesprochen werden können.
Ist ein Modem offline, befindet es sich prinzipiell im Kommandomodus, d.h. es kann über AT-Befehle angesprochen werden. Geht es dagegen online, wechselt es in den Übertragungsmodus und ist in dieser Zeit nicht über AT-Befehle ansprechbar, es sei denn, man übergibt dem Modem drei Escape-Zeichen (im Fachjargon mit "+++" gekennzeichnet), die das Modem als Befehl zum Umschalten in den Kommandomodus interpretiert. Aus Sicherheitsgründen muß zwischen diesem Umschaltkommando in den Kommandomodus und dem ersten AT-Befehl mindestens eine Pause von 1 Sekunde vorhanden sein. Leider verzichten einige Modemhersteller aus patentrechtlichen Gründen auf diese Pause, so daß bei diesen Modellen der Umschaltbefehl in den Kommandomodus und ein kompletter AT-Befehl direkt hintereinander ohne Zeitverzug eingegeben werden können. Und genau darauf beruht der folgende Angriff: Ein Absender schickt an einen Empfänger über das Internet ein spezielles Ping-Paket, das z.B. die Sequenz "+++ATH0" (Umschalten in den Kommandomodus und Beenden der Verbindung) enthält. Laut Ping-Protokoll antwortet der Rechner des Empfängers auf die Ping-Anfrage mit der Spiegelung des Paketes. Kennt das Modem nun keine Pause zwischen dem Umschalten in den Kommandomodus und dem ersten AT-Befehl, wird es den Paketinhalt des Antwort-Pings als abzuarbeitende Sequenz interpretieren und die Verbindung beenden. |
Ping
Flooding (Denial-of-Service Attacke)
|
Das Ping
Flooding gehört zu den Denial-of-Service Attacken, die keine
Sicherheitslöcher ausnutzen. Pings werden benutzt, um die Erreichbarkeit
von anderen Hosts im Netz zu prüfen. Ein angepingter Host quittiert
hierzu einen Ping mit einer echoartigen Antwort, einem sogenannten
"Pong". |
Ping
of Death bzw. Large Packet-Attacks (Denial-of-Servie Attacke)
|
Ein
weiterer, besonders hinterhältiger Veteran der Denial of Service-Attacks
sind die Large Packet-Attacks, unter Insidern Ping of Death genannt
(obwohl die Attacke nichts mit dem eigentlichen Ping-Programm zu tun
hat).
Die Wirkungsweise von Large Packet-Attacks ist zugleich einfach und fatal: Das IP-Protokoll verpackt alle Daten beim Absender in 64 kB (65.535 Bytes) große Päckchen. Diese werden jedoch protokollintern vor der Übertragung in kleinere Päckchen zerlegt, um sie einfacher übertragen zu können (fragmentieren). Beim Empfänger werden diese einzelnen Päckchen wieder zusammengefügt (reassemblieren), allerdings erst, wenn alle Einzelteile vorliegen. Ist das ankommende Paket am Ende größer als 64 kB, läuft ein interner Speicherpuffer über und bringt im ungünstigsten Fall den Rechner zum Absturz. |
Service
Overloading (Denial-of-Service Attack)
|
Einen
ähnlichen Weg wie beim Message Flooding, gehen die s.g. Service
Overloading Attacks. Allerdings werden hier gezielt Services angesprochen,
die einen Großteil der Rechnerressourcen aufzehren können.
Dabei ist hier nicht die Menge der Nachrichten ausschlaggebend, sondern
es kann hier unter Umständen sogar eine einzige Nachricht genügen.
Bekannte Dienste (services), die für einen solchen Angriff anfällig
sind, sind z.B. der Finger-Dienst, der auf den meisten Rechnern zur
Verfügung steht. Aber auch speziellere Dienste, wie etwa ein Datenbankserver,
die nicht genügend gesichert sind, kommen als Angriffspunkte in
Frage. Bei einem Datenbanksystem kann eine entsprechend formulierte
Abfrage (etwa ein Join über mehrere Tabellen) die Systemresourcen
bis an die Grenzen belasten.
|
Smurf-Attack
(Denial-of-Service Attacke)
|
Der
Angreifer generiert dabei eine große Anzahl von ICMP Echo Paketen
(Ping) mit der Broadcast Adresse eines möglichst großen Netzwerkes.
Jedes dieser Pakete hat dabei als Absenderadresse die IP-Adresse eines
zu störenden Hosts. Da es sich um Broadcast Adressen handelt, empfängt
im Zielnetzwerk jeder Host die Pakete und würde es mit einem ICMP
Echo Paket an die gefälschte Absenderadresse beantworten. Somit
ist es möglich, in einem Ethernet mit 100 Hosts aus 50 Paketen
50.000 zu erzeugen.
Der Angriff setzt voraus, daß alle unterwegs passierten Router die Broadcast-Pakete routen und der Router im Zielnetzwerk die Pakete auf zum Beispiel Ethernetadressen umsetzen (IP-Adresse 10.255.255.255 -->für Ethernet FF:FF:FF:FF:FF:FF). |
Teardrop
|
Nahezu
wie der "Ping of Death" macht sich "Teardrop" die
Fragmentierung von IP-Paketen zunutze. Während beim "Ping
of Death" eine übergroße Fragmentierung erzeugt wird,
überlappen sich die Fragmente bei einer Teardrop-Attacke einfach,
und bringen so Windows und Linux ins Schwitzen, und schlussendlich zum
Crash.
Auch diese Attacke wurde gegen Ende 1997 besonders oft gesichtet. Dem Schrecken wurde aber schnell mit Patches und Updates ein Ende gesetzt. |
Gibt
es ein Gegenmittel?
|
Theoretisch
wie auch praktisch sind Denial-Of-Service-Attacken immer möglich.
Die Anfälligkeiten der Server gegenüber diesen Attacken sind
somit ein ständiger Begleiter eines jeden Systemadministrator.
Wie thE_iNviNciblE sagen würde : "Hört auf euch mit dem
Internet zu Connecten" :)
|