net | IP-Spoofing

Auf der Mailing-Liste postfixbuch-users wurde diskutiert, ob und wie wahrscheinlich IP-Spoofing ist (in dem Falle im Zusammenhang mit einem Mail-Server und den damit verbundenen Sicherheitsmechanismen). Thomas Gelf hat mal grob zusammengeschrieben, was es für Absenderfälschung geben kann:

Hallo Uwe,

kann mich Peer nur anschließen – SMTP mit gespooften IPs wirst du in
der Praxis wohl kaum antreffen. Ein gewöhnlicher Spammer hat weitaus
einfachere Möglichkeiten, seine Tagesgeschäft abzuwickeln.

Dennoch habe ich mir mal kurz die Mühe gemacht, ein paar (wirklich nur
kurze und nicht tiefgehende) Beispiele für Spoofing-Attacken zusammen-
zustellen, ohne Anspruch auf Vollständigkeit. Sie sollen auch zeigen,
warum die Angst vor erfolgreichem Spoofing doch nicht sooo abwegig ist,
wenn auch die Wahrscheinlichkeit es wirklich anzutreffen mehr als
gering ist.

IP Spoofing ist per Definition sehr einfach: jeder kann ein Paket mit
beliebiger Absender-Adresse auf die Reise schicken. Die meisten ISPs
lassen dich zudem immer noch mit privaten und Loopback-IPs „rausgehen“
(sprich: sie werfen Pakete mit solchen Absendern nicht weg).

Sein Netz vor solchen Angriffen von außen zu schützen ist meist recht
einfach: nichts reinlassen was von privaten oder eigenen IPs kommt,
fertig. In der Praxis wird das manchmal ein wenig schwieriger, man
bedenke dass man ja mehrere Standorte haben kann, bei unterschiedlichen
ISPs usw. Zudem dürften viele auf dieser Mailinglist Mietserver nutzen,
auch da sind die Möglichkeiten des Selbstschutzes relativ bescheiden.

Ich möchte als Beispiel mal einfach ein paar mögliche Varianten eines
Angriffes aufzeigen, damit das Ganze nicht zu abstrakt wird:

Angriff im Blindflug
——————–

Standard-Szenario, dein Angreifer sitzt irgendwo im Internet, schickt
gespoofte Pakete zu dir – deine Antworten erreichen ihn klarerweise
nicht, denn die gehen ja zum „echten“ Eigentümer besagter IP. Wenn für
einen Angriff aber auf die Antworten verzichtet werden kann, stellt
das kein Problem dar. Zwei konkrete Beispiele wären:

a) DNS-Attacken via UDP. Chache Poisoning z.B. klappt, wenn über der
Protokollschicht kein brauchbarer Schutzmechanismus existiert – was
wie wir erst kürzlich erfahren durften bei DNS nun mal der Fall ist.
Mit einem aktuellen DNS-Server solltest du auf der sicheren Seite
sein – vorläufig.

b) SMTP-Sitzung im Blindflug. Ist schon schwieriger, denn SMTP nutzt
TCP. Der Angreifer weiß zwar mit 99%iger Sicherheit, wie deine Antworten
auf SMTP-Ebene aussehen werden – ihm fehlen aber deine Sequenz-Nummern
(eine Ebene tiefer), und er dürfte schon am TCP-Handshaking scheitern.

Solltest du wider Erwarten deinen SMTP-Server auf Windows 9x betreiben
ist dir nicht zu helfen – Spoofing wird zum Kinderspiel. Warum? Weil
die Sequenz-Nummern vorhersehbar sind. Aber auch NT4 und Windows 2000
sollten mit ausreichend Netzwerk-Ressourcen (theoretisch) angreifbar
sein – bei aktuellen Betriebssystemen ist das schon sehr, sehr viel
schwieriger bis geradezu unmöglich.

Angriff als Man In The Middle
—————————–

Du hast einen Mietserver in einem der vielen Rechenzentren dieser Welt?
Hüte dich vor deinen Nachbarn! Ein Angreifer hat gleich mehrere Möglich-
keiten, sich zwischen dich und den Rest des Universums zu hängen:

a) Angriff auf deinen ARP-Cache. Dein Server will Pakete zu deinem
Router senden, und schickt einen ARP-Request – er muss ja wissen, wo
hin mit den Paketen auf Layer 2. ARP-Pakete sind nie vertrauenswürdig,
wenn du in deiner Broadcast Domain nicht „alleine“ bist.

Du solltest dir als minimalen Schutz etwas einrichten, das dich SOFORT
benachrichtigt, wenn sich die MAC-Adresse deines Gateways ändert (siehe
z.B. arpwatch). Und in einem solchen Fall gilt dann: sofort beim Hoster
anrufen und fragen ob diese Änderung wirklich von ihm verursacht wurde.
Wenn nicht, dann liegt es auch in seinem eigenen Interesse, den „Stören-
fried“ schnellstmöglich rauszuwerfen.

Viele Hoster nutzen übrigens Techniken wie HSRP, VRRP oder andere Hoch-
verfügbarkeits- und / oder Loadsharing-Technologien, welche oft auch auf
Multicast-MACs beruhen. Solche kannst du dir (in Rücksprache mit deinem
Hoster) auch als statische ARP-Einträge auf deinem Server verewigen.
Mach so was aber nie mit gewöhnlichen MAC-Adressen – denn wenn bedingt
durch einen Hardware-Ausfall dein Hoster seinen Router wechselt, bist du
sonst garantiert offline!

b) Angriffe auf den Switch. Die bekannteste, einfachste und aggressivste
Methode ist das Flooding der CAM-Tabelle. Damit zwingst du den Switch,
sämtliche Pakete auf allen Ports rauszusenden – so kannst du meist sogar
VLANs sniffen. Aktuelle (ernsthafte) Switches sollten das erschweren, du
würdest dich aber wundern, wo das überall möglich ist.

Der Angriff ist zudem kinderleicht durchzuführen, es gibt Tools die die
ganze Arbeit für dich übernehmen (dsniff, macof). Sobald die CAM Tabelle
des Switches überläuft, „sieht“ der Angreifer jeglichen Verkehr, dieser
„Schutzmechanismus“ des Switches verwandelt ihn de facto in einen Hub.

Und jetzt kannst du nach Belieben angreifen, spoofen, sniffen – was dein
Herz begehrt. So ein Angriff ist aber auffällig, ein guter Hoster mit
funktionierender Netzwerk-Überwachung und geschultem Personal sollte so
etwas sehr schnell bemerken.

c) Source Routing. Seeehr theoretisch, da dir das bei kaum einem ISP
mehr gelingen dürfte – falls doch, solltest du den schleunigst wechseln.

d) Mittlerweile wieder aktuell, ziemlich beeindruckend und durchaus
beängstigend: Angriffe auf das BGP-Routing. Wer einen im BGP mitspie-
lenden Router in seine Gewalt bekommt, hat eine riesengroße Spielwiese.

Durch gefälschte Announcements (längere / kürzere Pfade) schafft man es,
den Verkehr ganzer autonomer Systeme über sich selbst umzuleiten. Wie
kürzlich gezeigt wurde geht das auch noch mit relativ geringem Aufwand
und zudem erstaunlich schnell. Bei so etwas hast du dann aber genügend
andere Probleme am Hals. Ob mich jemand als Relay nutzt oder auch nicht
wäre in so einem Fall meine geringste Sorge.

Eines haben die MITM-Attacken gemeinsam: sie versetzen den Angreifer in
die Lage, auch bei TCP mühelos zu spoofen. Dass das technisch durchaus
möglich ist zeigen b) und d) – in beiden Fällen sind aber Spammer dann
sicherlich deine geringste Sorge. Und TCP-Spoofing-Angriffe im Blindflug
auf ein Linux-System sind nach meinem aktuellen Wissensstand ein Ding
der Unmöglichkeit.

Mit liebem Gruß
Thomas Gelf

PS: Wenn es euch interessiert, bin vorhin über eine interessante Analyse
der TCP Sequenznummern unterschiedlicher Betriebssysteme gestolpert:
http://lcamtuf.coredump.cx/oldtcp/tcpseq.html

siehe Original-Email.

Ein Gedanke zu „net | IP-Spoofing

  1. Pingback: Thomas Gelf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.