Wurmfallen aufstellen
Wurm am Haken

SicherheitSicherheitsmanagementVirusWorkspaceZubehör

Immer mehr Zero-Day-Exploits machen den Security-Admins das Leben schwer. Wer auf Nummer sicher gehen will, wartet nicht auf Warnmeldungen von Herstellern, sondern stellt eine eigene Wurmfalle auf.

Nepenthes fängt Computerwürmer

Wurmfallen aufstellen

Es gibt immer wieder Zeitfenster, in denen ein System trotz des regelmäßigen Einspielens von Patches anfällig für Attacken ist. Das zeigen allein schon die so genannten Zero-Day-Exploits, die am selben Tag angreifen, an dem eine Schwachstelle im System bekannt wird.

Je schneller und aggressiver die Cracker angreifen, desto wichtiger werden wirksame Frühwarnsysteme. Zu diesen gehört Nepenthes. Das nach einer fleischfressenden Pflanze benannte Programm fängt Computerwürmer. Die gespeicherten Schadprogramme können dann mit Hilfe aktueller Virenscanner überprüft werden. Ist ein Wurm keinem der erhältlichen Antivirenprogramme bekannt, sollten Sie ihn zur Analyse an den Hersteller Ihrer Antiviren-Software schicken – verschlüsselt, versteht sich. Alternativ können Sie die mit Nepenthes gefangenen Würmer auch über die automatische Sandbox der Firma Norman analysieren lassen.

Virenscanner testen

Umgekehrt können mit Nepenthes gesammelte Schadprogramme auch dazu dienen, die Erkennungsleistung von Antivirenprogrammen zu testen. Was Nepenthes fängt, stammt definitiv aus freier Wildbahn und ist mit sehr hoher Wahrscheinlichkeit schädlich. Was sonst außer Malware sollte an eine Schwachstelle andocken und sich auf den Zielrechner kopieren? So ist es mit Hilfe einiger ungefilterter E-Mail-Accounts und eines Nepenthes-Rechners heute nicht schwierig, Viren und Würmer zu sammeln, die sich nachweislich »in the wild« befinden. Die von einem internationalen Team von Antivirenexperten mühevoll zusammengestellte Wildlist ITW könnte dadurch überflüssig werden.

Hersteller von Antivirenprogrammen stellen die Wildlist gerne als wichtigste Messlatte für die Erkennungsleistung ihrer Produkte dar. Da aber jedes Antivirenprogramm, das etwas auf sich hält, 100 Prozent der Wildlist-Viren erkennt, sind Tests auf dieser Basis eigentlich nicht aussagekräftig. Dank Nepenthes sind Sie nicht mehr darauf angewiesen, solchen Tests zu vertrauen.

Dass man mit einem Nepenthes-Test zu ganz anderen Ergebnissen kommen kann, zeigt der Versuch, den das Nepenthes-Team selbst unternommen hat. Die Entwickler bezeichnen die Testresultate als »erstaunlich oder schockierend«. Virenscanner erkannten von den Schädlingen, die mit Nepenthes eingefangen wurden, nur zwischen 64 und 99 Prozent. Bei einem ähnlichen Test des Luxemburger Computer Security Research and Response Teams erreichten die Antivirenprogramme sogar nur Erkennungsraten zwischen 34 und 71 Prozent.


Sicher unter Linux

Wurmfallen aufstellen

Nepenthes emuliert bekannte Schwachstellen, die das Programm über offene Ports im Internet bereitstellt. Für einen Wurm sieht das aus wie eine willkommene Gelegenheit, sich in einen Computer einzuschleusen und darauf fortzupflanzen. Um sich zu verbreiten, muss der Wurm sich selbst in das RAM oder auf die Festplatte des angegriffenen Rechners kopieren. Nepenthes mimt das arglose Opfer und lässt den Wurm ohne Widerstand gewähren. Sobald der schädliche Programmcode vollständig übertragen ist, schnappt die Nepenthes-Falle zu: Der Wurmcode wird abgespeichert und der Angriff protokolliert. Der Schadcode selbst wird natürlich nicht ausgeführt.

