net | IP-Spoofing

Auf der Mailing-Liste postfixbuch-users wurde dis­ku­tiert, ob und wie wahr­schein­lich IP-Spoofing ist (in dem Falle im Zusam­men­hang mit einem Mail-Server und den damit ver­bun­de­nen Sicher­heits­me­cha­nis­men). Tho­mas Gelf hat mal grob zusam­men­ge­schrie­ben, was es für Absen­der­fäl­schung geben kann:

Hallo Uwe,

kann mich Peer nur anschlie­ßen — SMTP mit gespoof­ten IPs wirst du in
der Pra­xis wohl kaum antref­fen. Ein gewöhn­li­cher Spam­mer hat weit­aus
ein­fa­chere Mög­lich­kei­ten, seine Tages­ge­schäft abzuwickeln.

Den­noch habe ich mir mal kurz die Mühe gemacht, ein paar (wirk­lich nur
kurze und nicht tief­ge­hende) Bei­spiele für Spoofing-Attacken zusam­men–
zustel­len, ohne Anspruch auf Voll­stän­dig­keit. Sie sol­len auch zei­gen,
warum die Angst vor erfolg­rei­chem Spoo­fing doch nicht sooo abwe­gig ist,
wenn auch die Wahr­schein­lich­keit es wirk­lich anzu­tref­fen mehr als
gering ist.

IP Spoo­fing ist per Defi­ni­tion sehr ein­fach: jeder kann ein Paket mit
belie­bi­ger Absender-Adresse auf die Reise schi­cken. Die meis­ten ISPs
las­sen dich zudem immer noch mit pri­va­ten und Loopback-IPs »raus­ge­hen»
(sprich: sie wer­fen Pakete mit sol­chen Absen­dern nicht weg).

Sein Netz vor sol­chen Angrif­fen von außen zu schüt­zen ist meist recht
ein­fach: nichts rein­las­sen was von pri­va­ten oder eige­nen IPs kommt,
fer­tig. In der Pra­xis wird das manch­mal ein wenig schwie­ri­ger, man
bedenke dass man ja meh­rere Stand­orte haben kann, bei unter­schied­li­chen
ISPs usw. Zudem dürf­ten viele auf die­ser Mai­ling­list Miet­ser­ver nut­zen,
auch da sind die Mög­lich­kei­ten des Selbst­schut­zes rela­tiv bescheiden.

Ich möchte als Bei­spiel mal ein­fach ein paar mög­li­che Vari­an­ten eines
Angrif­fes auf­zei­gen, damit das Ganze nicht zu abs­trakt wird:

Angriff im Blind­flug
——————–

Standard-Szenario, dein Angrei­fer sitzt irgendwo im Inter­net, schickt
gespoofte Pakete zu dir — deine Ant­wor­ten errei­chen ihn kla­rer­weise
nicht, denn die gehen ja zum »ech­ten« Eigen­tü­mer besag­ter IP. Wenn für
einen Angriff aber auf die Ant­wor­ten ver­zich­tet wer­den kann, stellt
das kein Pro­blem dar. Zwei kon­krete Bei­spiele wären:

a) DNS-Attacken via UDP. Cha­che Poi­so­n­ing z.B. klappt, wenn über der
Pro­to­koll­schicht kein brauch­ba­rer Schutz­me­cha­nis­mus exis­tiert — was
wie wir erst kürz­lich erfah­ren durf­ten bei DNS nun mal der Fall ist.
Mit einem aktu­el­len DNS-Server soll­test du auf der siche­ren Seite
sein — vorläufig.

b) SMTP-Sitzung im Blind­flug. Ist schon schwie­ri­ger, denn SMTP nutzt
TCP. Der Angrei­fer weiß zwar mit 99%iger Sicher­heit, wie deine Ant­wor­ten
auf SMTP-Ebene aus­se­hen wer­den — ihm feh­len aber deine Sequenz-Nummern
(eine Ebene tie­fer), und er dürfte schon am TCP-Handshaking scheitern.

Soll­test du wider Erwar­ten dei­nen SMTP-Server auf Win­dows 9x betrei­ben
ist dir nicht zu hel­fen — Spoo­fing wird zum Kin­der­spiel. Warum? Weil
die Sequenz-Nummern vor­her­seh­bar sind. Aber auch NT4 und Win­dows 2000
soll­ten mit aus­rei­chend Netzwerk-Ressourcen (theo­re­tisch) angreif­bar
sein — bei aktu­el­len Betriebs­sys­te­men ist das schon sehr, sehr viel
schwie­ri­ger bis gera­dezu unmöglich.

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

Du hast einen Miet­ser­ver in einem der vie­len Rechen­zen­tren die­ser Welt?
Hüte dich vor dei­nen Nach­barn! Ein Angrei­fer hat gleich meh­rere Mög­lich–
kei­ten, sich zwi­schen dich und den Rest des Uni­ver­sums zu hängen:

