1.5.1 Grundprinzip eines Angriffs
Bevor ein Angreifer einen Distributed Denial of Service Angriff starten kann, muss ein mehrstufiges Netzwerk aus sogenannten Master- und Daemonsystemen aufgebaut werden.
(Siehe Abbildung 2).
Abbildung 2 : DDoS Angriffsszenario |
Zum Verständnis:
Client Eine Applikation die zum Initialisieren einer Attacke (beim Senden von Befehlen zu anderen Komponenten) gebraucht werden kann
(Vom Attacker gesteuert)
Server Ein Server ist ein Prozess, der Dienste leistet und zur Verfügung stellt
Daemon Linux / Unix Daemonen sind Prozesse die nicht an einen Benutzer oder Kontrollterminal gebunden sind. Sie erledigen im stillen Verwaltungsaufgaben und stellen Dienstleistungen zur Verfügung. (z.B. Koordinieren der DDoS Pakete, Netzdienste: inetd, sendmail)
Master Ein Host, auf dem ein Client laeuft (Vom Angreifer gesteuert)
Agent Ein Host, auf dem ein Daemon laeuft
Handler Zweiter Client (nur bei Stacheldraht), der Client bei Stacheldraht übernimmt die Verschlüsselung.
Hinweis: Bei den verschiedenen DDoS-Tools werden die einzelnen beteiligten Rechner nicht immer gleich bezeichnet.
Der Angreifer kommuniziert über eine Verbindung (z.B Telnet) mit den verteilten Mastern. An diese sendet er das Angriffskommando. Dieses Kommando besteht aus den Daten des Opfers (IP-Adresse, Portnummer, Angriffsart). Dies ist der einzige Verkehr der vom Angreifer aus geht. Danach übernehmen die Master die weitere Steuerung und Koordination des Angriffs. Jeder Master steuert eine bestimmte Anzahl an sogennanten Daemons. Damit beim Entdecken eines Masters durch einen Netzwerk-Sniffers nicht gerade alle Daemons unbrauchbar werden, teilen die Angreifer die Master in gut durchdachten Teilgebiete auf. Die Daemons befinden sich wieder auf anderen Systemen und können sich weit verstreut im Netz befinden. Erst die Daemonsysteme führen auf Anweisung des Masters den eigentlichen Angriff aus. Dies kann z.B eine SYN-Flood Attacke sein, bei der der Angreifer ein Paket zum Aufbau einer TCP-Verbindung (SYS-Pakete) an das Opfersystem sendet. Dieses reserviert einen Port und sendet ein sog. SYN-ACK Paket zurück. Da der Angreifer jedoch seine IP-Adresse gespooft hat, bekommt der Absender keine Bestätigung zurück . Das Opfersystem wiederholt und verwirft die reservierte Verbindung nach einem eingestellten Zeitraum entgültig. Unter Windows-NT dauert diese Zeit genau 189 Sekunden.
Wird dieser Verbindungsaufbau nicht nur einmal, sondern parallel sehr häufig ausgeführt, führt dies dazu, dass der Rechner anderweitig nicht mehr angesprochen werden kann.
1.5.2 Ein DDoS Angriffsszenario in 7 Schritten
Dieses Kapitel zeigt, wie das Netzwerk und der ganze DDoS Angriff aus Master- und Daemonsystemen aufgebaut wird. Dieser Aufbau erfolgt im Vorfeld, also bevor der eigentliche Angriff auf das Opfer erfolgt. Es ist möglich , dass auf vielen Systemen solche Master oder Daemons „schlummern“ und erst nach einigen Wochen aktiviert werden und einen Angriff durchführen.
Schritt 1: Account hacken
Ein potentieller Angreifer verschafft sich auf einem ans Internet angeschlossene Rechnersystem einen gestohlenen Account. Meistens handelt es sich dabei um ein System mit vielen Usern und hoher Bandbreite, um seine Anwesenheit zu verdecken.
Dieser Account dient als Speicher für Master- und Daemonprogramme und das Planen der Attacke. Ein Angreifer besitzt meistens mehrere solche Accounts, damit die Systeme redundant sind.
Schritt 2: Scanning
Im zweiten Schritt erfolgt das Scannen grosser Netzwerke zur Identifizierung potentieller Ziele. Dazu werden Scanning Tools auf den „gestohlenen“ Accounts benutzt. Mittels Internet Security Scanner werden Schwachstellen auf Servern gefunden um so an Root-rechte auf den Systemen zu gelangen. Der Angreifer prüft ausserdem welche Dienste und Ports auf dem System aktiv sind.
Unter Unix wurden Schwachstellen in den Remote-Procedure-Call (RPC) Diensten wie cmsd, statd oder amd benutzt.
Schritt 3: Rechner angreifen
Nachdem dem Angreifer bekannt ist, auf welchen Systemen welche Sicherheitslücken vorliegen, generiert der Angreifer ein Script, welches diese Sicherheitslücken angreift. Dabei werden z.T bekannte Tools genutzt, die diese Sicherheitslöcher automatisch ausnützt und vorher auf den gestohlenen Accounts abgelegt wurden.
Schritt 4: DDoS Netzwerkfestlegung
Im vierten Schritt legt der Angreifer seine späteren Daemon- und Mastersysteme fest. Auf den „gehackten“ Systeme werden weitere Speicher genutzt, um dort die „pre-compiled binaries“ der Daemons zu lagern.
Schritt 5: Automatische Installation
Im fünften Schritt erzeugt der Angreifer ein Script, welches die Liste der „in Besitz genommenen“ Rechner benutzt und ein weiteres Script erzeugt, das den Installationsprozess automatisiert als Hintergrundprozess durchführt. Diese Automatisierung erlaubt den Aufbau eines weit verbreitenden Denial-of-Service-Netzes ohne Wissen der eigentlichen Besitzer der Systeme. Auch für diese Installation existieren Tools, die der Angreifer nutzen kann
Schritt 6: Masterinstallation
Als letztes erfolgt die Installation der Masterprogramme. Dies wird meist “ von Hand “ und mit besonderer Sorgfalt durchgeführt, da die Masterprogramme eine Schlüsselrolle im Netzwerk des Angreifers besitzen. Optional wird ein „Rootkit“ installiert, welches zur Verdeckung der Anwesenheit der Programme, Dateien und Netzwerkverbindungen dient. Die Masterprogramme werden bevorzugt auf Primary-Name-Server-Hosts installiert. Auf solchen Systemen ist meist eine grosse Anzahl an Netzwerkverbindungen zu finden, da diese für einen extrem grossen Netzwerkverkehr ausgelegt sind. Dies verdeckt die Aktivitäten bez. den Netzwerkverkehr der Master sehr gut. Weiterhin werden solche Systeme selbst bei dem Verdacht auf Denial-of-Service Aktivitäten nicht so schnell aus dem Netz genommen, da ihre Bedeutung für das eigene Netz zu gross ist.
Schritt 7: Der Angriff
Nun sind die Vorbereitungen für den DDoS-Angriff abgeschlossen und der Angriff auf das Opfer kann durchgeführt werden.
Abbildung 3 : DDoS Angriffsszenario in 7 Schritten
In der Beschreibung des Angriffsszenario wurde der Begriff Angriff nur im Zusammenhang mit dem Aufbau des Angriffs gebraucht und hat keinen Zusammenhang mit dem eigentlichen DDoS-Angriff.
Es existieren mittlerweile 6 Hauptbasen für Tools, die als Master- und Daemonsysteme fungieren. Sie unterscheiden sich durch grössere Änderungen in ihren Angriffsarten, ihrer Kommunikation oder andere zusätzliche Funktionen. Darüber hinaus gibt es eine Vielzahl weiterer Tools, die nur einige kleine Änderungen erhalten haben und im wesentlichen einem dieser Basistools entsprechen. Es besteht zudem die Möglichkeit, dass weitere neuartige Tools existieren, aber bisher noch nicht gefunden worden sind. Wie viele Systeme es im Internet gibt und wie viele schon verwendet wurden, lässt sich nur vermuten. In den folgenden Kapitel werden die wirkungsvollsten Tools beschrieben.
1.6.1 Trinoo
Der Angriff mit Trinoo erfolgt durch eine UDP-Flood-Attacke. Die Kommunikation zwischen Angreifer und Master erfolgt über eine TCP-Verbindung mit hoher Portnummer. Zwischen Master und Daemon, in beiden Richtungen, wird über eine UDP-Verbindung kommuniziert. Die Portnummern können leicht verändert werden und sind deshalb nicht immer gleich. Master und Daemon sind über ein Passwort geschützt und verhindern so die Übernahme durch andere. Das Passwort wird in Klartext übertragen und es besteht die Möglichkeit, ein Paket mit dem Passwort abzuhören. Dieser Nachteil wird bei anderen Tools durch verschlüsselte Passwortübertragung abgeschafft.
1.6.2 Trible Flood Network (TFN)
Mit TFN sind UDP-Flood-, TCP-SYN-Flood-, ICMP-Echo-Request- und ICMP-Broadcast-Storm-Attacken (smurf) möglich. TFN verfügt auch über die Möglichkeit, die IP-Adresse zu fälschen (IP-Spoofing). Die Kommunikation zwischen Angreifer und Master kann über verschiedene Remote-Shells erfolgen (TCP-, UDP-, oder ICMP-basierte Client/Server Shells). Zwischen Master und Daemon erfolgt die Kommunikation nur über ICMP-Echo-Reply-Pakete. Für den Master ist kein Passwort nötig, es braucht nur die Liste der Daemons.
1.6.3 TFN2K
TFN2K ist eine Erweiterung des TFN. Es wählt die Verbindungsart automatisch aus und verschlüsselt sie mit einem CAST-256 Algorithmus. Die Befehle werden hier nicht stringbasiert, sondern in der Form „+<id>+<data>“ übertragen. Id ist der Befehl und ein Byte lang. Data sind die zugehörigen Parameter.
quelle: http://packetstorm.securify.com/distributed/TFN2k_Analysis-1.3.txt
1.6.4 Stacheldraht
Stacheldraht besitzt die gleichen Angriffsmöglichkeiten wie TFN. Neu ist die verschlüsselte Kommunikationsverbindung. Somit ist ein Session hijacking (Übernahme einer Verbindung) nicht mehr möglich. Die Verbindung zwischen Angreifer und Master erfolgt über eine Telnet ähnliche Verbindung, welche durch einen Passwortsatz gesichert und verschlüsselt ist. Die Kommunikation zwischen Master und Daemon ist mittels Blowfish (symmetrischer Verschlüsselungsalgorithmus) verschlüsselt. Der Master kommuniziert mit dem Daemon über eine TCP-Verbindung, im Gegensatz sendet der Daemon seine Nachrichten als ICMP-Echo-Reply-Pakete. Zusätzlich können die Daemons automatisch aktualisiert werden.
Stacheldraht läuft nur auf Solaris und Linux, hat aber eine weitere Finesse eingebaut: Über einen Befehl kann der Master auf allen bereits infizierten Rechnern eine neue Version des Clients installieren. Neuen Funktionen und Tarnmöglichkeiten sind so praktisch keine Grenzen mehr gesetzt.
quelle: http://www.etdv.ruhr-uni-bochum.de/dv/lehre/seminar/
1.6.5 Shaft
Die Kommunikation ist bei Shaft gleich wie bei Trinoo. Angreifer zu Master Kommunikation über TCP und Master zu Daemon Kommunikation und umgekehrt über UDP. Der Angreifer kontaktiert den Master über einen Telnetclient und loggt sich mit einem Passwort ein. Die Daten werden somit im Klartext übertragen. Shaft kann UDP-, TCP- und ICMP-Attacken einzeln oder in Kombination durchführen.
Quelle: http://www.royans.net/insync/ddos/bugtraq_ddos3.shtml
1.6.6 Mstream
Die Kommunikation zwischen Master und Daemon erfolgt über UDP. Der Angreifer meldet sich über TCP beim Master. Die Daten zwischen den einzelnen Komponenten werden nicht verschlüsselt. Mstream verfügt über TCP-SYN-Attacken, welche die Angriff-Ports jedesmal zufällig auswählt.
Quelle: http://packetstorm.securify.com/advisories/iss/iss.00-05-02.mstream
1.7 DDoS in Zahlen und Fakten
Jahr Name Besonderheit
Herbst 1996 SYN-Flooding SYN-Flooding: TCP-Verbindungen, „Three-Way-Handshake“ , SYN-Paket, Handshake, eine falsche Absenderadresse; Der Trick beim SYN-Flooding besteht darin, diese Zeit bis zum Abbruch (Timeout) damit zu nutzen, das Opfer mit SYN-Paketen zu fluten
Oktober 1997 SMURF Ping auf Broadcastadresse mit IP-Spoofing; Das Problem war unter dem Namen ICMP Storm schon länger bekannt, seit Oktober 1997 gab es dann aber das einfach zu bedienende Tool SMURF
Anfang 1997 Ping of Death Der Ping of Death war die erste Attacke, mit der man ein Opfer mit einem einzigen Schuß erledigen konnte: „Ping -l 65510 astalavista.com“. Funktioniert heute nicht mehr
7.Mai.1997 OOB-Angriff (Out of Band) OOB-Angriff: NetBios Port 139; Das erste OOB-Tool war WinNuke und erblickte am 7.Mai.1997 die Welt. Durch das IRC fand WinNuke sehr schnell Verbreitung. Selbst Anfang 1998 konnte man noch DAU’s abschießen, jedoch haben die OOB-Attacken zunehmend Ihre Bedeutung verloren, da Win98 gegen solche Angriffe gefeilt ist.
Ende 1997 Land Land: SYN DoS-Attacke Eine Besonderheit von Land ware jedoch, daß die weit verbreiteten und oft an zentralen Knotenpunken der Netze installierten CISCO-Router von dem Tool betroffen waren
1988 Morris-Wurm Die erste bedeutende Denial-of-Service-Attacke war der Morris-Wurm. Schätzungen zufolge waren etwa 5.000 Rechner für einige Stunden betriebsunfähig. Zu jener Zeit (1988) war es eine Katastrophe für akademische- und Forschungseinrichtungen, hatte aber nur wenig Auswirkung auf den Rest der Welt. Heutzutage könnte eine vergleichbare DoS- Attacke Verluste in Millionenhöhe nach sich ziehen.
Mit freundlicher Genehmigung von Bruno Studer