Distributed Denial of Service
--------------------------------------

Geschrieben von Mescalin am 26.9.00
Aus der Reihe: "Grundlegendes über das Internet"
Rechtschreibfehler, Fehler an: mich

Wenn du diesen Text liest, solltest du Grundkenntnisse in TCP/IP haben (Ich empfehle hierzu den Text von Lumberjack). Sonst wirst du wahrscheinlich nur Bahnhof verstehen. Du solltest schon wissen, was ThreeWayHandshake oder ein Dämon ist.
Denk immer dran: Internet ist nicht so einfach, wie es uns die AOL Werbung sagt.


Wozu dieser Text ???
-----------------------------

Dauernd hören wir von schrecklichen, mächtigen Hackern, die Mega-Computer wie Ebay, CNN oder UUNET abstürzen lassen. Und das nur mit ihren kleinen, alten Kisten (In den kleinsten Computern steckt die grösste Macht). Dies ist keineswegs ein Wunder. Es steckt eine einfache Technik dahinter, die ich im Folgenden Text beschreiben werde.


Wie funktioniert eine normale Denial of Service Attacke ???
-------------------------------------------------------------------------------

Denial of Service heisst so viel wie Verweigerung der Anteilnahme. Es heisst so, da die Computer, die vollgefloodet werden, für andere Computer im selben Netz so aussehen, als ob sie den Dienst an einen bestimmten Port verweigern. Eine Denial of Service Attacke bedient sich einer einfachen, primitiven Technik, die sich auch nicht so richtig auszumerzen lässt. Das Ziel wird einfach solange mit irgentwelchen Paketen zugeschüttet, bis der Computer zusammenbricht. Je mehr es sind desto besser. Jeder, der sie entsprechende Programme hat, könnte so eine Attacke fahren. Solche Programme lassen sich auch relativ einfach programmieren, was die Vielzahl solcher Programme zeigt. Es gibt verschiedene Arten von Denial of Service Attacken. Ich zähle hier mal ein paar auf:

Ping Flooding:Dieses ist das Grundlegenste aller Netzwerkprogramme. PING. Es prüfft einfach, ob ein Server online ist (Und führt zur Freude aller Skriptkiddies noch einen Nameserver Lookup aus). Die Attacke basiert darauf, das man nicht nur einen so einen Ping sendet, sondern am besten gleich 1000 am Stück. Der Server versucht nun, die einzelnen Echo-Request Pakete zu beantworten, was ein normaler PC meistens nicht lange mitmacht und daher abstürtzt.
Port Flooding:Jeder zweite Nuker basiert auf dieser Technik. Man bombt einfach einen offenen Port mit sinnlosen Daten voll. Häufig (wenn der Dienst, der am Port sitzt, schlampig programmiert ist. Also 50% aller Fälle) stürzt dadurch der Dienst und der Computer ab. Diese Technik funktioniert besonders gut auf NetBios (Port 139), was auch OOB genannt wird.
SYN Flooding:Diese Attacke basiert auf dem Three-Way-Handshake Verbindungssystem von TCPIP. Es ist eigentlich ein spezifieziertes Port Flooding. Sie funktioniert folgendermassen:
  1. Der Hacker sendet eine Anfrage zu einen bestimmten, offenen Port des Opfers, um eine Verbindung herzustellen.
  2. Das Opfer versucht die Anfrage zu beantworten. 3. In dieser zeit sendet der Hacker schon die nächste 10 Anfragen.
  3. Ergebnis > Opfer kackt ab.
Ping of Death:Eine sehr einfache Attacke. Anstatt der erlaubten 65500 Bytes beim Ping sendet man einfach ein paar mehr. Und schon crasht das Opfer. Sowas lässt sich schon mit "Ping -lv 65520 Opfer.de" unter Windows realisieren.
Smurf ICMP Spoof Flooding:Diese Attacke ist schon etwas speziell. Sie funktioniert schon fast wie eine Distributed Attacke. Und zwar folgendermassen:
  1. Der Hacker öffnet einen ICMP Socket zum Broadcast einer Adresse.
  2. Durch diesen Socket schickt er gespoofte Echo Request Pakete mit der IP des Opfers als Absender.
  3. Das gesamte Netz, was zu diesem Broadcast gehört, schickt seine Antwort an die gespoofte Adresse.
  4. Folge > Das Opfer kriegt auf einmal Tausende von ICMP Requested Echo Pakete und stürzt ab.
