-=DoS - Denial of Service=-


Startseite (Kein Menü ???)

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 Mailbombe besteht im Prinzip aus einer einzigen Email, die an einen SMTP-Mailserver zur Ausführung geschickt wird. Diese Email hat jedoch die Besonderheit, daß sie die Email-Adresse des Opfers gleich mehrmals als BCC-Empfänger enthält. Der ausführende Mailserver hat bei entsprechend hoher Angabe von BCC-Empfängern ebenfalls entsprechend genug zu tun, diese Emails zu generieren und zu versenden.

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".
Beim Ping Flooding wird ein Host jedoch mit unzähligen Ping-Anfragen bombadiert, die der Host dann natürlich alle bearbeitet (falls keine entsprechenden Mechanismen die Abarbeitung von rasch wiederholenden Ping-Anfragen verhindert) und entsprechend das eigene System und die Netzverbindung auslastet.


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" :)


Startseite (Kein Menü ???)