zurück zum Artikel

Heimliche Scans und falsche FĂ€hrten

JĂŒrgen Schmidt

Mit den so genannten Idle-Scans ist es möglich, scheinbar unmögliches zu realisieren: herauszufinden, ob auf einem Rechner im Internet ein Dienst aktiv ist oder nicht, ohne ihn selbst anzusprechen.

Ein Port-Scan stellt fest, auf welchen Ports eines Systems Dienste lauschen, die Pakete entgegennehmen. Sie Ă€hneln in der Funktionsweise den Klingelstreichen von Kindern: Kommt eine Antwort, ist jemand zuhause. Anders als die Klingelputzer sind jedoch Einbrecher nicht an großem Getöse interessiert. Insbesondere wollen sie vermeiden, dass ihre IP-Adresse, die sich im Zweifelsfall zu ihnen zurĂŒckverfolgen lĂ€sst, in irgendwelchen Log-Dateien auftaucht. Deshalb wurden im Lauf der letzten Jahre verschiedene Scan-Techniken entwickelt worden, die weniger "LĂ€rm" verursachen.

Die grundsÀtzliche Funktionsweise ist immer gleich: Der Scanner sendet ein Paket an einen Port und registriert etwaige Antworten darauf. Primitive Scans bauen eine richtige Verbindung auf, deren Verursacher dann oft schon in den Log-Dateien des angesprochenen Dienstes auftaucht. Deshalb brechen sogenannte SYN- beziehungsweise halb offene Scans den aus drei Schritten bestehenden Verbindungsaufbau (TCP Three Way Handshake) nach dem zweiten Schritt ab. So kommt keine Verbindung und auch kein Log-File-Eintrag zustande.

Dazu sendet der Scanner ein TCP-Paket mit einer Aufforderung zur Synchronisierung (gesetztes SYN-Flag) an den Server. LĂ€uft dort ein Dienst auf dem angesprochenen Port, bestĂ€tigt das Betriebssystem den Eingang (ACK-Flag) und bittet seinerseits um Synchronisierung (SYN-Flag). LĂ€uft kein Dienst auf dem Port schickt es statt dessen ein Reset (RST-Flag). Wertet der EmpfĂ€nger die Antwort-Pakete aus, hat er bereits die gewĂŒnschte Information und kann das ACK-Paket weglassen, mit dem die Verbindung dann zustande kĂ€me.

Mittlerweile erkennen jedoch Intrusion Detection Systeme und (Personal) Firewalls auch solche SYN-Scans und registrieren die IP-Adresse des Verursachers. Das gleiche gilt fĂŒr die so genannten FIN-, XMAS- und NULL-Scans, die mit speziellen Kombinationen der verschiedenen TCP-Flags arbeiten. Diese registrieren zum Beispiel verdĂ€chtige HĂ€ufungen von Paketen an verschiedene Ports. Manche IDSe arbeiten auch mit Trigger-Ports, die normalerweise nicht genutzt werden. Und es gibt auch bereits AnsĂ€tze, die versuchen Port-Scans als statistische Anomalie zu erkennen.

Um die eigene IP-Adresse nicht zu verraten, werden Port-Scans oft sehr langsam und in zufĂ€lliger Reihenfolge durchgefĂŒhrt. Kommt nur jede Stunde ein solches Paket an, sind die Chancen gut, dass es der Aufmerksamkeit des WĂ€chters entgeht. Ein Paket an einen Trigger-Port löst aber unter UmstĂ€nden trotzdem Alarm aus.

Auch die entgegengesetzte Strategie kommt zum Einsatz: Scanner versuchen die eigenen Spuren in einer Flut von vorgetĂ€uschten Scans zu verbergen. Dazu schickt der Scanner riesige Mengen von Paketen mit gefĂ€lschten Absenderadresse an den Server. Der Haken dabei: die Antwortpakete gehen an die vorgetĂ€uschte Adresse, der wahre Absender erfĂ€hrt nichts ĂŒber den Status des abgefragten Ports. Deshalb muss mindestens eines der Pakete die richtige Adresse tragen.

Aus Sicht eines Angreifers sind all diese Techniken unbefriedigend, da sie nicht zuverlĂ€ssig verhindern können, dass seine IP-Adresse registriert wird. Ideal wĂ€re es, wenn er gar keine Pakete mit seiner wahren Adresse an sein Opfer schicken mĂŒsste. Und genau das ermöglicht der so genannte Idle-Scan.

