Wie sich Bot-Netze enttarnen lassen

24.06.2005
Von f niemann

Team Seekuhrity entpackte die Komponente manuell mittels des Process-Dumpers "Lord PE" des Programmierers Yoda. Ein Process-Dumper speichert den Kontext eines laufenden Prozesses und damit dessen Code. Tatsächlich gelang es, die ungeschützte Executable-Datei des Wurms zu reproduzieren.

Peer-to-Peer-Bots Bedienten sich die Botnets bisher dem Hypertext Transfer Protocol und Internet Relay Chat, so gibt es laut Holz nun Bestrebungen, solche Verbünde über Peer-to-Peer-Nezte zu errichten. Während für die IRC-Variante ein zentraler Server erforderlich ist, durch dessen Lahmlegung auf das Botnetz zusammenbricht, wäre dies bei Peer-to-Peer-gestützten Bot-Netzen sehr viel schwieriger. Um die Prozesse der Komponenten des Bots zu analysieren, mussten die Daten noch disassembliert werden. Ein Disassembler wandelt Binär-Code in eine lesbare Form (Assembler beziehungsweise Mnemonic-Code) um. Ein Tool dieser Kategorie ist "Interactive Disassembler Pro (IDA Pro)" von Data Rescue SA aus Belgien. IDA Pro untersuchte in der Programmdatei Cross-Referenzen auf Funktionen und listete Referenzen auf Import- und Export-Zeichenketten auf.

Die Importe und Exporte der PE-Executable-Datei werden innerhalb einer IDB-Datei gespeichert. Die IDB Datei ist eine Datenbank zum "Opfer", beziehungsweise zu der von IDA Pro disassemblierten Datei.

Nach der Analyse kann der Anwender den Quelltext untersuchen. In ihrer Analyse stieß Team Seekuhrity auf die Registry-Zeichenketten: "SoftwareMicrosoftWindowsCurrentVersionRun" und "SoftwareMicrosoftWindowsCurrentVersionRunServices".

Diese Zeichenketten sorgen dafür, dass der Wurm beim Booten des Rechners startet. Bots enthalten Kommandos, mit denen sich korrumpierte Rechner fernsteuern und dazu bringen lassen, den Wurm zu verbreiten. Im hier dargestellten Fall tauchten in der Executable-Datei DNS-Namen auf. Socket-Code nutzte diese Netzadressen, um ein IRC-Netz zu kontaktieren. Dies ließ sich mit dem Ethereal-Log korrelieren und förderte folgenden Ablauf zutage: Der IRC-Client des Wurms baut eine Verbindung mit Server X auf. Der Client loggt sich über ein im Bot-Code verstecktes Passwort in den IRC-Server ein. Dieses Passwort schützt den IRC-Server vor unerwünschten Gästen. Der Client nimmt den Namen "BOT-XXXXX" an, wobei XXXXX für eine numerische Bot-Bezeichnung steht. Diese Kennung berechnet ein Zufallszahlengenerator.

Die Annahme des Namens quittiert der Bot gegenüber dem IRC-Server mit dem IRC-Kommando NICK BOT-123456. Ferner setzt der Bot-Code - ebenfalls nach Zufallsprinzip - einen Userhost (USER axyiw). Der Bot tritt einem geschützten Chat-Kanal bei; das Kennwort steht ebenfalls im Bot-Code (JOIN # ).