Sonntag, 5. Juli 2009

News

präsentiert von: entwickler.com
Donnerstag, 1. Juni 2006

About Security #57: Angriffe auf TCP/IP — Spoofing

Ab dieser Folge geht es um das Netzwerkprotokoll TCP/IP und mögliche Angriffe darauf. Einige Grundlagen von TCP/IP wurden bereits in About Security #29 (TCP/IP-Schichtenmodell) und #30 (Pakete) erklärt, sodass sie hier nicht erneut beschrieben werden müssen.

Außer Schwachstellen in Implementierungen des TCP/IP-Stacks, z.B. Pufferüberläufen, die immer wieder einmal auftreten, gibt es einige Probleme in den Protokollen an sich. Die Ursache dafür ist, dass bei ihrem Entwurf einfach nicht an bösartige Netzteilnehmer gedacht wurde. Dies führt dazu, dass verschiedene Arten von Angriffen möglich sind. Einige davon werden im Folgenden beschrieben. Mögliche Angriffe umfassen

  • Spoofing, d.h. das Vortäuschen falscher Tatsachen
  • Hijacking, d.h. das Entführen bzw. Umleiten von TCP-Verbindungen
  • Denial of Service (DoS), d.h. die Verhinderung der Diensterbringung
  • Distributed Denial of Service, d.h. ein DoS-Angriff, der von einer Vielzahl von Rechnern ausgeht

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

Spoofing

Beim Spoofing wird die Senderadresse eines Datenpakets gegen eine andere Adresse ausgetauscht. Dadurch bleibt der tatsächliche Sender unerkannt, eventuelle Antworten auf ein gespooftes Paket werden an die gefälschte Adresse gesendet. Die verschiedenen Techniken für einen Spoofing-Angriff sind vom angegriffenen Protokoll bzw. Dienst abhängig. Als Beispiel soll das Spoofing von IP-Paketen näher betrachtet werden.

IP-Spoofing

Das Spoofen von IP-Adressen alleine stellt noch keinen Angriff dar, sondern ist i.d.R. nur ein Teil eines Angriffs. Es kann z.B. verwendet werden, um den Verursacher eines DoS-Angriffs zu verbergen. Kombiniert mit dem Erraten gültiger Sequenznummern und einem DoS-Angriff kann es von einem Angreifer verwendet werden, um sich in eine auf Basis der IP-Adresse authentifizierte Verbindung einzuschleichen.

IP ist ein verbindungsloses Protokoll (s. About Security #29). Es wird weder geprüft, ob ein gesendetes Paket angekommen ist, noch, ob die Pakete in der gleichen Reihenfolge ankommen, in der sie gesendet wurden. Der Header eines IP-Pakets (s. About Security #30) enthält u.a. Quell- und Zieladresse. Für die Zustellung des Pakets an den Empfänger ist nur die Zieladresse relevant. Daher kann der Sender die Quelladresse beliebig manipulieren, ohne die Zustellung zu gefährden.

Bei einer Authentifizierung auf Basis der IP-Adresse baut ein Rechner eine Verbindung zu einem anderen Rechner auf, der ihn anhand der IP-Adresse erkennt und den Zugriff ohne weitere Prüfung erlaubt. Dies ist z.B. beim "trust relationship" zwischen Unix-Rechnern der Fall. Ein Angreifer C kann sich in eine solche Verbindung zwischen zwei Rechnern A und B einschleichen, indem er Befehle mit der Quelladresse von A an Rechner B sendet.

About Security: Die komplette Serie

Wäre nur das IP-Protokoll beteiligt, wäre der beschriebene Angriff nun schon erfolgreich. Allerdings ist ein weiteres Protokoll beteiligt: TCP. Im Gegensatz zu IP ist TCP verbindungsorientiert (s. About Security #29). Bevor zwei Systeme miteinander kommunizieren können, müssen sie eine Verbindung aufgebaut haben. Außerdem achtet TCP darauf, ob die übertragenen Daten fehlerfrei und in der richtigen Reihenfolge angekommen sind (s. About Security #30). Das Ankommen wird über eine Bestätigungsflag (ACK) signalisiert, die Reihenfolge über die 32 Bit lange Sequenznummer geprüft. Die Sequenznummer wird laufend erhöht, bei einem Überlauf wird wieder bei 0 begonnen. Möchte ein Angreifer sich in eine Verbindung einschleichen, muss er eine gültige Sequenznummer erraten. Da die von ihm an das Opfer gesendeten Pakete die Quelladresse von A enthalten, sendet B die Antworten auf die Pakete von C an A. Der Angriff muss also "blind" erfolgen.

TCP-Sequenznummern erraten

Der TCP-Verbindungsaufbau ("three way handshake") läuft folgendermaßen ab:

  1. Der Client sendet ein Paket mit gesetztem SYN-Flag und seiner aktuellen Sequenznummer SEQ_Client an den Server.
  2. Der Server antwortet mit einem Paket mit gesetztem SYN-Flag und seiner aktuellen Sequenznummer SEQ_Server sowie gesetztem ACK-Flag und der Quittungsnummer SEQ_Client+1.
  3. Der Client bestätigt mit einem Paket mit gesetztem ACK-Flag, der Quittungsnummer SEQ_Server+1 und der Sequenznummer SEQ_Client+1 und beginnt mit der Übertragung der Daten.

Um die Sequenznummern zu erraten, sendet der Angreifer einige Pakete mit seiner richtigen Quelladresse an das Opfer. Aus den Sequenznummern der Antwortpakete und deren zeitlichen Abständen kann auf den Algorithmus zur Berechnung der Sequenznummern geschlossen werden.

Ein Angriff

Der Angreifer C errät eine gültige Sequenznummer von B und baut eine Verbindung zu B auf, bei der er die Adresse von A als Quelladresse angibt. B sendet seine Antwort auf das Paket an A. Da A keine Verbindung zu B geöffnet hat, sendet A ein RST-Paket an B, worauf B die Verbindung abbricht.

Der Angriff funktioniert so also nicht. Bevor der Angreifer erfolgreich sein kann, muss er Rechner A ausschalten. Dazu kann er einen DoS-Angriff gegen A starten. Wie das funktioniert, wird in der nächsten Folge beschrieben.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security – Übersicht zum aktuellen Thema "Angriffe auf TCP/IP"

Kommentare

EKON 13

Konferenzen

SQLCON 2009

SQLCON 2009

21.-25. September 2009
Rheingoldhalle Mainz

BASTA! 2009

BASTA! 2009

21.-25. September 2009
Rheingoldhalle, Mainz

ShareConnect 2009

ShareConnect 2009

21.-25. September 2009
Rheingoldhalle Mainz

EKON13

EKON13

28.- 2. Oktober 2009
Maritim Rhein-Main Hotel Darmstadt

 W-JAX 2009

W-JAX 2009

9.-13. November 2009
ArabellaSheraton Hotel, München

SOACon 2009

SOACon 2009

9.-13. November 2009
Arabella Sheraton Hotel, München

IPC 2009

IPC 2009

15.-18. November 2009
Kongresszentrum Karlsruhe

WebTech Conference 2009

WebTech Conference 2009

16.-18. November 2009
Kongresszentrum Karlsruhe

Werbung
Top-Jobs

Microsoft Architects Connection

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

Ruby on Rails

RailsWay Magazin

Ruby on Rails

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

Bücher




hosted by HostEurope