Dabei bedient sich der Scanner eines zweiten Systems, das derzeit keine eigenen Internet-AktivitĂ€ten aufweist ("idle" heißt auf Deutsch soviel wie "untĂ€tig"). Das Ă€ußert sich bei Windows-Systemen (und einigen anderen) so, dass die IP-IDs der Pakete des Idle-Hosts sequenziell ansteigen. Jedes IP-Paket trĂ€gt eine eigene ID, damit der EmpfĂ€nger eventuell fragmentierte Paketschnipsel richtig zuordnen kann. Die meisten Systeme setzen sie fĂŒr jedes Paket um eins hoch:

# hping2 -S -p 80 192.168.0.2
...id=9289 sport=80 flags=SA ...
...id=9290 sport=80 flags=SA ...
...id=9291 sport=80 flags=SA ...

Dieses Feature lÀsst sich unter anderem auch zu heimlichen Lastmessungen ausnutzen (Details dazu finden Sie in c't 23/03, S. 212: "Wer zÀhlt gewinnt").

Dann deckt der Scanner den Idle-Host mit einem kontinuierlichen Strom von Paketen ein, die eine Antwort erzeugen und wertet deren IP-IDs aus. Das können beispielsweise Ping-Anfragen und die dazughörigen Antworten sein. Jedes weitere Paket, das der Idle-Host jetzt verschickt, bewirkt einen Sprung in der IP-ID-Sequenz: 3, 4, 6, 7 bedeutet, dass der Rechner ein Paket mit der ID 5 an eine andere Adresse geschickt hat (sofern das Paket nicht verloren gegangen ist, was aber recht selten geschieht).

Im nĂ€chsten Schritt schickt der Scanner ein SYN-Paket mit der Absender-Adresse des Idle-Hosts an sein eigentliches Opfer, den Server. Ist auf dem angesprochenen Port ein Dienst aktiv, antwortet der Server mit SYN/ACK an den Idle-Host. Dieser weiß jedoch nichts von einer Verbindungs-Anfrage seinerseits und antwortet deshalb mit einem Reset-Paket. War der Port jedoch geschlossen, schickt der Server ein Reset an den Idle-Host, das dieser jedoch ignoriert.

Der Scanner sieht also bei einem offenen Port einen Sprung in der IP-ID-Sequenz des Idle-Hosts (das RST-Paket), bei einem geschlossenen Port tut sich nichts. Eventuelle Paketverluste kann man durch Wiederholen der Scans auf den fraglichen Ports erkennen.

Anriss [ 482 x 247 ]

Das RST-Paket bewirkt einen Sprung in der IP-ID-Sequenz des Idle-Hosts, den der Scanner registriert.


Idle-Scan, geschlossener Port

Das RST-Paket des Servers erfordert keine Antwort, die IP-ID-Sequenz bleibt linear.

Dieser doch recht komplizierte Vorgang lĂ€sst sich natĂŒrlich automatisieren. Der Port-Scanner nmap hat diese Scan-Technik sogar soweit perfektioniert, dass er selbststĂ€ndig erkennt, ob ein designierter Idle-Host tatsĂ€chlich linear ansteigende IP-IDs liefert.

Da es kein Problem darstellt, solche Idle-Hosts aufzupĂŒren, sind Port-Scan-Alarme nutzlos geworden. Die einzigen, die man damit noch fĂ€ngt, sind Script-Kiddies -- Klingelputzer eben. Echte Einbrecher kennen und nutzen die Idle-Scan-Technik lĂ€ngst. Bei einer Strafverfolgung beziehungsweise bei disziplinarischen Maßnahmen gegen vermeintliche Verursacher von Port-Scans ist zu beachten, dass die FĂ€hrten auch bewusst falsch gelegt worden sein können.

Statt Zeit und MĂŒhe auf Port-Scans zu verschwenden, sollte man sich statt dessen auf die Log-EintrĂ€ge konzentrieren, bei denen tatsĂ€chlich ein Verbindungsaufbau erfolgt ist, also beispielsweise eine Web-Seite abgerufen wurde. Ein solcher Verbindungsaufbau lĂ€sst sich nur dann mit einer gefĂ€lschten IP-Adresse durchfĂŒhren, wenn der Angreifer die sogenannte Sequenzstartnummer (Initial Sequence Number) erraten kann. Das ist erstens nicht mehr ohne weiteres möglich und zweitens auch nicht effizient, weil der Angreifer die abgerufenen Daten nicht bekommt.

Siehe dazu auch:

(ju [4])


URL dieses Artikels:
https://www.heise.de/-270332

Links in diesem Artikel:
[1] http://www.insecure.org/nmap/idlescan.html
[2] http://www.heise.de/software/download/nmap/3724
[3] http://www.heise.de/software/download/hping/22995
[4] mailto:ju@ct.de