Rustock – Ein Malware-Mythos?

Das „unfassbare“ Rootkit

Im Dezember 2006 verbreitete sich unter Rootkit-Experten – Blackhats und Whitehats gleichermaßen – das Gerücht, jemand habe ein absolut „unfassbares“ Rootkit namens Rustock.C entwickelt und in Umlauf gebracht. Angeblich würde es von keiner aktuellen Antiviren- oder Anti-Rootkit-Lösung erkannt.

Langwierige Suchaktionen nach dem mystischen Rootkit verliefen jedoch erfolglos. Es dauerte nicht lange, bis sich alle Nachrichten die sich auf Rustock bezogen, in Forscherkreisen zu einem Running Gag entwickelten. So ging das bis Mai dieses Jahres.

Die Diagnose des „Doktors“

Anfang Mai 2008 meldete das russische Unternehmen Dr.Web der Antiviren-Community, seine Experten hätten das Rootkit Ntldrbot alias Rustock.С entdeckt. Diese Nachricht war ebenso unangenehm wie sensationell.

Vertretern von Dr.Web zufolge ließ sich das Rootkit bis einschließlich Oktober 2007 von keinem Antiviren-Programm aufspüren. Prompt kam die Vermutung auf, dass mit Hilfe von Rustock.C eines der aktuell leistungsstärksten Zombie-Netze zum Spam-Massenversand aufgebaut wurde. Das schienen auch Forschungsergebnisse des Unternehmens Secure Works zu untermauern, denen zufolge das mit Rustock.C geschaffene Botnetz das weltweit drittgrößte ist und täglich bis zu 30 Milliarden Spam-Mails versenden kann. Allerdings konnten die Einschätzungen von Secure Works kaum mit dem neu entdeckten Rootkit zusammenhängen, da dieses bis Mai 2008 praktisch unbekannt war. Vermutlich bezogen sich die Experten von Secure Works auf ein Netz, das mit Hilfe früherer Versionen von Rustock aufgebaut wurde. Genauer gesagt handelt es sich dabei um die Varianten A und B, die Kaspersky Lab als Costrat und SpamTool.Win32.Mailbot klassifiziert.

Den Dr.Web-Experten fiel das Sample von Rustock.C nach eigenen Angaben Ende März 2008 in die Hände. Die Code-Analyse und die anschließende Entwicklung von Erkennungs- und Desinfektions-Methoden beanspruchte mehr als einen Monat. Erst dann wurden laut Dr.Web auch andere Hersteller von Antiviren-Software über die Entdeckung des Rootkits informiert.

Die von Dr.Web veröffentlichte Beschreibung des Rootkits ließ allerdings viele Fragen offen. Vor allem blieb absolut unklar, wie und wann sich dieses Rootkit verbreitete und warum es seit Oktober 2007 von niemandem entdeckt worden war.

Bei dem von Dr.Web zur Verfügung gestellten Sample des Rootkits handelte es sich um einen Windows-Treiber mit einer Größe von 244.448 Byte.

Leider fehlte ein so genannter Dropper, also eine Datei, die für die Installation des Rootkits im System zuständig ist. Dieser Dropper hätte anderen Virenlaboren nicht nur die Analyse und Erstellung eigener Erkennungs- und Desinfektionsfunktionen entscheidend erleichtert, sondern auch den ursprünglichen Verbreitungsweg des Rootkits verraten können.

Außerdem gab es keinerlei Beweise dafür, dass dieses Rootkit auch tatsächlich in „freier Wildbahn“ vorkommt. Es ist daher wahrscheinlich, dass es sich bei Rustock.C um ein Sammlerstück handelt, das weltweit kaum verbreitet ist, was auch die sehr lange Suche erklären würde.

Die Laboranalyse

Kaspersky Lab begann am 12. Mai 2008 mit der detaillierten Analyse des Rootkit-Codes. Unsere Fachleute standen vor einer überaus komplizierten Aufgabe, denn der Rootkit-Code war vollständig mit einer unbekannten Methode verschlüsselt und ließ sich mit keiner gängigen Analysemethode knacken. Außerdem stand jede Datei des Rootkits in gewisser Verbindung zur Hardware des infizierten Computers und konnte auf anderen Rechnern oder virtuellen Maschinen weder gestartet noch analysiert werden.