Vorteil dieser Attacke ist, dass man gröstenteils unbekannt bleibt, da die IP gespooft wird.
Land:Diese Attacke ist ebenfalls recht komplex. Als erstes baut man sich ein SYN Packet, um eine Verbindung aufzunehmen. Dabei muss die Absender und Empfänger Adresse gleich sein. Das Ganze schickt man nun ab und schon versucht das Opfer, die einzelnen SYN Pakete zu beantworten und schmiert dadurch ab.

Es gibt noch mehr Arten vonm Denial of Service Attacken. Aber die Grundidee ist meistens:
Je mehr Pakete, desto besser.


Wie funktioniert Distributed Denial of Service ???
-----------------------------------------------------------------

Ich verdeutliche das am Besten mal mit einem Beispiel:

  1. Der böse Hacker, von dem später alle Fernseh-Kanäle voll sein werden, verschafft sich erstmal Zugang zu einem grossen Netzwerk. Ideal geeignet hierfür sind Universitäts Netzwerke. Denn diese sprotzen nur so vor Backdoors und Trojaner und sind daher sehr leicht zu hacken.
  2. Der Hacker installiert dort seine DoS Dämonen, welche er später fernsteuern kann. Diese sind kleine, gut getarnte Programme, welche auf ein bestimmtes Signal vom Hacker warten und dann ihre Denial of Service Attacke durchführen.
  3. Wenn der Hacker genug Gross-Rechner gefunden hat, welche seine Arbeit unterstützten, schreibt er sich ein Programm, welches die entsprechenden Signale an die gehackten Rechner aussendet (Oder lädt es sich runter *g*).
  4. So, jetzt wird es spannend: Der Hacker startet sein Programm.
  5. Das ganze Flood Netzwerk, welches der Hacker sich gehackt hat, startet seinen versteckten Dienst und Floodet den Opfer-Server. So wurde zum Beisp iel EBay "gehackt".

Alles klar ?!? Die einzige Schwierigkeit wird meistens sein, ein entsprechendes Flood-Netzwerk aufzubauen. Das verlangt schon einiges an Organisation. Es gibt schon viele fertige Programme, welche den Client und Dämon für das Flood Netzwerk enthalten. Solche Programme sind zB. TFN, Stacheldraht, usw. Solche Programme sind relativ einfach zu bedienen und lassen sich auch leicht verändern, da die Archive nur den unkompilierten C-Sourcecode enthalten. So können auch Anfänger, welche vom Coden keine Ahnung haben, mächtige Attacken ausführen.


Wie kann man sich dagegen schützen ???
--------------------------------------------------------

Einen richtig sicheren Schutz gibt es nicht. Eie Möglichkeit wäre, dass der Server nur eine Verbindung pro Port gleichzeitig aufnehmen kann. Wenn man aber mal nachdenkt, merkt man, dass das absoluter Müll ist. Schliesslich wollen grade bei den grossen Server mehrere Leute denselben Dienst nutzten. Schrecklich, wenn man bei einem Server anstehen sollte. Eine Firewall bietet auch so gut wie keinen Schutz. Da diese ja auch praktisch mit Anfragen zugebombt wird. Und dann ist es egal was abstürzt: Firewall oder Dienst. Aber die beste Methode ist meistens, sich ein echtes Unix System zu besorgen. Ich empfehle FreeBSD oder ähnliches. Denn diese haben einen StackCache von 64 Bit und nicht wie Windows oder Linux nur 32 Bit. Das hällt dann schon ein bisschen mehr aus. Eine Methode ist natürlich, die entsprechenden Router so zu konfigurieren, dass sie zum Beispiel nur eine Syn Anfrage pro Client Sekunde und Port zulassen. Das wär allerdings sehr aufwendig.


Nachtrag
-------------

Ich hoffe, ich konnte euch einen kleinen Einblick in die Kunst der Denial-of-Service Attacken geben. Und ich empfehle euch nochmal nachträglich: Lasst es sein. Wenn die Kripo ins Spiel kommt, dann finden die dich immer. Auch bei gespooften Paketen. Notfalls krempeln die jeden Router um, der zwischen dir und deinem Opfer steht. (Obwohl, wenn man die Router dann doch noch nachträglich hackt. Hmmmm, wär ne berlegung wert......)


CU all
und bis zum nächsten TUT.
Mescalin