IP-Spoofing

Ich versuch euch mal zu erklären, was Spoofing bedeutet bzw. was man mit spoofen erreichen kann. Da dieses Thema ziemlich komplex ist, könnt ihr schon mal den Kaffee aufsetzen und euch noch Kippen holen. Am Ende des Textes wird ich noch mal die wichtigsten Abkürzungen und Methoden erklären.

Also, Spoofing bedeutet etwa soviel wie veralbern, etwas vortäuschen. Der Sinn des Spoofings liegt also darin, Daten einer Absenderadresse zu fälschen um Zugang zu einem System zu erreichen.

Das Prinzip des Internets ist immer das Gleiche. Es basiert auf Vertrauen und Authentifizierung. Fast wie im richtigen Leben; wenn Dein bester Freund klingelt, lässt man ihn herein, warum auch nicht? Man kennt sich ja. Wenn jedoch ein Fremder läutet, will man wissen, um wen es sich handelt bevor man aufmacht. Das gleiche wie im Internet, wenn man auf eine geschützte Seite zugreifen will, muss man sich authentifizieren.

Eine Möglichkeit ist der Authentifizierung ist die Eingabe eines Passwortes oder Benutzernamens (oder auch beides). Wenn das der Fall ist, besteht die Möglichkeit einer Brute Force Attacke. Was das ist, dürfte jedem klar sein.

Die nächste Möglichkeit der Authentifizierung ist das RHOSTS-System. Diese System basiert auf die Fern-Authentifizierung. In den Dateien /etc/hosts.equiv und .rhosts liegt die Datenbank für diese Überprüfung. Diese beiden Dateien identifizieren entfernte Hosts und Benutzer, ob diese "vertrauenswürdig" sind oder nicht. Wenn ja, erhalten sie ohne Angabe eines Passworts Zugriff aus das System.

Hosts.equiv Dateien sind .rhost-Konfigurationsdateien für das ganze System. Diese werden von Root gesetzt. .rhosts Dateien sind dagegen benutzerbasiert und gelten nur für bestimmte Benutzer und Verzeichnisse.

Eine .rhosts kann z. B. so aussehen:

nodel1.sams.hacker.net Thomas
nodel1.sams.hacker.net Georg
nodel1.sams.hacker.net Klaus
nodel1.sams.hacker.net Erich

Diese Datei legt fest, dass den vier angegebenen Rechnern und den Benutzern (Thomas, Georg, Klaus und Erich) vertraut wird. Diese können dann über die r-Utilities auf das lokale System zugreifen, ohne eine Passwort-Authentifizierung durchlaufen zu müssen. Natürlich müssen auch auf den vier Rechnern die rhost-Einträge vorgenommen werden.

Zu den r-Utilities gehören folgende Anwendungen:

rlogin

remote login. Fast das gleiche wie Telnet

rsh

remote shell. Das ermöglicht den Benutzer, Shellkommandos auf dem entfernten Rechner auszuführen

rcp

remote file copy. Benutzer können Dateien von lokalen auf entfernte Rechner kopieren und umgekehrt.

Rcmd

remote command. Dies ermöglicht Benutzern Befehle auf entfernten Hosts auszuführen Alle vier r-Utilities verwenden das Schema aus /etc/hosts.equiv oder .rhosts zur Überprüfung der Vertrauensstellung. Wenn diese Dateien leer sind oder gar nicht existieren, kann keine Spoofing-Attacke ausgeführt werden.

Die IP ist für den Pakettransport verantwortlich. Die IP leitet die Pakete nur von Punkt A nach Punkt B. deshalb ist es wichtig, dass die Pakete intakt beim richtigen Host ankommen.