Unsere Experten überwanden diese Schwierigkeiten jedoch innerhalb von nur zwei Tagen und entschlüsselten einen entscheidenden Teil des Rootkits. Am Abend des 14. Mai erschloss sich für Kaspersky Lab ein Teil des Codes von Rustock.C.

Während wir noch mit der Lösung dieses technisch hoch komplizierten Problems beschäftigt waren, versuchten wir gleichzeitig die Datei aufzuspüren, die das Rootkit im System installiert.

Insgesamt fanden wir 599 Dateien, die zu Rustock.C gehören. Ein Teil dieser Files stellt den so genannten sauberen Body des Rootkits dar, während ein anderer Teil aus infizierten System-Treibern besteht. Praktisch alle Dateien gingen aus einer polymorphen Veränderung ein und desselben Codes hervor.

Wann wurde das Rootkit entwickelt?

Kaspersky Lab standen also hunderte Dateien unterschiedlicher Größe zur Verfügung, die alle zwischen dem 10. September 2007 und 14. Mai 2008 in unseren Datei-Fallen gelandet waren. Die Experten fanden nicht ein einziges Sample von Rustock.C, das vor September 2007 entwickelt worden war. Es ist jedoch nicht ausgeschlossen, dass schon vor diesem Zeitpunkt frühere Varianten des Rootkits erschienen sind, bei denen es sich um Testläufe des Autors handelte. Doch die Variante, die Dr.Web „Ntldrbot“ taufte, ist eindeutig im September 2007 entwickelt worden.

Was hat es aber mit dem Gerücht über Rustock.C auf sich, das Ende des Jahres 2006 umging? Wir sind der Meinung, dass Rustock.C zu diesem Zeitpunkt gar nicht existierte. Möglicherweise wurde das Rootkit erst als Reaktion auf die entsprechenden Gerüchte und die hysterische Suche nach Rustock.C entwickelt. Diese These wird auch durch die Tatsache gestützt, dass im Code des Rootkits der Name des Schadprogramms – Rustock.C – enthalten ist. Das stimmt allerdings nicht mit der Bezeichnung „spambot“ und der Versionsnummer überein, welche der Autor den Varianten Rustock.A und B gegeben hatte. Der Name „Rustock“ wurde den ersten Rustock.A-Varianten aus den Jahren 2005 und 2006 von der Firma Symantec verliehen. Diese Bezeichnung übernahmen dann auch die Rootkit-Forscher und das „unfassbare“ Rootkit Rustock.C erhielt seinen Namen in Anlehnung an die bereits bekannten Varianten Rustock.A und B. Vielleicht hat der Autor sein neues Rootkit gerade deshalb so genannt, um die Gerüchte über seine Existenz zu bestätigen.

Die ersten funktionsfähigen Muster von Rustock.C erschienen in jedem Fall im September 2007 und mit ihrer Entwicklung wurde vermutlich einige Monate vorher begonnen.

Modifikationen

Die Analyse der 599 Dateien brachte viele interessante und zuvor unbekannte Details zum Vorschein. Kaspersky Lab konnte vier Modifikationen von Rustock.C identifizieren.

Die Variante C1 datieren die Experten auf den 10. September 2007. Der saubere Teil des Rootkits hat eine Größe von 244.440 bis 244.512 Bytes und enthält Treiber und DLL-Files. Eben diese Modifikation wurde von Dr.Web untersucht.

Die Variante C2 datiert auf den 26. September. Sie hat eine Größe von 158.432 bis 158.464 Bytes.

Die Varianten C3 und C4 datieren auf den 9. und 10. September 2007. Ihre Größe liegt zwischen 158.400 und 158.496 Bytes.

Auch wenn C1 beinahe um 100 KByte größer ist als die nachfolgenden Modifikationen, so unterscheiden sich diese prinzipiell kaum voneinander. Der Autor hat lediglich den Algorithmus zur Verschleierung des Rootkit-Bodys optimiert. Die DLL-Codes aller Spam-Bot-Varianten weichen nur unwesentlich voneinander ab.

Spam-Bot

