# IP-Spoofing

IP-Spoofing bezeichnet in Computernetzen das Versenden von IP-Paketen mit gefälschter Absender-IP-Adresse.
Die Kopfdaten jedes IP-Pakets enthalten dessen Quelladresse. Dies sollte die Adresse sein, von der das Paket gesendet wurde. Indem der Angreifer die Kopfdaten so fälscht, dass sie eine andere Adresse enthalten, kann er das Paket so aussehen lassen, als ob das Paket von einem anderen Computer gesendet wurde. Dies kann von Eindringlingen dazu genutzt werden, Sicherheitsmaßnahmen wie z. B. IP-adressbasierte Authentifizierung im Netzwerk auszutricksen.
Das Verfahren kann insbesondere dann eingesetzt werden, wenn eine bidirektionale Kommunikation nicht erforderlich ist, weil beispielsweise die Antworten für den Angreifer vorhersehbar oder nicht notwendig sind. Das Verschleiern einer Rechnerkommunikation ist bei TCP-Verbindungen auf diese Weise allerdings nicht möglich, weil die Antwort-Pakete zu dem „echten“ Rechner der gefälschten IP-Adresse geschickt werden. In nicht geswitchten Netzen kann ein Angreifer die Antwortpakete allerdings auch sehen, so dass sein Rechner in gewissem Umfang an Stelle der gefälschten IP-Adresse auftreten kann (siehe Sniffing). Der Angreifer braucht in diesem Fall Zugang zum betreffenden physischen Netzwerksegment oder ein dort stehendes Gerät unter seiner Kontrolle.
Diese Art von Angriff ist am effektivsten, wenn zwischen den Maschinen in einem Netzwerk Vertrauensbeziehungen bestehen. In manchen Firmennetzen ist es durchaus üblich, dass interne Systeme sich gegenseitig vertrauen, so dass ein Benutzer sich ohne Benutzernamen und Passwort einloggen kann, wenn er von einer anderen internen Maschine auf das Netzwerk zugreift und daher bereits auf einem anderen Rechner eingeloggt ist. Indem nun eine Verbindung von einer vertrauenswürdigen Maschine gefälscht wird, könnte ein Angreifer den Zielrechner angreifen, ohne sich zu authentifizieren.
Ohne Probleme lässt sich IP-Spoofing bei Attacken nach dem Schema von Distributed Denial of Service, wie mit SYN-Flood oder DNS Amplification Attack verwenden. Als Quelladresse wird dabei das angegriffene Ziel angegeben, welches dann mit – von ihm nicht angeforderten und damit sinnlosen – Antworten überflutet wird.

## Gegenmaßnahmen

Paketfilter sind eine mögliche Gegenmaßnahme gegen IP-Spoofing. Das Gateway zu einem Netzwerk sollte eine eingehende Filterung vornehmen: Von außen kommende Pakete, die Quelladressen von innenliegenden Rechnern haben, werden verworfen. Dies verhindert, dass ein externer Angreifer die Adresse einer internen Maschine fälschen kann. Idealerweise sollten auch ausgehende Pakete gefiltert werden, wobei dann Pakete verworfen werden, deren Quelladresse nicht innerhalb des Netzwerks liegt; dies verhindert, dass IP-Adressen von externen Maschinen gespooft werden können und ist eine bereits lange bestehende Forderung von Sicherheitsfachleuten gegenüber Internetdienstanbietern (ISP): Wenn jeder ISP konsequent ausgehende Pakete filtern würde, die laut ihrer Quelladresse nicht aus dem eigenen Netz stammen, wäre massenhaftes IP-Spoofing (häufig in Verbindung mit Denial-of-Service-Attacken) ein wesentlich geringeres Problem als es heute im Internet ist.
Einige Protokolle auf höheren Schichten stellen eigene Maßnahmen gegen IP-Spoofing bereit. Das Transmission Control Protocol (TCP) benutzt beispielsweise Sequenznummern, um sicherzustellen, dass ankommende Pakete auch wirklich Teil einer aufgebauten Verbindung sind. Die schlechte Implementierung der TCP-Sequenznummern in vielen älteren Betriebssystemen und Netzwerkgeräten führt jedoch dazu, dass es dem Angreifer unter Umständen möglich ist, die Sequenznummern zu erraten und so den Mechanismus zu überwinden. Alternativ könnte er einen Man-in-the-Middle-Angriff versuchen.
Dass sich ein Wurm aber auch innerhalb eines einzigen UDP-Pakets verbreiten kann, hat im Jahr 2003 SQL Slammer bewiesen. Dieser benutzte damals kein IP-Spoofing, wäre damit aber wahrscheinlich besser durch Firewalls mit Anti-Spoofing-Funktionalität gekommen.
Hätte eine Firewall z. B. eine Regel, die den MS-SQL-Dienst (UDP-Port 1433) von einer IP-Adresse A.A.A.A zu B.B.B.B erlaubt, müsste der Wurm auf dem Rechner C.C.C.C seine eigene Absender-Adresse nur auf A.A.A.A fälschen um die Firewall zu passieren. Da nur ein einziges Paket notwendig ist und das User Datagram Protocol (UDP) keinen Zustand hat, würde auch eine Stateful Firewall keinen Schutz bieten.

## Sicherheits-Implikationen

IP-Spoofing lässt sich für sich genommen nur beschränkt zum Einbruch in andere Systeme benutzen, da alle Antwortpakete des angegriffenen Rechners an die gefälschte Adresse gesendet werden. Umgekehrt lässt sich dieses Verhalten jedoch auch als „Waffe“ benutzen, wenn mit gespooften Paketen SYN-Flooding betrieben wird; hierzu sendet man gefälschte Pakete an bestimmte Rechner, und die Antwortpakete landen bei dem als Quelladresse angegebenen Opfer, dessen Verbindung dadurch möglicherweise lahmgelegt wird. Die Identität des tatsächlichen Angreifers ist dabei nur schwer feststellbar, da die Quelle der Antwortpakete natürlich der vorher überrumpelte arglose Rechner ist.

## IP-Spoofing im Bereich der Lastverteilung

Nutzbringend lässt sich IP-Spoofing bei manchen Lasttests anwenden, wo eine kleine Anzahl von Lastgeneratoren eine größere Anzahl anfragender Computer simulieren. Die Last bei einem Lasttest kommt in der Regel von wenigen sogenannten Lastgeneratoren und damit von wenigen IP-Adressen. Läuft der Lasttest gegen ein System, bei dem IP-basiertes Loadbalancing eingesetzt wird, kann dies zu einer unrealistischen Verteilung der Last auf die Server hinter dem Loadbalancer führen. Durch IP-Spoofing kann dieses Problem umgangen werden.