Conficker Wurm
Ich bin gerade auf eine sehr interessante Anaylse des derzeitig stark im Internet kursierenden Wurms Conficker gestoßen. Die Analyse wurde (u.a.) vom amerikanischen Militär in Auftrag gegeben und vom Stanford Research Institute (SRI) durchgeführt.
Aktuell sollen weltweit über 10 Millionen Rechner mit dem Conficker-Wurm infiziert sein. 25% davon stehen in China. Spiegel Online behauptet sogar, es sind weltweit über 50 Millionen Rechner. Solche Zahlen sind im Grunde nichts besonderes, ähnliche Epidemien lösten bereits Sasser 2004 oder Storm 2007 aus, ohne bisher nennenswerte Folgen. Das SRI behauptet jedoch nun, der Conficker-Wurm stelle eine neue Form von Bedrohung dar, die nicht nur ganze Nationen, sondern sogar das ganze Internet lahmlegen könnte:
Perhaps the most obvious frightening aspect of Conficker C is its clear potential to do harm. Among the long history of malware epidemics, very few can claim sustained worldwide infiltration of multiple millions of infected drones. Perhaps in the best case, Conficker may be used as a sustained and profitable platform for massive Internet fraud and theft. In the worst case, Conficker could be turned into a powerful offensive weapon for performing concerted information warfare attacks that could disrupt not just countries, but the Internet itself.
Wow. Was ist denn das bitte für ein übler Wurm? Anlass genug, da mal einen Blick reinzuwerfen:
Conficker A, B, B++ und C
Das SRI bezeichnet die auftauchenden Varianten des Wurms chronologisch mit Buchstaben. Conficker A tauchte zum ersten mal am 20. November 2008 auf und nutzt eine Windows-Schwachstelle (MS08-67), um sich in fremde PCs einzuschleusen. Conficker B brute-forced überdies noch Passwörter von Netzwerk-Rechnern und ist in der Lage sich über USB-Sticks zu verbreiten. Die neueste Version - Conficker C - wurde am 5. März entdeckt und beinhaltet nur noch ca. 15% des ursprünglichen Codes.
Eckstein, Eckstein, alles muss versteckt sein
Sobald Conficker erfolgreich in einen PC eingedrungen ist, kopiert er sich in eine DLL-Datei zufällig generierten
Namens in C:WindowsSystem32, C:Program Files oder C:Temp, schaltet
Windows-Updates sowie Windows-Defender ab und blockt durch Manipulation der
Windows-internen DNS-API eine Liste von Internet-Seiten, die Schutz-Software gegen den Wurm anbieten.
Außerdem sucht der Wurm einmal pro Sekunde nach 23 verschiedenen Sicherheits-Prozessen
(z.B. malware removal tools, security patches, etc.) und
terminiert diese sofort, sobald aufgetaucht.
Interessant auch folgender Abschnitt, der beschreibt, wie Conficker seine Anwesenheit zur Laufzeit verheimlicht:
Conficker uses a simple, but effective, mechanism to cloak its runtime presence. First, although the service is started through svchost.exe, it is not visible in the service manager because its DisplayName is set to be empty and type is set to be invisible. Second, unlike well-behaved DLLs, the Conficker DLL initialization function never returns. Hence, it is not added to the DLL list of the process. However, since the DLL is added as part of a group that includes other well-behaved services in the netsvcs group, the instance of svchost.exe does not get terminated, allowing Conficker to run behind the scenes.
Um ungestört nach außen kommunizieren zu können, wird die Windows-Firewall für einige hochzahlige UDP und TCP Ports abgeschalten. Das geschieht durch entsprechende Manipulation der Windows-Registry, welche auch dafür verwendet wird, eine Initialisierung des Conficker-Prozesses bei jedem PC-Neustart zu gewährleisten.
Das Conficker Botnetz
Die wesentliche Intention der Conficker-Autoren ist die Schaffung eines riesigen, weltweiten Botnetzes. Also ein Netz von PCs, die durch die Wurm-Infektion zentral gesteuert werden können. Laut Wikipedia wird das bisherige Conficker-Botnetz bereits dafür benutzt, 10 Milliarden Spam-Mails pro Tag zu versenden. Schau an.
Um Anweisungen erhalten zu können, müssen die PCs des Botnetzes irgendwie Kontakt mit den Autoren des Wurms aufnehmen oder vice versa. Der Server, über den das geschieht, wird Rendevouz Point genannt. Die Wissenschaftler vom SRI heben hervor, dass die Programm-Logik hinter dieser Kommunikation die Stärke des Wurms ausmacht. Conficker C benutzt dafür einen Domain Generation Algorithmus, der 50.000 pontentielle Rendevouz Points berechnet, und das alle 24 Stunden aufs neue. Davon tatsächlich abgefragt werden 500. Interessant ist die interne Blacklist des Conficker-Wurms, welche IP-Adressen für einen Rendevouz-Point nicht in Frage kommen. Wenn man sich die Liste anschaut, weiß man warum.
Der Conficker-Wurm beinhaltet außerdem ein eigenes Peer-to-Peer (P2P) Protokoll, das infizierten PCs erlaubt miteinander zu kommunizieren und Daten auszutauschen. Jeder PC kann dabei als Client und Server zugleich operieren.
Bemerkenswert beim Datenaustausch innerhalb des Conficker-Botnetzes ist die Aktualität der verwendeten Krypto-Systeme. Conficker C verwendet die drei Hash-Algorithmen RC4, RSA und MD-6 von Dr. Ron Rivest, MIT. MD-6 ist ungefähr zur gleichen Zeit veröffentlich worden, wie das erste Auftreten von Conficker A und gilt als die neueste Hash-Funktion überhaupt. Mitte Januar wurde ein Buffer Overflow im MD-6 gefunden, der daraufhin erschienene Fix wurde bereits kurz darauf in der MD-6 Implementierung von Conficker C nachgewiesen. Die Conficker-Autoren legen also sehr viel Wert auf unknackbare Verschlüsselung und digitale Signaturen.
Gut gegen Böse
Der Artikel ist auch deswegen äußerst interessant, weil er sehr schön den harten Kampf der "bösen Hacker" gegen die "guten Regierungsforscher" demonstriert.
Die Wissenschaftler vom SRI betreiben so genannte Honeynets. Das ist ein riesiges, mit dem Internet verbundenes Netzwerk von Servern (Honeypots), die jeden externen Zugriff protokollieren. Wird ein Rechner des Honeynets angegriffen und infiziert, lässt sich so das anschließende Verhalten der Schadsoftware genau analysieren. Es wird versucht, so Teile des Wurm-Quellcodes mittels Reverse Engineering zu rekonstruieren, sowie die Identität des Angreifers festzustellen.
Das wissen die Hacker natürlich und setzen deswegen alles daran, Rückschlüsse auf den Code so schwierig wie möglich zu gestalten. Im Artikel erwähnte Techniken dafür sind das Verschleiern von Windows-API Calls sowie zahlreiche sinnlose Registry-Einträge, um von echten Modifikationen abzulenken.
Noch weiß man nicht, wer der Autor/die Autoren dieses revolutionären Wurms ist/sind. Allerdings war in Conficker A ein Keyboard-Check eingebaut. Verwendete der infizierte Rechner ein ukrainisches Keyboard, beging der Wurm Selbstmord. Das lässt natürlich darauf spekulieren, dass der Wurm ukrainischen Ursprungs ist. Außerdem entdeckten die Wissenschaftler vom SRI in ihren infizierten Rechner zwei verdächtige Verbindungs-Versuche, die nachweislich aufgrund von Versionsunterschieden "händisch", also von den Autoren des Wurms selbst, ausgelöst worden sein müssen:
Connection 1: 81.23.XX.XX - Kyivstar.net, Kiev, Ukraine
Connection 2: 200.68.XX.XXX - Alternativagratis.com, Buenos Aires, Argentina
cool dass du das verstehst, kannst auch bald mitspielen ^^