Während einer fünftägigen Analyse entpackten wir das Rootkit vollständig und führten es trotz fehlendem Dropper auf virtuellen Maschinen aus. Dadurch erhielten wir Zugriff auf den DLL-Code des Spam-Bots, dessen Schutz die wichtigste Aufgabe von Rustock.C ist.

Ein aktives Rootkit extrahiert die DLL-Datei und führt sie im Systemspeicher aus, indem sie in den Prozess winlogon.exe eindringt. Das DLL-File existiert nicht als Datei auf der Festplatte und ist nur im Speicher des Computers vorhanden. Seine Aufgabe besteht darin, Spam-Mails vom infizierten Computer aus zu verschicken. Dazu nimmt das Programm Kontakt mit der Server-Adresse 208.66.194.215 auf und empfängt von dieser die Vorlagen der zu versendenden Spam-Mails. Die IP-Adresse gehört dem amerikanischen Hosting-Provider MCCOLO, auf dessen Servern schon seit langem Schadprogramme und Websites cyberkrimineller Gruppierungen untergebracht sind.

Erkennung und Desinfektion

Obwohl der Autor von Rustock.C sein Programm per Protektor, Kryptor und Chiffrierungsschlüssel gleich mehrfach vor Analyse schützt, war es kein Problem, das Rootkit den Antiviren-Datenbanken von Kaspersky Lab hinzuzufügen. Es entsteht beinahe der Eindruck, der Autor hatte derart großes Vertrauen in seine Verschlüsselungskünste, dass er keinen besonderen Wert darauf legte, sein Machwerk gegen Antiviren-Produkte abzusichern. Sein Ziel bestand offenbar darin, die Analyse des Codes mittels Krypto-Technologie so weit wie möglich zu erschweren. Das gilt sowohl für Antiviren-Unternehmen als auch für andere Virenschreiber.

Die Desinfektion der durch das Rootkit infizierten Systemdateien gestaltete sich da schon ein wenig schwieriger. Das Funktionsprinzip des Rootkits basiert darauf, diejenigen Windows-Treiber zu infizieren, die beim Systemstart geladen werden. So erhält das Rootkit die Kontrolle und kann sich erfolgreich im System verbergen. Ein infizierter Original-Treiber wird im letzten Abschnitt des Rootkits gespeichert und ebenfalls verschlüsselt.

Der Algorithmus, mit dessen Hilfe das Rootkit den infizierten Treibers verschlüsselt, erwies sich als recht simpel und war zudem nicht von der Hardware des verseuchten Rechners abhängig. Daher war es Kaspersky Lab möglich, die infizierten Dateien zu erkennen und vollständig zu desinfizieren.

Das Rootkit wurde als Virus.Win32.Rustock.a klassifiziert, da es sich bei diesem Schädling um einen vollwertigen Dateivirus handelt, der im Kernelmodus des Betriebssystems aktiv wird. Acht Tage nach Beginn der Untersuchungen, am 20. Mai 2008, veröffentlichte Kaspersky Lab ein Tool zur Erkennung und Desinfizierung verseuchter Dateien.

Die neuesten Versionen von Kaspersky Anti-Virus und Kaspersky Internet Security erkennen aktive Rootkits in einem infizierten System zuverlässig und können zudem alle verseuchten Dateien vollständig wieder herstellen. Wer andere Versionen der Software einsetzt, kann seinen Computer aber grundsätzlich mit Hilfe der Notfall-CD auf Rustock.C untersuchen. Die Kaspersky-Programme können zudem verdächtige Dateien erkennen und entfernen, selbst wenn der PC nicht infiziert ist.

Fragen und Antworten

Es schien, als wäre die Arbeit der Antiviren-Experten getan. Das Rootkit war besiegt und für befallene Rechner gab es eine zuverlässige Heilmethode. Die wichtigsten Fragen blieben allerdings nach wie vor unbeantwortet: Wie verbreitet sich Rustock und kommt das Rootkit tatsächlich auch in freier Wildbahn vor? Selbstverständlich wollte Kaspersky Lab auf diese Fragen eine Antwort finden und den Fall damit abschließen.

Verbreitung von Rustock