Sobald die Pakete angekommen sind, übernimmt TCP (TransmissionControlProtocoll) die ganze Angelegenheit. Es überprüft ob die Pakete intakt und ordnungsgemäß transportiert werden. Nach Erhalt eines Paketes wird eine Nachricht zur Verifizierung geschickt, dass es korrekt erhalten und verarbeitet wurde. Wenn fünf Pakete erhalten wurden, werden diese in der Reihenfolge überprüft , in welcher sie eingegangen sind (1,2,3,4,5). Jedem Paket wird dann eine Nummer (Sequenznummer zur Kennzeichnung zugewiesen. BEIDE Hosts verwenden diese Nummer zur Fehlerprüfung und zur Berichtserstattung.

Mal ein Beispiel:

  • Ein Cracker weiß dass die Hosts 207.171.0.111 und 199.171.190.9 eine Vertrauensbeziehung haben.

  • Er plant einen Einbruch in 207.171.0.111.

  • Um das zu tun, muss er sich als 199.171.190.9 ausgeben.

  • Um sich als solcher auszugeben, muss er seine Adresse vortäuschen

Das Problem ist, dass alle Antworten von 207.171.0.111 an 199.171.190.9 gesendet werden und nicht an seinen eigenen. Er hat also keinen Einblick in den Paketverkehr. Das nächste ist, was passiert, wenn 199.171.190.9 auf die Pakete des Ziels antwortet, während der Cracker noch dabei ist, seinen Angriff durchzuführen. Deshalb muss er, bevor er den eigentlichen Angriff beginnt, 199.171.190.9 lahm legen. Das geschieht mit einer syn-Flood-Attacke lahmlegen.

Also noch mal:

  • Der Cracker muss seine Ziele identifizieren.

  • Er muss den Host lahm legen, mit dem er sich identifizieren will.

  • Er muss die Adresse des Hosts vortäuschen,

  • Er muss sich zum Ziel verbinden, indem er sich als der lahmgelegte Host ausgibt.

  • Er muss die korrekt Sequenznummer erraten, die von dem Ziel verlangt wird.

Die ersten vier Punkte sind einfach. Das schwierige ist das erraten der Sequenznummer. Dazu muss man einen Testlauf durchführen. Das geht wie folgt:

  • Man kontaktiert das Ziel und fordert eine Verbindung an.

  • Das Ziel antwortet mit einer Reihe von Sequenznummern.

  • Nun werden diese Nummern protokolliert.

  • Jetzt werden die Nummern untersucht um festzustellen, ob diese ein bestimmtes enthalten.

  • Wenn sie durch einen Algorithmus inkrementiert werden, muss man den Algorithmus oder zumindest die Zahlenwerte, um welche die Nummern inkrementiert werden.

Wenn man das geschafft hat, kann man ziemlich zuverlässig voraussagen, welche Sequenznummern für die Authentifizierung erforderlich sind.

Nun kommt noch die "Feinabstimmung". Um sich nicht jedes mal authentifizieren zu müsen, wenn man eine Verbindung aufbaut, schafft man sich ein Sicherheitsloch.

Am einfachsten ist es, die Datei .rhosts so umzuschreiben, dass das System Verbindungen von jeder Quelle akzeptiert ohne eine Authentifizierung zu verlangen. Wenn das geschehen ist, ist jeder Host authentifiziert, sich in das System einzuloggen.

Und wer kann nun Opfer einer Spoofing werden?

IP-Spoofing kann gegen jedes System angewendet werden, auf denen bestimmte Dienste laufen. Darunter fällt auch jedes System mit Sun RPC, das X-Window-System von MIT, wenn host-basierende Authentifizierung verwendet wird, die r-Utilities und jeder Netzwerkdienst, des die IP- Adressauthentifizierung verwendet. Auch Windows NT in allen Versionen ist nicht immun gegen Spoofing. Das schlimme ist nur, dass Sicherheitsexperten bereits seit 1985 wissen, dass bzw. wie Spoofing möglich ist.

Abkürzungen und Methoden

Spoofing

Ist die Technik der Fälschung von Daten auf einem Netzwerk durch Vortäuschungeiner falschen Absenderadresse (oft mit der Absicht, durch die gefälschte Adresse authentifiziert zu werden).

Bruteforce

Dabei werden solange Passwörter und Benutzernamen an die Eingabeaufforderung geschickt, bis das richtige Kennwort gefunden ist und der Schutz somit aufgehoben ist.

RHOSTS-System

Wird dazu verwendet, um eine Fern-Authentifizierung zu ermöglichen und eine Vertrauensbeziehung zwischen Rechnern herzustellen.

IP

Internet Protocoll-Adressen werden in Netzwerken verwendet, um Rechnern eine eindeutige Kennung zuzuweisen.

TCP

Das Transmission Control Protocoll wird für die Übertragung von Daten verwendet.

Syn-Flood-Attacke

Der Ziel-Host wird mit Verbindungsanfragen überschwemmt, bis dieser nicht mehr in der Lage ist, diese zu bearbeiten.