Angriffsvektor IP-Spoofing

Folgen

Aus dem Aufbau von TCP und IP resultieren zwei unschöne Konsequenzen: Die eine ist offensichtlich, denn jedermann kann ganz einfach die Quelladresse eines IP-Headers verändern oder selber setzen - und damit dem vorgeblichen Partner in der Kommunikation eine andere Maschine vorgaukeln.

Die zweite Konsequenz ist nicht ganz so einfach zu erkennen: Kann ein Angreifer die nächste Sequence Number erraten oder vorhersehen, und befindet er sich an passender Stelle zwischen den kommunizierenden Maschinen, so ist er in der Lage, "Session Hijacking" zu betreiben. Er kann sich in die Kommunikation einklinken und eigene Pakete einschmuggeln, ohne dass der andere dies merkt. Der Grund dafür ist, dass die Authentifizierung der beiden Rechner untereinander meist nur zu Beginn der Kommunikation stattfindet. Danach gehen die Kommunikationspartner davon aus, mit der richtigen Gegenstelle zu kommunizieren. Tritt der Angreifer an die Stelle eines der Beteiligten, so merkt der andere das nicht.

Und tatsächlich: Die Sequence Number ist vorhersagbar, wenn auch nicht ganz ohne Aufwand. In frühen Implementationen wurden die Sequence Numbers zwar recht einfach gebildet, so dass das Erraten relativ einfach war. Heute ist der Algorithmus nicht mehr so einfach gestrickt, aber mit etwas Aufwand noch immer vorhersagbar.

Auch beim Session-Hijacking kommt dabei natürlich IP-Spoofing zum Zuge: Immerhin muss der Angreifer bei der Übernahme der Kommunikation so tun, als hätte er die IP-Adresse des ersetzten Rechners. Eine einfache Methode des Session-Hijacking besteht darin, den angegriffenen Rechner mit ungültigen Nummern zu versorgen, nachdem man sich die korrekten besorgt hat. Das führt zu einer Wiederaufnahme der Kommunikation - wobei der Angreifer dann als der Kommunikationspartner der angegriffenen Maschine posiert, indem er dessen IP-Adresse fälscht und obendrein die als gültig bekannten Seq/Acks verwendet.

Dabei ist es natürlich so, dass der Angreifer die Daten blind an den angegriffenen Server senden muss - schließlich erhält er ja keine Antworten, weil diese an das System mit der eigentlichen IP-Adresse gehen. Um mit Hilfe von IP-Spoofing also in Systeme eindringen zu können, muss das angegriffene System zusätzliche Sicherheitslöcher aufweisen. Ein solches Loch könnte beispielsweise eine Remote Shell sein, an die der Angreifer dann Befehle sendet, unter anderem solche zum Anlegen von Benutzer-Accounts.

Die Kombination aus TCP und IP mit ihren jeweiligen Problemen bildet dann die Grundlage für eine ganze Reihe von Angriffen.