Innerhalb weniger Tage unterzogen wir alle zur Verfügung stehenden Samples von Rustock einer eingehenden Analyse bezüglich ihrer „Hardware-Konfiguration“. Wir hofften, dadurch eine zumindest ungefähre Vorstellung von dem Ausmaß seiner Verbreitung zu erhalten. Alle Daten wurden mit denjenigen Daten verglichen, die bei der Entdeckung der Samples aufkamen.

Wie sich zeigte, hatte Kaspersky Lab 590 der 599 Samples zwischen dem 10. September und 23. November 2007 erfasst.

Anhand dieser Daten konnten wir die gesuchten Objekte bis auf wenige eingrenzen und außerdem einen Zusammenhang zwischen den Dateien und den uns bekannten vier Modifikationen des Rootkits herstellen.

So ergab sich folgendes Bild:

Variante Entdeckungsdatum Erscheinungszeitraum Anzahl der Dateien
C1 10.09.2007 10-13 September 2007 321
C2 26.09.2007 27 September — 9 Oktober 2007;
12 November — 22 November 2007
199
C3 9-10 Oktober 2007 9-17 Oktober 2007;
12 November — 22 November 2007
31
C4 9-10 Oktober 2007 9-17 Oktober 2007;
12 November — 22 November 2007
48

Zwischen dem 17. Oktober und dem 12. November 2007 wurde nicht ein einziges Sample von Rustock entdeckt. Vom 12. bis zum 22. November wurde das Rootkit stark verbreitet, wobei es sich hauptsächlich um die am 26. September entdeckte Variante C2 handelte. Exemplare der Varianten C3 und C4 traten dabei nur in geringer Menge auf.

Beginnend mit dem 23. November begann eine mehrere Monate anhaltende Phase des Stillstands – oder des allmählichen Verschwindens – von Rustock.

Die Daten waren zwar überaus interessant, allerdings blieben die Art und das Ausmaß der Verbreitung von Rustock weiterhin im Dunkeln. Trotz aller Bemühungen konnten wir den „Dropper“ des Rootkits nicht aufspüren.

Doch am Ende war uns das Glück hold: Weitere 500 Dateien des Rootkits wurden gefunden, die schließlich die fehlenden Glieder der Kette bildeten.

Das Botnetz

Unsere These, dass die aktive Verbreitung von Rustock am 10. September 2007 begann, hat sich voll und ganz bestätigt. Unsere Experten wissen nun genau, wie und von welchen Servern der Schädling geladen wurde und wie er sich auf einem Rechner installiert. Obendrein haben wir nun eine Antwort auf folgende Fragen: „Wo ist der Dropper?“ und „Konnten Antiviren-Programme dem ‚unfassbaren’ Rootkit, das sich mindestens drei Monate lang ausbreitete, tatsächlich nichts entgegensetzen?“.

Die Verbreitungsart sowie die Verbreitungskanäle von Rustock lassen viele IT-Sicherheitsexperten aufhorchen. Die folgenden Namen sind jedem Antiviren-Experten nur allzu geläufig:

CoolWebSearch, IFrameBiz, Trafficadvance und LoadAdv.

Kaspersky Lab hatte es wieder einmal mit einer der bekanntesten kriminellen Gruppe zu tun, die im Internet ihr Unwesen treibt. Sie wird mit den oben stehenden Namen in Verbindung gebracht, weil diese ihre Websites und Schadprogramme bezeichnen. Die Gruppe existiert mindestens seit dem Jahr 2004 und ist bis heute aktiv. Zu den bekanntesten und am weitesten verbreiteten Machwerken der Bande zählen die Trojaner Harnig, Tibs, Femad, LoadAdv, verschiedene Modifikationen von Trojan-Downloader.Agent und Small sowie der Trojaner Inject.

Diese Tüftler gehörten schon immer zur Avantgarde der Virenschreiberzunft. Sie setzten seinerzeit als erste massenhaft Trojan-Downloader in chm-Dateien ein. Auf ihren Servern fand man die ersten Varianten von Exploits, die Schwachstellen bei der Verarbeitung von ANI- und ICO-Dateien ausnutzen. Die Cyberkriminellen verwendeten auch in Java geschriebene trojanische Programme wie Trojan-Downloader.Java.ClassLoader und begründeten den Trend zum Einsatz von Skript-Downloadern.