a) Angriff auf dei­nen ARP-Cache. Dein Ser­ver will Pakete zu dei­nem
Rou­ter sen­den, und schickt einen ARP-Request — er muss ja wis­sen, wo
hin mit den Pake­ten auf Layer 2. ARP-Pakete sind nie ver­trau­ens­wür­dig,
wenn du in dei­ner Broad­cast Domain nicht »alleine« bist.

Du soll­test dir als mini­ma­len Schutz etwas ein­rich­ten, das dich SOFORT
benach­rich­tigt, wenn sich die MAC-Adresse dei­nes Gate­ways ändert (siehe
z.B. arpwatch). Und in einem sol­chen Fall gilt dann: sofort beim Hos­ter
anru­fen und fra­gen ob diese Ände­rung wirk­lich von ihm ver­ur­sacht wurde.
Wenn nicht, dann liegt es auch in sei­nem eige­nen Inter­esse, den »Stö­ren–
fried« schnellst­mög­lich rauszuwerfen.

Viele Hos­ter nut­zen übri­gens Tech­ni­ken wie HSRP, VRRP oder andere Hoch–
ver­füg­bar­keits– und / oder Loadsharing-Technologien, wel­che oft auch auf
Multicast-MACs beru­hen. Sol­che kannst du dir (in Rück­spra­che mit dei­nem
Hos­ter) auch als sta­ti­sche ARP-Einträge auf dei­nem Ser­ver ver­ewi­gen.
Mach so was aber nie mit gewöhn­li­chen MAC-Adressen — denn wenn bedingt
durch einen Hardware-Ausfall dein Hos­ter sei­nen Rou­ter wech­selt, bist du
sonst garan­tiert offline!

b) Angriffe auf den Switch. Die bekann­teste, ein­fachste und aggres­sivste
Methode ist das Floo­ding der CAM-Tabelle. Damit zwingst du den Switch,
sämt­li­che Pakete auf allen Ports raus­zu­sen­den — so kannst du meist sogar
VLANs snif­fen. Aktu­elle (ernst­hafte) Swit­ches soll­ten das erschwe­ren, du
wür­dest dich aber wun­dern, wo das über­all mög­lich ist.

Der Angriff ist zudem kin­der­leicht durch­zu­füh­ren, es gibt Tools die die
ganze Arbeit für dich über­neh­men (dsniff, macof). Sobald die CAM Tabelle
des Swit­ches über­läuft, »sieht« der Angrei­fer jeg­li­chen Ver­kehr, die­ser
»Schutz­me­cha­nis­mus« des Swit­ches ver­wan­delt ihn de facto in einen Hub.

Und jetzt kannst du nach Belie­ben angrei­fen, spoo­fen, snif­fen — was dein
Herz begehrt. So ein Angriff ist aber auf­fäl­lig, ein guter Hos­ter mit
funk­tio­nie­ren­der Netzwerk-Überwachung und geschul­tem Per­so­nal sollte so
etwas sehr schnell bemerken.

c) Source Rou­ting. See­ehr theo­re­tisch, da dir das bei kaum einem ISP
mehr gelin­gen dürfte — falls doch, soll­test du den schleu­nigst wechseln.

d) Mitt­ler­weile wie­der aktu­ell, ziem­lich beein­dru­ckend und durch­aus
beängs­ti­gend: Angriffe auf das BGP-Routing. Wer einen im BGP mit­spie–
len­den Rou­ter in seine Gewalt bekommt, hat eine rie­sen­große Spielwiese.

Durch gefälschte Announ­ce­ments (län­gere / kür­zere Pfade) schafft man es,
den Ver­kehr gan­zer auto­no­mer Sys­teme über sich selbst umzu­lei­ten. Wie
kürz­lich gezeigt wurde geht das auch noch mit rela­tiv gerin­gem Auf­wand
und zudem erstaun­lich schnell. Bei so etwas hast du dann aber genü­gend
andere Pro­bleme 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 gemein­sam: sie ver­set­zen den Angrei­fer in
die Lage, auch bei TCP mühe­los zu spoo­fen. Dass das tech­nisch durch­aus
mög­lich ist zei­gen b) und d) — in bei­den Fäl­len sind aber Spam­mer dann
sicher­lich deine geringste Sorge. Und TCP-Spoofing-Angriffe im Blind­flug
auf ein Linux-System sind nach mei­nem aktu­el­len Wis­sens­stand ein Ding
der Unmöglichkeit.

Mit lie­bem Gruß
Tho­mas Gelf

PS: Wenn es euch inter­es­siert, bin vor­hin über eine inter­es­sante Ana­lyse
der TCP Sequenz­num­mern unter­schied­li­cher Betriebs­sys­teme gestol­pert:
http://lcamtuf.coredump.cx/oldtcp/tcpseq.html

siehe Original-Email.

Ähnli­che Arti­kel zu die­sem Thema:

  1. bash | History aufwerten
  2. bash | Back­ups mit tar
  3. blog | Wie heisst das?

  1. Noch keine Kommentare vorhanden.

  1. 7. Sep. 2009
    TrackBack von: Tho­mas Gelf
:) :( ;) :mrgreen: :lol: :roll: :idea: :oops: more »


drei × 7 =