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
Find me on