Das „Markenzeichen“ der Gruppe IFrameBiz waren lange Webadressen mit der Top-Level-Domain .biz und Dateinamen in der Art von loadwadv*.exe.

Alles deutet darauf hin, dass diese Gruppierung aus Russland stammt. Die meisten ihrer Mitglieder leben zweifellos dort. Anfangs nutzte die Bande verstärkt Hosting-Ressourcen in St. Petersburg. Zudem wurden die Aktivitäten der IFrameBiz-Gruppe mit dem zu trauriger Berühmtheit gelangten Netz Russian Business Network (RBN) in Verbindung gebracht, das laut Meinung vieler Experten ebenfalls seinen Hauptsitz in St. Petersburg hat.

Innerhalb von vier Jahren baute diese Gruppe eines der leistungsstärksten Systeme zur Verbreitung von Schadprogrammen auf. Ihr Botnetz besteht aus Millionen von Computern, die mit verschiedenen Downloadern infiziert sind, in erster Linie Tibs und Femad. Dieser Rechnerverbund ist in der Lage, innerhalb kürzester Zeit jedes beliebige neue.

Schadprogramm auf die infizierten Rechner zu laden. Diese Methode hat sich als effektive Alternative zum Schadcodeversand per E-Mail erwiesen – ein Verbreitungsweg, den die Antiviren-Industrie schon seit langem wirksam zu bekämpfen weiß.

Zahlende Kunden nutzen das Botnetz von IFrameBiz, um neue Schadprogramme zu verbreiten. Der Auftraggeber bezahlt für eine bestimmte Zeitspanne, in der sein trojanisches Programm mittels des Zombienetzes verbreitet wird. Häufig installiert ein und derselbe Downloader wie zum Beispiel Tibs mehrere Trojaner von unterschiedlichen Auftraggebern gleichzeitig. Diese Dienstleistung ist sehr beliebt. Selbst wenn die Cyberkriminellen verschiedene Auftraggeber gleichzeitig bedienen, führt das nicht zu Protesten seitens der Kunden.

Neben Kunden, die sich ein eigenes Botnetz aufbauen oder DDoS-Attacken durchführen wollen, nehmen auch Spammer und viele Entwickler von Adware diesen Service gern in Anspruch. Wollte man eine Parallele zum RBN ziehen, so wäre das Botnetz der hardwareseitige und technische Teil des Virenschreibergeschäfts. IFrameBiz wäre dagegen die Programm-Seite und die „Startrampe“ für die Mehrzahl der aktuellen Schadprogramme.

Im Sommer 2007 wandten sich schließlich auch die Autoren von Rustock mit dem Auftrag an IFrameBiz, ihr Rootkit in Umlauf zu bringen. Doch entweder waren die Trojaner von IFrameBiz nicht in der Lage, Rustock unbemerkt in die Systeme einzuschleusen. Oder womöglich waren die Autoren auch nicht gewillt, den Auftragnehmern den Code des Rootkits zu überlassen, da sie Diebstahl fürchteten. Zur Verbreitung über die Kanäle von IFrameBiz wurde daher ein absolut eigenständiges Modul entwickelt.

Rekonstruktion der Ereignisse

An einem konkreten Beispiel lässt sich nachvollziehen, was Ende September 2007 auf einem der infizierten Computer des Botnetzes von IFrameBiz vor sich ging.

Der im System installierte Downloader, vermutlich Tibs, wendet sich an einen der Server des Botnetzes in der Top-Level-Domain .hk (Kroatien) und versucht, die Datei loadadv251.exe herunter zu laden. Die Gruppe begann im Jahr 2007, Domains aus dieser Zone zu verwenden.

Bei dieser Datei handelt es sich um ein verbessertes Modul eben dieses Botnetzes. Von Kaspersky Lab wird dieses File als Trojan.Win32.Inject.mt klassifiziert. Es handelt sich hierbei um einen wörtlich zu verstehenden Namen, denn das schädliche Programm injiziert sich selbst in den Prozess Explorer.exe, umgeht auf diese Weise viele Firewalls und kann damit unkontrolliert Dateien ins System laden.