Nepenthes ist Open-Source-Software und läuft unter Linux. Da die meisten Würmer Windows befallen und auf Linux nicht lauffähig sind, kann Nepenthes auf einer Linux-Maschine relativ sicher betrieben werden. Spannend ist allerdings die Frage, wo diese Maschine platziert werden soll.

Ein sinnvoller Aufbau ist zum Beispiel folgender: Vor der Firewall direkt am Internetzugang wird ein Switch angeschlossen, der einerseits zum Nepenthes-Rechner und andererseits zur Firewall verzweigt. An dieser Stelle kann Nepenthes alle Würmer fangen, die in der offenen Wildnis des Internets kursieren. Hinter der Firewall wird ein zweiter Nepenthes-Sensor installiert. Dieser dient dazu, Angriffe zu entdecken (Intrusion Detection). Auf dieser inneren Nepenthes-Instanz sollten überhaupt keine Würmer ankommen. Tun sie es doch, sollte sofort Alarm ausgelöst werden.

Wer nicht so viel Aufwand treiben möchte, sollte umstöpseln: Nach Feierabend wird die Firewall vom Netz getrennt und der Nepenthes-Rechner angeschlossen. Mit dieser Lösung kann zwar nicht der zeitliche Verlauf der Wurmaktivität über 24 Stunden erfasst werden, doch um Samples von Schadcode zu sammeln, reichen Nachtschichten aus. Aus Sicherheitsgründen ist es sinnvoll, einen eigenen Rechner oder zumindest eine dedizierte Installation auf einer eigenen Partition zu verwenden. Denn die Linux-eigene Firewall muss deaktiviert werden, damit Nepenthes funktioniert – der Rechner ist damit ungeschützt. Obwohl es reizvoll ist, zu diesem Zweck einen alten Rechner wiederzuverwenden, raten die Nepenthes-Entwickler davon ab: Heftige Wurmausbrüche könnten den Rechner in die Knie zwingen.


Schlechte Dokumentation

Wurmfallen aufstellen

Wenn Sie Nepenthes installieren und damit arbeiten wollen, machen Sie sich auf eine miserable Dokumentation gefasst. So enthält die Online-Version der Readme-Datei mehrere Buttons mit der Aufschrift »Fix me« – reparier mich. Eigeninitiative wird auch im Troubleshooting-Abschnitt 7.1 mit dem Titel »Es funktioniert nicht!« verlangt. Wenig hilfreich für Benutzer wird vorgeschlagen: »Finden Sie heraus, warum es nicht funktioniert«. Sollten Sie auf ein Problem stoßen, das auf der Nepenthes-Seite nicht aufgeführt wird, müssen Sie sich wohl oder übel selbst helfen.

Installation des Honeypots

Trotz dieser Hindernisse gelingt es den Experten von PC Professionell, Nepenthes zu installieren und damit Würmer zu fangen. Vorkompilierte Nepenthes-Pakete gibt es für Gentoo, Debian, FreeBSD und OpenBSD. Das Debian-Paket sollte auch unter Ubuntu laufen. Den Quellcode können Sie aus dem SVN-Repository der Entwickler entnehmen. Dieser Quellcode enthält aber keine Dateien für die automatische Konfiguration. Einfacher ist es, ein fertiges Release zu verwenden. Zum Redaktionsschluss war Version 0.1.7 aktuell.

Taucht in einem Release ein kleinerer Fehler auf, erstellen die Entwickler kein neues Release, sondern einen Patch. Für die Version 0.1.7 wurden zum Testzeitpunkt zwei Patches angeboten. Einer davon behebt einen Fehler, durch den die Würmer Mydoom und Bagle den Nepenthes-Prozess in eine Endlosschleife schicken konnten. Wenn der Patch ins Hauptverzeichnis des Nepenthes-Quellcode-Pakets geladen ist, wird er hiermit angewendet:

cat mydoom_bagle_endless_
loop.patch | patch -p0

Der andere Patch ist als optional gekennzeichnet. Das ist allerdings nicht ganz richtig. Wenn man das IDS-Framework Prelude zusammen mit Nepenthes einsetzt, muss man ihn einspielen. Ist dies nicht der Fall, führt der Patch zu Fehlern, da Nepenthes dann ein wichtiges Shellcode-Modul nicht laden kann. Das wiederum führt dazu, dass der Sensor zwar Hexdumps von Angriffen speichert. Die eigentlichen Honeypot-Funktionen von Nepenthes laufen aber nicht, so dass die Wurmsammlung leer bleibt.

Wenn der Quellcode entpackt, der Patch angewendet und die Pakete installiert sind, startet man so die Nepenthes-Installation: .

/configure –prefix=/opt/nepenthes
make
make install


Konfiguration von Nepenthes anpassen

Wurmfallen aufstellen

Wurde die Installation fehlerfrei abgeschlossen, müssen Sie anschließend die Konfiguration von Nepenthes anpassen. Zu diesem Zweck haben die Nepenthes-Entwickler im Ordner etc/nepenthes 43 Konfigurationsdateien hinterlegt. In der Dokumentation der Software findet sich der Hinweis, dass die Dateien nepenthes.conf, submit-n
orman.conf und log-irc.conf
mit einem Editor angepasst werden sollten.

Diesem Rat folgen die PCpro-Tester allerdings nicht. Stattdessen setzen sie lediglich in der Datei download-nepenthes.conf eine absolute Pfadangabe, die auf dem Testrechner nicht existiert, auf das Programmverzeichnis von Nepenthes/opt/nepenthes. In die Datei download-ftp.conf tragen sie außerdem einen DynDNS-AccouZeitw63 nt für den Testrechner ein. Mit diesen Änderungen gelingt im Test der Würmerfang. An einem DSL-1000-Anschluss wird der Nepenthes-Sensor im Durchschnitt alle zwei Minuten angesprochen. Allerdings wird nicht bei jedem Angriff auf eine Schwachstelle auch ein Wurm heruntergeladen. Dies geschieht nur etwa viermal pro Stunde.

Shellcodes und Würmer

Wenn ein Hacker oder ein Wurm eine Schwachstelle angreift, so geschieht das meist über Shellcodes. Ein Shellcode besteht aus einer Reihe von Bytes, die über eine Schwachstelle in einen Computer geschleust werden. Dort werden sie dank der Schwachstelle vom Prozessor ausgeführt. In den meisten Fällen wird dabei eine Shell gestartet, in der weitere Befehle platziert werden. Damit sind Shellcodes wesentliche Bestandteile von Exploits. Nepenthes speichert die Shellcodes, die bei einem Angriff übermittelt werden, im Verzeichnis var/hexdumps. In der Log-Datei verzeichnet das Programm, welche Lücke der Shellcode auszunutzen versuchte, wie lang der Dump ist und unter welchem Dateinamen er gespeichert wurde. Auf der Grundlage dieser Informationen können Hexdumps analysiert und neue Exploits entdeckt werden.

Nicht jeder Exploit, der bei Nepenthes eintrifft, führt zum Download eines Schadprogramms. Im PC-Professionell-Test lag das Verhältnis bei einem Wurm auf neun Shellcodes. Die Würmer, die Nepenthes fängt, landen im Ordner var/binaries. ClamAV erkannte 41 Prozent der Dateien als Schadprogramme, Bitdefender identifizierte mit 83 Prozent mehr als das Doppelte. Von den 100 Prozent, die bei Wildlist-Tests üblicherweise herauskommen, ist das aber immer noch weit entfernt.