Der Trojaner sendet dem Server von IFrameBiz Informationen über die erfolgreiche Installation und empfängt Anweisungen, welche Dateien er woher laden soll. So ergibt sich ein eigenes Statistik-System des Botnetzes, welches es seinen Betreibern ermöglicht, Buch über erfolgreich geladene Schadprogramme zu führen und den Auftraggebern entsprechende Berichte zu liefern.

Der Trojaner lädt mehrere Dateien von verschiedenen Servern ins System, die entweder von Servern des Auftraggebers oder IFrameBiz-Ressourcen stammen. In unserem Fall werden die Dateien von den Ressourcen der Kunden geladen, die sie von IFrameBiz angemietet haben (http://*.biz/progs/*). Gleichzeitig trägt das Botnetz Daten über den infizierten Computer wie beispielsweise Informationen über das Betriebssystem oder die Festplatte zusammen. Diese Daten werden für Berichte über den Zustand des Botnetzes, dessen geografische Verteilung und Ähnliches benötigt.

Im System erscheinen also einige Dateien mehr, von denen insbesondere zwei interessant sind, nennen wir sie „1.exe“ und „2.exe“. Konzentrieren wir uns zunächst auf die Datei 1.exe.

Bei diesem File handelt es sich um einen weiteren Downloader, der allerdings äußerst ungewöhnlich ist. Dieser wurde erstmals am 10. September 2007 von Kaspersky Lab entdeckt, also genau an dem Tag, als auch die ersten Varianten von Rustock erschienen. Dieses Zusammentreffen der Ereignisse überrascht kaum mehr. Seit diesem Tag bezeichnet Kaspersky Lab den Downloader als Trojan-Downloader.Win32.Agent.ddl.

Dieses Schadprogramm enthält einen Treiber, der sich in den Kernel des Betriebssystems lädt und damit praktisch Rootkit-Funktionalität besitzt. Der Code des Treibers ist mit einem sehr komplizierten Verschlüsselungs-Algorithmus chiffriert, der dem Rustock-Algorithmus sehr stark ähnelt.

Entfernt man alle Verschlüsselungsschichten des Treibers, wird deutlich, dass der Downloader von Rustock nicht minder „mystisch“ ist als das Rootkit selbst.

Das fehlende Glied

Gerüchte über das Rootkit kursierten bereits seit Dezember 2006. Sein Downloader kam erstmals und einmalig Ende Oktober 2007 ins Gespräch, also fast zwei Monate, nachdem er entdeckt und in unsere Antiviren-Datenbanken aufgenommen wurde. Auf Grund der „Unfassbarkeit“ von Rustock.C zerbrach sich zu diesem Zeitpunkt niemand den Kopf über seinen Downloader.

Doch als es nach der Entdeckung von Rustock.C galt, den Dropper zu finden, unternahmen einige Antiviren-Unternehmen nichts weiter als das Rootkit selbst aufzuspüren. Sie verwendeten weder Zeit darauf, den Weg des Rootkits auf die Computer nachzuverfolgen noch fanden sie heraus, ob die Anwender dem „unfassbaren“ Rootkit tatsächlich schutzlos ausgeliefert sind. Die Untersuchungen von Kaspersky Lab gaben eine Antwort auf diese Fragen. Seit dem 10.September 2007, dem ersten Tag der Ausbreitung von Rustock.C über das Botnetz von IFrameBiz, kennt Kaspersky Lab mit Trojan-Downloader.Win32.Agent.ddl dessen Zusteller. Erst später erkannten auch noch einige andere Antiviren-Unternehmen diesen Trojaner.

Einige Monate lang ließ sich eine Infizierung von Rechnern mit dem „unfassbaren“ Rootkit nur verhindern, wenn dessen Downloader rechtzeitig entdeckt wurde.

Leider sind bis heute, also Anfang Juni 2008, nicht alle Antiviren-Produkte in der Lage, den Downloader Agent.ddl abzufangen.

Der Downloader

Der Trojaner besteht aus zwei Komponenten, dem Body und einem Treiber. Letzterer sammelt Informationen über das System wie etwa das Installationsdatum, die Typenbezeichnung des Motherboards sowie das Installationsdatum und die genaue Versionsnummer des Betriebssystems. Anschließend werden diese Informationen verschlüsselt und an den Rustock-Server 208.66.194.215 geschickt. Genauer gesagt handelt es sich dabei um folgende Angaben:

TSC, Bridge0, Bridge1, InstallDate, Version, ProductID.

Die Serveradresse, an die die Daten gesendet werden, ist auch im Spam-Bot des Rootkits beziehungsweise dessen DLL-Datei verankert. Von diesem Server erhält Rustock die E-Mails für den Massenversand. Die Art und Weise, mit welcher der Treiber des Downloaders mit dem Server interagiert, unterscheidet sich allerdings von der Spam-Bot-Methode. Der Treiber Agent.ddl arbeitet mit einem virtuellem TCP/IP-Protokoll direkt im Kernel-Modus. Auf Rechnern, die mit dem Schädling befallenen sind, erweckt der ausgehende Treiber-Traffic bei einigen Sniffern oder Firewalls keinen Verdacht. Agent.ddl kommuniziert über Port 443 und versucht, seine Daten als Pakete des HTTPS-Protokolls zu tarnen. Selbst wenn man den Traffic am Gateway abfängt, erkennt man nicht sofort, dass es sich hier einfach um verschlüsselte Daten statt HTTPS-Pakete handelt, die auf dem infizierten Computer zusammengetragen wurden. Hier folgt ein Beispiel für ein Paket, das von einem infizierten Rechner stammt und das sich als HTTPS-Sendung tarnt.

Der Chiffrierungsschlüssel ändert mit jedem neuen Start des Treibers. Dieser ist deshalb so schwer zu entdecken, da unbeteiligte Beobachter weder den Algorithmus noch den Verschlüsselungscode kennen.

Die Autoren des Trojan-Downloaders haben sich ganz eindeutig alle Mühe gegeben, jeden Analyseversuch so schwer wie möglich zu machen.

Die IP-Adresse des zentralen Servers sowie der Port, über den der Treiber die Verbindung herstellt, stehen nicht im Klartext im Programmcode, sondern sind verborgen angegeben:

push 00000BB01 ; Port 443
push 0E00C04E1
sub d,[esp],00849C211; Differenz gleich 0xD7C242D0, entspricht der IP-Adresse
208.66.194.215

Die Autoren haben sich zudem mit Code-Verschleierung beschäftigt. Zum Beispiel sieht die einfache Operation

mov [eax], ecx

nach der Obfuskation so aus:

push ebx
mov ebx, 0x03451b8c
sub ebx,eax
sub ebx, 0x03451b8c
neg ebx
mov [ebx], ecx
pop ebx

Eine einzige Anweisung wurde im Beispiel durch sieben andere ersetzt. Man kann sich nur allzu gut vorstellen, wie sich die restlichen Codezeilen des Treibers lesen.

Kommen wir aber wieder auf die Netzkommunikation zurück. Der Schädling hat also ein Paket mit Daten über den infizierten Rechner abgesendet. Daraufhin antwortet der Server mit einer Datei, die speziell für den befallenen Rechner chiffriert wird. Das geschieht mit einem Schlüssel, der die Hard- und Software-Ausstattung des Computers berücksichtigt.

Auf diese Weise haben die Autoren das Problem des Droppers gelöst. Schließlich könnten Antiviren-Experten diesen finden, analysieren und ausführen und dadurch den Rootkit-Code ohne Kenntnis des Chiffrierungsschlüssels entschlüsseln.

Die generierte saubere Rootkit-Datei wird auf den infizierten Computer geladen, woraufhin Agent.ddl das File aktiviert. Rustock.C infiziert anschließend die Systemtreiber und schon ist das Botnetz wieder um einen Rechner gewachsen.

Derzeit ist der Server der Cyberkriminellen blockiert und alle an ihn adressierten Pakete werden von Netzroutern gefiltert. Inzwischen sollte der Server auch in den Fokus der zuständigen Behörden gerückt sein.

Fazit

Die von Kaspersky Lab durchgeführte Rekonstruktion der Ereignisse beweist, dass sich das Rootkit von September bis November 2007 aktiv ausgebreitet hat. Einerseits gewährleistete das IFrameBiz-Netz eine wirklich weit gestreute Verbreitung. Andererseits zeigen die Fakten, dass die „Unfassbarkeit“ des Rootkits ausschließlich auf dem hohen Verschlüsselungsgrad seines Codes und den zahlreichen Anti-Debugger-Techniken fußt. Beides erschwert die Analyse für die meisten Experten deutlich.

Das Rootkit war vielen Antiviren-Unternehmen seit seinem Erscheinen in „freier Wildbahn“ bekannt. Seine Aktivitäten auf infizierten Rechnern und die Komponenten, die für Installation und Verbreitung zuständig sind, werden mit wenigen Ausnahmen bereits ebenso lange erfolgreich von allen Antiviren-Produkten erkannt. Das Rootkit hätte bereits in einem sehr frühen Stadium nach seinem Erscheinen im System mit Hilfe einfacher Monitoring-Techniken abgefangen werden können.

All das ist mit Rustock.C Dutzende Male geschehen, doch eine detaillierte Analyse wurde erst im Mai 2008 durchgeführt.

Rustock.C existiert wirklich, das Rootkit ist kein Mythos. Seine „Unfassbarkeit“ allerdings ist ein Mythos. Ein Mythos, der auf einigen außergewöhnlichen Verschleierungstechniken und zahlreichen Gerüchten basiert, die Ende 2006 aufkamen und den Autoren des Schadprogramms nur in die Hände spielten.

Jedes beliebige Rootkit, das aktuelle Erkennungsmethoden berücksichtigt, versucht deren Schutzmechanismen zu umgehen. Die Schlacht wird nun auf Kernelebene des Betriebssystems ausgetragen und letztlich dadurch entschieden, wer früher die Steuerung übernimmt – das Rootkit oder das Anti-Rootkit.

Die Autoren von Rustock.C hatten nicht die Absicht, ein prinzipiell unentdeckbares Rootkit zu entwickeln. Sie wollten lediglich die Analyse ihres Schädlings nach dessen Entdeckung weitestgehend erschweren. Dadurch konnten sie die Zeit zwischen Verbreitung und Entdeckung des Schadprogramms wesentlich hinauszögern.

Unklar bleibt allerdings eins: Warum hat der Autor von Rustock seit Mitte Oktober aufgehört, an seinem Machwerk weiterzuarbeiten und seither keine neuen Versionen mehr veröffentlicht? Bedeutet das etwa, dass er mit einem neuen Projekt beschäftigt war und irgendwo bereits „Rustock.D“ existiert?

Leider haben wir keine Antwort auf diese Frage. Die Tatsache, dass ein einzelnes Schadprogramm über mehrere Monate unentdeckt geblieben ist, ändert aber nichts daran, dass Tag für Tag tausende neuer Schädlinge erfolgreich von der Antiviren-Industrie erkannt und gebannt werden.

Solange es im Internet aber Gruppen wie IFrameBiz gibt, die täglich für die Verbreitung von mehreren hundert neuen Schadprogrammen verantwortlich sind, ist es nicht angebracht, einen Sieg auf lokaler Ebene übermäßig zu feiern.

Nachtrag: Wie bereits erklärt installiert sich Trojan.Win32.Inject.mt mit den beiden Dateien 1.exe und 2.exe im System. Was es mit der zweiten Datei auf sich hat, wurde allerdings noch nicht erläutert.

Bei dieser Datei handelt es sich um eine neue Version des Trojan-Spy Sinowal. Jenem Sinowal, der einige Monate nach den beschriebenen Ereignissen erneut für Kopfzerbrechen in der Antiviren-Branche sorgte und als „Bootkit“ in die Malware-Geschichte einging.

Rustock und Sinowal wurden also zeitgleich und mit Hilfe ein und desselben Botnetzes verbreitet. Seit Mitte Oktober 2007 sind keine neuen Versionen von Rustock mehr erschienen. Die ersten Samples des Bootkits wurden einen Monat später, im November 2007, entdeckt.

Alles nur Zufall?

Vielleicht finden wir eines Tages eine Antwort auf diese Frage.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.