Department Informatik - Technical Reports / ISSN 2191-5008 - OPUS 4
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Department Informatik
Technical Reports / ISSN 2191-5008
Andreas Dewald, Felix C. Freiling, Thomas Schreck, Michael
Spreitzenbarth, Johannes Stüttgen, Stefan Vömel, Carsten Willems
Analyse und Vergleich von BckR2D2-I und II
Technical Report CS-2011-08
December 2011
Please cite as:
Andreas Dewald, Felix C. Freiling, Thomas Schreck, Michael Spreitzenbarth, Johannes Stüttgen, Stefan Vömel, Carsten
Willems, “Analyse und Vergleich von BckR2D2-I und II,” University of Erlangen, Dept. of Computer Science, Technical
Reports, CS-2011-08, December 2011.
Friedrich-Alexander-Universität Erlangen-Nürnberg
Department Informatik
Martensstr. 3 · 91058 Erlangen · Germany
www.informatik.uni-erlangen.deAnalyse und Vergleich von BckR2D2-I und II
Andreas Dewald, Felix C. Freiling, Thomas Schreck,
Michael Spreitzenbarth, Johannes Stüttgen, Stefan Vömel
Friedrich-Alexander-Universität Erlangen-Nürnberg
Carsten Willems
Ruhr-Universität Bochum
Zusammenfassung—Im Oktober 2011 erregte die und Weise des Einsatzes von Verschlüsselungstechniken.
Veröffentlichung von Details über die inzwischen meist als Eine weitere, kurze Analyse des Droppers stammt von
BckR2D2 bezeichnete Schadsoftware öffentliches Aufsehen. Tillmann Werner [6]. Diese Analysen, vor allem die des
Mitglieder des Chaos Computer Club e.V. veröffentlichten CCC, erregten ein umfangreiches öffentliches Aufsehen.
einen ersten Bericht über die Funktionsweise des Tro-
Eine kritische Würdigung dieser Analysen sowie eine de-
janers, dem weitere Analysen folgten. In dieser Arbeit
geben wir einen Überblick über die bislang veröffentlichen
taillierte Aufstellung der Quellengenese existiert jedoch
Einzelberichte und über die verschiedenen Komponenten bisher noch nicht.
der Schadsoftware sowie deren Funktionsweise. Hierzu Ausgangspunkt unserer Arbeit war die von uns als
präsentiert diese Arbeit die wesentlichen Ergebnisse einer BckR2D2-I bezeichnete Variante der Schadsoftware.
ausführlichen Analyse aller Komponenten des Trojaners Diese wurde uns von Rechtsanwalt Patrick Schladt zur
und geht insbesondere auf Unterschiede zwischen den Verfügung gestellt und stammt von der Festplatte eines
beiden bislang bekannten Varianten BckR2D2-I und II seiner Mandanten. Diese Version wurde bereits 2009
ein. Ziel dieser Arbeit ist auch die kritische Überprüfung
eingesetzt und stellt das bislang älteste den Autoren
der von anderen Autoren getroffenen Aussagen über die
Schadsoftware. bekannte Exemplar der Trojaner-Familie dar. Im Okto-
Index Terms—keywords ber 2011 veröffentlichten Mitglieder des CCC ebenfalls
eine Variante dieses Trojaners [1], die auf den ersten
I. E INLEITUNG Blick nicht mit der Version BckR2D2-I übereinstimmte.
Im Laufe des Jahres 2011 wurden verschiedene Ver- Nach eingehender Analyse gelangten wir jedoch zu der
sionen der inzwischen als BckR2D2 bezeichneten Schad- Einsicht, dass es sich bis auf minimale Modifikationen
software bekannt. Eine erste Analyse wurde Anfang Ok- um die gleiche Variante der Schadsoftware handelt.
tober 2011 durch den Chaos Computer Club e.V. (CCC) Daher bezeichnen wir diese als BckR2D2-I’.2 Zusätzlich
in Form einer Presseerklärung sowie eines dazugehöri- wurde uns eine Version des Droppers [3], [4], [6] von
gen 20-seitigen Berichts veröffentlicht [1], [2]. In diesem einem Hersteller von Antiviren-Software zur Verfügung
werden einzelne Programmfunktionen und insbesondere gestellt. Wir bezeichnen diese Version als BckR2D2-
der eingesetzte Verschlüsselungsmechanismus detailliert II. Abbildung 1 veranschaulicht die Quellengenese, also
dargestellt. F-Secure, ein bekannter Hersteller von Anti- die Herkunft der unterschiedlichen Versionen der Schad-
Viren-Software, berichtete wenige Tage später in seinem software sowie die der jeweiligen Version zugehörigen
Blog über einen so genannten Dropper [3], welcher den Komponenten.
eigentlichen Trojaner installiert. Dieser wurde offenbar Ziel dieser Arbeit ist es, einen unabhängigen Über-
bereits im Dezember 2010 beim Onlinedienst VirusTotal1 blick über die beiden bislang bekannten, unterschiedli-
hochgeladen und beinhaltet eine Installationsroutine zur chen Varianten der Schadsoftware zu liefern und einen
Einrichtung der verschiedenen Programmkomponenten Vergleich untereinander zu ziehen. Ein besonderes Au-
der Schadsoftware auf einem System. Knapp zwei Wo- genmerk gilt hierbei potenziellen Erweiterungen oder
chen später veröffentlichte der CCC einen Bericht über Einschränkungen des Funktionsumfanges sowie Verbes-
die Unterschiede zwischen beiden Varianten [4], [5].
Der Fokus dieser Analyse liegt wiederum auf der Art 2
So beschreibt der CCC eine Reihe zum Zwecke des Quellen-
schutzes vorgenommener Änderungen, die zu BckR2D2-I’ führten,
1
http://www.virustotal.com/ auf seiner Webseite [7].Schladt CCC Website anonymer AV-Hersteller
R2D2-I'
~
R2D2-I R2D2-II
Dropper
User-Level-Anwendung Remover
64-bit Kernel-Level-Treiber
Softwarebibliothek 32-bit Kernel-Level-Treiber Softwarebibliothek 32-bit Kernel-Level-Treiber
Abbildung 1. Herkunft und Komponenten der unterschiedlichen Versionen von BckR2D2.
serungen zwischen den verschiedenen Versionen. Hierzu Dropper [3] enthalten. Für die ältere Variante BckR2D2-
unterzogen wir beide Varianten der Schadsoftware einer I liegt lediglich der 32-bit Kernel-Level-Treiber und die
intensiven statischen Analyse. In dieser Arbeit werden Softwarebibliothek vor. Ein Überblick über die betref-
die wesentlichen Ergebnisse dieser Analyse erläutert. Im fenden Ressourcen ist mit einer kurzen Beschreibung in
Zuge dessen werden insbesondere die in unterschiedli- Tabelle I dargestellt.
chen Quellen [2], [4], [3], [6] veröffentlichten Aussagen Neben dem bereits genannten Dropper, der Software-
über einzelne Varianten der Schadsoftware überprüft. bibliothek und dem 32-bit Kernel-Level-Treiber existiert
weiterhin ein 64-bit Kernel-Level-Treiber sowie eine
A. Gliederung der Arbeit User-Level-Anwendung, welche die Funktionalitäten des
Die restlichen Abschnitte dieser Arbeit sind wie folgt Kernel-Level-Treibers soweit wie möglich ersetzt, falls
gegliedert: Abschnitt II gibt einen kurzen Überblick bei der Installation der Schadsoftware keine Adminis-
über die einzelnen Komponenten der Schadsoftware. tratorprivilegien zur Verfügung stehen. Ein so genann-
Eine detaillierte Analyse der Komponenten folgt in Ab- ter Remover dient zum Löschen von Dateien und zur
schnitt III. Wichtige Unterschiede zwischen den bei- Verwischung angefallener Spuren. Tabelle II enthält eine
den Schadsoftwareversionen sind in Abschnitt IV näher Übersicht über die Prüfsummen und die Dateigrößen der
erläutert. Eine abschließende kurze Zusammenfassung einzelnen analysierten Komponenten.
der Untersuchungsergebnisse ist Gegenstand von Ab-
schnitt V. III. A NALYSE DER KOMPONENTEN
In diesem Abschnitt werden die Ergebnisse der Ana-
II. Ü BERBLICK ÜBER DIE KOMPONENTEN VON lyse aller Komponenten der Schadsoftware in Bezug auf
B CK R2D2 ihre Funktion und Implementierung erläutert.
Bislang sind insgesamt fünf verschiedene Kompo-
nenten unterschiedlicher Funktionalität bekannt, die der A. Dropper
Schadsoftware zuzuordnen sind. Diese Komponenten Die verschiedenen Komponenten der Schadsoftware
liegen jedoch ausschließlich für die Variante BckR2D2- in Variante BckR2D2-II werden mit Hilfe einer Instal-
II vollständig vor und sind in dem bereits genannten lationsroutine auf dem Zielsystem eingebracht. DabeiBezeichnung Kurzbeschreibung erläutert in
Installationsroutine zur Einrichtung der an-
Dropper Abschnitt III-A
deren Komponenten
Bibliothek zur Überwachung verschiedener
Softwarebibliothek Abschnitt III-B
Applikationen
Treiber zur Bereitstellung privilegierter
Kernel-Level-Treiber (32-bit) Operationen (benötigt Administratorrech- Abschnitt III-C
te)
Treiber zur Bereitstellung privilegierter
Kernel-Level-Treiber (64-bit ) Operationen (benötigt Administratorrech- Abschnitt III-C
te)
Programm als bestmöglicher Ersatz für den
User-Level-Anwendung Kernel-Level-Treiber bei eingeschränkten Abschnitt III-D
Benutzerrechten
Hilfsprogramm zum Löschen beliebiger
Remover Abschnitt III-E
Dateien
Tabelle I
KOMPONENTEN DER UNTERSUCHTEN S CHADSOFTWARE
handelt es sich um eine ausführbare .exe-Datei. Dieses ponente. Jedoch existiert im NTFS-Dateisystem, wel-
Installationsprogramm enthält sämtliche Komponenten ches seit Windows 2000 standardmäßig eingesetzt wird,
der Schadsoftware als eingebettete Ressource, die mittels ein weiterer, meist als ctime bezeichneter Zeitstempel,
einer dreistelligen Ziffernfolge im Bereich von 101 bis der die letzte Änderung der zugehörigen Dateisystem-
118 eindeutig referenziert werden können. Datenstruktur angibt [9]. Dieser Zeitstempel ist nicht
Nach Aufruf der Installationsroutine versucht diese ohne Weiteres zur Laufzeit des Systems manipulier-
zunächst im Windows-Systemverzeichnis des Rechners bar. Auf Basis dieses Zeitstempels sind daher unter
eine temporäre Datei mit dem Namen ˜pgp˜.tmp Umständen dennoch Rückschlüsse auf den eigentlichen
anzulegen, um die Schreibberechtigung für dieses Ver- Installationszeitpunkt der Schadsoftware möglich.
zeichnis zu prüfen. Sofern diese Operation erfolgreich In Abhängigkeit der festgestellten Betriebssystemar-
durchgeführt werden konnte, wird die temporäre Datei chitektur wird im weiteren Verlauf der Installation ein
anschließend sofort wieder gelöscht und eine dynami- 32- oder 64-bit Treiber aus der internen Ressourcentabel-
sche Bibliothek mit der internen Ressourcennummer le geladen (Ressourcennummer 102 und 118) und unter
101 unter dem Namen mfc42ul.dll im besagten dem Namen winsys32.sys im Systemverzeichnis der
Verzeichnis abgelegt. Es handelt sich hierbei um die Windows-Installation gespeichert. Im nächsten Schritt
Softwarebibliothek der Schadsoftware, welche in Ab- wird der Treiber mit Hilfe der CreateService-
schnitt III-B erläutert wird. Funktion als SERVICE_KERNEL_DRIVER (Servicetyp:
Wahrscheinlich um die Bibliothek besser vor einer 0x00000001) mit vollen Rechten und ohne weite-
Entdeckung zu schützen oder den Installationszeitpunkt re Abhängigkeiten auf dem Computer eingerichtet und
zu verschleiern, werden die Erstell-, Änderungs- und nachfolgend gestartet. Auch hier erfolgt eine Anpassung
Zugriffs-Zeitstempel der Datei von der namensähnli- der Zeitstempel auf die bereits bei der Installation der
chen Bibliothek mfc42.dll übernommen. Letztere ist Softwarebibliothek genannten Werte. Im Anschluss an
legitimer Bestandteil der Microsoft Foundation Clas- diesen Vorgang initiiert das Installationsprogramm meh-
ses (MFC), einer Sammlung von Klassen für die Soft- rere Code Injection-Operationen und schleust die Soft-
wareentwicklung mit C++, die üblicherweise auf Micro- warebibliothek in verschiedene Prozesse ein, namentlich
soft Betriebssystemen vorinstalliert ist [8]. Wenn diese in den Windows-Explorer (Explorer.exe) sowie in
jedoch nicht in Version 4.2 auf dem Zielrechner vor- zwei Prozesse der VoIP-Software Skype (Skype.exe,
gefunden werden kann, so erfolgt die Anpassung aller SkypePM.exe).
Zeitstempel der Softwarebibliothek auf das fest codierte In einem letzten Schritt extrahiert die Routine eine
Datum 04.08.2004, 12:00 Uhr. Die bloße Betrachtung weitere Ressource, die intern unter der Nummer 106
kürzlich vorgenommener Änderungen auf dem System abgelegt ist und auf der Festplatte des Zielsystems unter
führt also nicht zur Aufdeckung der installierten Kom- dem Dateinamen ˜acrd˜tmp˜.exe in einem tem-porären Verzeichnis gespeichert wird. Wie die Autoren in mögliche Steuerbefehle erhält bzw. an den er aufgezeich-
Abschnitt III-E darstellen, handelt es sich dabei um ein nete Daten versendet.
rudimentäres Löschwerkzeug, mit dem das ursprüngliche Um einen Informationsaustausch mit anderen obser-
Installationsprogramm nach Abschluss aller Maßnahmen vierten Programmen zu ermöglichen, werden benannte
wieder entfernt werden kann. Dateimappings verwendet, eine Art von gemeinsamem
Sofern die oben aufgeführten Dateien nicht im Speicher (Shared Memory) unter Microsoft Windows.
Systemverzeichnis der Windows-Installation erstellt Die Namen dieser Mappings beginnen in BckR2D2 stets
werden können, beinhaltet das Installationsprogramm mit der Zeichenfolge SYS!I[PC|CP]!, gefolgt von
einen alternativen Infektionsweg: Hierbei wird die einer mehrstelligen Ziffernkombination, im Fall des Mi-
Softwarebibliothek (Ressourcennummer 101) im crosoft Messengers zum Beispiel, 79029. Die Schad-
Applikationsverzeichnis des aktiven Benutzers abgelegt software ist ebenfalls in der Lage, die gesammelten
und als versteckt markiert.3 Als Ersatz für den Informationen über das Internet an einen Kontrollserver
Systemtreiber, der aufgrund der fehlenden Rechte zu senden. Hierzu nimmt ein dedizierter Thread über den
nicht eingesetzt werden kann, erstellt die Routine Port 443 Kontakt mit dem Server auf.
zwei versteckte und sich gegenseitig überwachende Der Kontrollserver kann mit Hilfe einer Reihe von
Instanzen der User-Level-Anwendung unter dem Kommandobefehlen den Client zur Durchführung ver-
Namen SkypeLauncher.exe und SkypePM schiedener Operationen anweisen. Dazu gehört insbeson-
Launcher.exe, die über den Registrierungsschlüssel dere die Anfertigung von Bildschirmschnappschüssen,
HKCU\Software\Microsoft\CurrentVersion\ aber auch die Übertragung und Ausführung beliebiger
Run standardmäßig bei jedem Start des Betriebssystems Dateien. Eine Übersicht und Beschreibung der in den
gestartet werden. Wie wir in Abschnitt III-D jeweiligen Versionen implementierten Befehle ist in Ta-
näher darstellen werden, sind diese Prozesse belle III aufgeführt. Wie aus dieser Tabelle ersichtlich,
für die Überwachung einer Vielzahl von konnten die Kommandos 0x0C, 0x10 und 0x11 bis
Anwendungsprogrammen verantwortlich. zum gegenwärtigen Zeitpunkt noch nicht vollständig
analysiert werden.
B. Softwarebibliothek
Die Softwarebibliothek wird in mehrere laufende Pro- C. Kernel-Level-Treiber
zesse injiziert. (Die hierzu genutzten Ansätze werden Dieser Abschnitt basiert im wesentlichen auf der Ana-
in Abschnitt IV-B näher erläutert, da sie sich in den lyse von BckR2D2-I. Die beschriebene Funktionalität ist
beiden vorliegenden Varianten stark unterscheiden.) In auch in BckR2D2-II enthalten, jedoch enthält BckR2D2-
Abhängigkeit des jeweiligen Elternprozesses, in den die II einige weitere Funktionen, deren Zweck zum ge-
Softwarebibliothek injiziert wurde, weisen die gestarte- genwärtigen Zeitpunkt unklar ist.
ten Threads unterschiedliche Verhaltensmuster auf. So Der Kernel-Level-Treiber bietet zahlreiche Funktio-
überprüft beispielsweise der in den Windows Explorer nen, um unter Umgehung der im Usermode geltenden
eingeschleuste Code die Version und das Patchlevel des Sicherheitsmaßnahmen des Betriebssystems Änderun-
Betriebssystems. gen am System vorzunehmen. Des Weiteren ist eine
Ein primäres Ziel der Softwarebibliothek ist offenbar Keylogger-Funktionalität enthalten, die jedoch bereits
die Überwachung der Software Skype. Hierzu registriert in der Version BckR2D2-I deaktiviert ist. (Der entspre-
sich die Bibliothek über die offizielle Schnittstelle als chende Code ist zwar vorhanden, wird jedoch aus dem
Skype-Erweiterung, was dazu führt, dass sie über ein- Treiber selbst nicht angesprungen.) Außerdem beinhaltet
gehende und abgehende Anrufe und Textnachrichten er zwei weitere Codefragmente, die in der vorliegen-
informiert wird. Über die Windows Multi-Media-Library den Version jedoch nicht weiter referenziert werden.
(winmm.dll) wird dann im Falle eines Anrufs der Ton Abbildung 2 zeigt eine schematische Übersicht über
aufgezeichnet, mit dem freien Audiocodec libspeex das Zusammenspiel des Kernel-Level-Treibers mit den
komprimiert und an den Kontrollserver übertragen. Der übrigen Komponenten.
Kontrollserver ist ein System, von welchem der Trojaner Beim Start des Treibers werden in der
3
DriverEntry-Routine die üblichen IRP
Unter Microsoft Windows XP ist das Applikations-
Handler installiert: Eine Default-Routine ohne
verzeichnis eines Benutzers unter C:\Dokumente und
Einstellungen\\Anwendungsdaten weitere Funktionalität und drei spezielle Handler:
zu finden. IRP_MJ_DEVICE_CONTROL (Dispatcher zum AufrufDropper
(BckR2D2-II)
installiert installiert
kommunizieren
Softwarebibliothek Kernel-Level-Treiber
injiziert (BckR2D2-II)
in diverse Prozesse injiziert
Abbildung 2. Zusammenspiel der Komponenten mit dem Kernel-Level-Treiber.
der einzelnen Treiberfunktionen), IRP_MJ_READ • B2026: Einen beliebigen Eintrag in der Systemre-
(zum Aufzeichnen von Tastatureingaben) und gistrierung erzeugen
IRP_MJ_POWER (zum Aufräumen beim Herunterfahren
Wie zu sehen ist, operieren die meisten zur Verfügung
des Systems).
gestellten Funktionen auf dem Dateisystem oder der Sys-
Um eine Kommunikation des Kernel-Level- temregistrierung. Hiermit ist es möglich, vorhandene Si-
Treibers mit der Softwarebibliothek im Usermode cherheitsmechanismen des Betriebssystems auszuhebeln
zu ermöglichen, wird ein DOS-Device mit dem und die Schadsoftware vor vorhandener Sicherheitssoft-
Namen \\..\KeyboardClassC erzeugt. Außerdem ware zu verstecken. Erfahrungen aus der Analyse anderer
wird ein 1 Kilobyte großer Puffer zum Speichern Schadsoftware legen eine derartige Nutzung nahe.
der aufgezeichneten Tastatureingaben angelegt und
2) Die IRP MJ READ-Routine: Um Tastatureinga-
dazugehörige Verwaltungsdaten initialisiert.
ben mitlesen zu können, muss ein zusätzliches Device
In den beiden folgenden Abschnitten stellen wir in den Tastatur-Geräte-Stack eingebunden werden. Diese
die Routinen IRP_MJ_DEVICE_CONTROL und Installationsroutine ist im vorliegenden Kernel-Level-
IRP_MJ_READ ausführlich vor. Die IRP_MJ_POWER- Treiber nicht enthalten. Entweder wird diese durch einen
Routine enthält keine Besonderheiten und wird daher modifizierten Dropper implementiert, oder die Entwick-
hier nicht weiter betrachtet. ler der Schadsoftware nutzen teilweise bedingte Kompi-
1) Die IRP MJ DEVICE CONTROL-Routine: Zur lierung. Im Internet kursieren jedoch bereits Programme,
Verwendung einzelner Treiber-Funktionen kann die Soft- die diese Funktionalität aktivieren können [10]. Nach
warebibliothek verschiedene Kommandos an den Treiber Aktivierung werden sämtliche Tastatureingaben durch
senden. Im Einzelnen sind diese: die IRP_MJ_READ-Routine des Treibers geleitet und
• B2002: Den aufgezeichneten Keylogger-Puffer dort in einen beim Laden des Treibers angelegten Ring-
zurückgeben und leeren puffer geschrieben. Zum Auslesen dieses Puffers kann,
• B200E: Eine beliebige Datei erstellen und mit wie unter III-C1 beschrieben, das Kommando B2002
bestimmtem Inhalt füllen benutzt werden.
• B2012: Das System mit einem Blue Screen of 3) Sicherheitsimplikationen des Kernel-Level-
Death (BSoD) abstürzen lassen Treibers: Das erstellte Kommunikations-Device
• B2016: Eine beliebige Datei sofort löschen (\\..\KeyboardClassC ) des Kerneltreibers kann
• B201A: Eine beliebige Datei umbenennen von jeder beliebigen Anwendung (auch gleichzeitig)
• B201E: Die aktuelle Versionsnummer des Kernel- verwendet werden. Eine Authentifizierung oder der
Treibers zurückliefern exklusive Zugriff auf das Device ist nicht vorgesehen.
• B2022: Eine beliebige Datei beim Rechnerneustart Somit kann jedes auf dem Rechner befindliche
löschen Programm den Treiber und die durch ihn zurVerfügung gestellten Funktionalitäten verwenden. Datei wiederherzustellen. Nach Abschluss der Opera-
Der deaktivierte Keylogger kann problemlos aktiviert tion, die bei Nichterfolg insgesamt maximal 10 Mal
und dann genutzt werden [10]. Des Weiteren werden wiederholt wird, vernichtet sich das Werkzeug mit Hilfe
sämtliche Usermode-Parameter sowie Rückgabewerte der MoveFileExA-Funktion beim nächsten Systemstart
von aufgerufenen Systemfunktionen nicht überprüft, selbständig.
so dass Systemabstürze auf verschiedene Arten
IV. V ERGLEICH VON BckR2D2-I UND BckR2D2-II
herbeizuführen sind. Durch den unbeschränkten
Zugriff auf das Dateisystem stehen Angreifern alle Im Folgenden stellen wir die beiden Varianten der
Möglichkeiten zur Manipulation des Systems offen. Schadsoftware BckR2D2 vergleichend gegenüber und
So könnte der Treiber beispielsweise sehr leicht derart gehen auf die wesentlichen Unterschiede ein. Neben
modifiziert werden, dass beliebiger Code im Kernel- diversen Änderungen in der Softwarebibliothek wurde in
Level ausgeführt werden kann. Eine Privilegeskalation der Version BckR2D2-II auch der Kernel-Level-Treiber
ist somit für beliebige Programme auf dem betroffenen wesentlich erweitert. In dieser Version existiert erstmals
System möglich, also insbesondere auch solche, die im neben dem 32-bit Kernel-Level-Treiber auch eine Trei-
Usermode ablaufen. berversion für 64-bit Windows-Systeme.
D. User-Level-Anwendung A. Kernel-Level-Treiber
Die Anwendung mit der Ressourcen-Nummer 107 Der Kernel-Level-Treiber hat in der 32-bit Version
dient als Ersatz für den Kernel-Level-Treiber. So kann von BckR2D2-I eine Größe von 5.376 Bytes, in Versi-
die Software auch auf Systemen verwendet werden, on BckR2D2-II bereits eine Größe von 10.112 Bytes.
bei denen es zum Infektionszeitpunkt nicht möglich Anzumerken ist, dass sich die Funktionen des Trei-
ist, Administrator-Rechte zu erlangen. Die Anwendung bers zwischen den Varianten BckR2D2-I und BckR2D2-
erfüllt zwei Aufgaben: Zum einen überprüft sie pe- II bezüglich der unterstützten Routinen und der Kom-
riodisch, ob die Installation beschädigt wurde. Wird mandokommunikation zur Usermode-Applikation nicht
festgestellt, dass der oben genannte Run-Key aus der wesentlich verändert haben. In Variante BckR2D2-II
Systemregistrierung entfernt oder das Image der An- wurde der Kernel-Level-Treiber jedoch dahingehend er-
wendung von der Festplatte gelöscht wurde, generiert weitert, die Softwarebibliothek in verschiedene Prozesse
sie eine entsprechende Fehlermeldung und kommuniziert zu injizieren. Hierzu startet der Treiber einen zusätz-
diese der Softwarebibliothek. Die zweite Aufgabe ist das lichen Thread, um kontinuierlich die Liste aller lau-
Injizieren der Softwarebibliothek in folgende Prozesse: fenden Prozesse zu ermitteln und den Schadcode der
• explorer.exe
Softwarebibliothek in die folgenden Anwendungs- und
• Skype.exe
Kommunikationsprogramme zu injizieren:
• SkypePM.exe • skype.exe
• msnmsgr.exe • msnmsgr.exe
• yahoomessenger.exe • paltalk.exe
• x-lite.exe
In Abbildung 3 ist analog zu Abbildung 2 die Ein-
• voipbuster.exe
richtung der eingesetzen Komponenten bei fehlenden
• simppro.exe
Berechtigungen aufgezeigt. Dieses Szenario ist jedoch,
• simplite-icq-aim.exe
ebenso wie der Dropper, nur aus BckR2D2-II bekannt.
• icqlite.exe
E. Remover • skypepm.exe
Bei dieser Komponente der Schadsoftware, dem so- • firefox.exe
genannten Remover, handelt es sich um ein einfaches • yahoomessenger.exe
Löschwerkzeug, das beliebige Dateien von der Festplatte • explorer.exe
des kompromittierten Systems entfernen kann. Die zu • opera.exe
löschende Datei wird dabei als Kommandozeilenpara- • lowratevoip.exe.
meter spezifiziert. Der eigentliche Löschvorgang erfolgt Der Kernel-Level-Treiber in BckR2D2-I besitzt diese
über den Windows-Systemaufruf DeleteFileA(). Funktionalität nicht. Hier wird das Injizieren der Softwa-
Diese Funktion überschreibt die eigentlichen Daten rebibliothek anderweitig erreicht (siehe Abschnitt IV-B).
nicht, sodass es prinzipiell möglich ist, die gelöschte Zusätzlich zum 32-bit Treiber besitzt die VarianteDropper
(BckR2D2-II)
zwei Instanzen überwachen
installiert installiert sich gegenseitig
Softwarebibliothek
injiziert (BckR2D2-II) User-Level-Anwendung
in diverse Prozesse injiziert
Abbildung 3. Zusammenspiel der Komponenten mit der User-Level-Anwendung.
BckR2D2-II eine 64-bit Version des gleichen Kernel- diese Version nicht vorliegt, ist dies jedoch nicht mit ab-
Level-Treibers. Voraussetzung für das Laden dieser soluter Sicherheit festzustellen. Die Software selbst bein-
Treiberversion unter 64-bit Windows-Systemen ist die haltet aber keine entsprechende Funktionalität, sodass ein
Signierung des Treibers mit einem digitalen Zer- externer Eingriff für den Start zwingend notwendig ist.
tifikat. Der 64-bit Kernel-Level-Treiber aus Varian- Wird die Bibliothek in einen Prozess geladen, führt sie
te BckR2D2-II wurde hierzu mit einem RSA Zer- initial immer einen Abgleich des Prozesses mit einer
tifikat des fiktiven Ausstellers Goose Cert (Finger- Whitelist durch. Nur wenn der Name der Image-Datei
print: e5 44 5e 4a 9c 7d 24 c8 43 f0 c6 in der Liste vorhanden ist, wird die Bibliothek aktiv. In
69 e2 a8 d3 a1 78 cf 7f a8) signiert. In unse- diesem Falle startet sie mehrere Threads, die Prozess-
ren Experimenten vertraute ein standardmäßig eingerich- spezifische Aufgaben wahrnehmen. Die Prozessnamen in
tetes 64-bit Windows 7-System diesem Zertifikat nicht der Whitelist sind im einzelnen:
und erforderte die manuelle Bestätigung der Treiberin- • skype.exe
stallation. • skypepm.exe
• msnmsgr.exe
B. Softwarebibliothek
• x-lite.exe
Die Softwarebibliothek aus Version BckR2D2-I wurde • yahoomessenger.exe
den Angaben im PE-Header zufolge am 07.04.2009, • explorer.exe
14:39:10 Uhr, kompiliert. Die Version BckR2D2-II hin- Die Liste der überwachten Programme wurde
gegen wurde am 06.12.2010 um 16:23:52 Uhr erstellt in der Version BckR2D2-II um eine weitere
und ist damit über 1 1/2 Jahre älter als seine Vorgänger- Anwendung, der Video-Chat-Software Paltalk, erweitert
version. Obwohl eine Fälschung dieser Angaben leicht (paltalk.exe).
möglich ist, schätzen die Autoren eine gezielte Mani- In Version BckR2D2-II wurde ein System mit der IP-
pulation der Daten angesichts lediglich nur marginaler, Adresse 207.158.22.134 über den Port 443 als Kon-
von der Komponente angewandter Verschleierungsmaß- trollserver kontaktiert. Diese IP-Adresse ist laut der loka-
nahmen als unwahrscheinlich ein. len Internetregistrierungs- und Verwaltungsorganisation
In der Version BckR2D2-I ist aufgrund der Program- RIPE5 dem amerikanischen Unternehmen Web Intellects
marchitektur davon auszugehen, dass die Schadsoftware in Columbus, Ohio zugeordnet. In der Version BckR2D2-
durch Veränderung eines Registrierungsschlüssels in alle II wurde dieser Server durch einen Rechner in Deutsch-
startenden Prozesse injiziert wird.4 Da der Dropper für land ersetzt, der unter der IP-Adresse 83.236.140.90
4
erreichbar ist. RIPE hat als Inhaber der IP-Adresse die
Der betreffende Registrierungsschlüessel lau-
tet HKLM\Software\Microsoft\Windows
QSC AG registriert, welche diese wiederum an einen
NT\CurrentVersion\Windows\AppInit_DLLs und nicht näher genannten Kunden mit der Bezeichnung
veranlasst das Betriebsystem, alle hier eingetragenen Bibliotheken
5
in den Adressraum eines jeden gestarteten Prozesses zu laden. http://www.ripe.net/QSC-CUSTOMER-5464944-56 4637 vermietet. richte bestätigt werden. Dies betrifft sowohl die Analyse
Bei allen untersuchten Varianten von BckR2D2 erfolg- des CCC [2] hinsichtlich der Funktionalität und des Ein-
te eine Authentifizierung der Schadsoftware gegenüber satzes von Verschlüsselungsmechanismen in BckR2D2,
dem Kontrollserver durch Übermittlung der Zeichenkette als auch den Vergleich der beiden Versionen der Schad-
C3PO-r2d2-POE, welche auch namensgebend für die software [4]. Auch die durch Werner beschriebene Funk-
Schadsoftware war. Aus diesem Grund ist es möglich, tionsweise des Droppers [6] ist nach unseren Untersu-
einen eigenen Kontrollserver zu präparieren und die chungen zutreffend.
Kontrolle über durch BckR2D2 kompromittierte Systeme Die Schadsoftware BckR2D2 implementiert insge-
zu erhalten, wie der CCC bereits zeigte [2]. In Vari- samt nur wenige Maßnahmen zur Verschleierung ih-
ante BckR2D2-II wurde das Kommunikationsprotokoll rer Gegenwart. Um eine Analyse der Programm-
verbessert, indem sowohl beide Richtungen der Kom- funktionalität zu erschweren, verwenden lediglich die
munikation verschlüsselt werden und eine Authentifi- User-Level-Komponenten leichte Obfuskationsmecha-
zierung beider Kommunikationspartner erforderlich ist. nismen: Die Namen mehrerer Windows API-Funktionen
Zur Verschlüsselung wird das symmetrische Verfahren werden in kleinere Zeichenketten zerteilt und erst
AES (Advanced Encryption Standard) im Electronic vor ihrem Aufruf wieder dynamisch zusammenge-
Codebook-Verfahren (ECB) verwendet und als krypto- setzt. Dies betrifft im Wesentlichen die Funktio-
graphischer Schlüssel stets die konstante (hexadezimale) nen ShellExecuteExA, CreateProcessA sowie
Zeichenfolge 49 03 93 08 19 94 96 94 28 93 CreateServiceA. Darüber hinaus gehende Maßnah-
83 04 68 28 A8 F5 0A B9 94 02 45 81 93 1F men, die häufig von Schadsoftware zur Verschleierung
BC D7 F3 AD 93 F5 32 93 eingesetzt. Die in der ihrer Funktionalität vorgenommen werden, sind in den
Version BckR2D2-II neu implementierte Authentifikation hier untersuchten Versionen nicht festzustellen. Insbe-
des Servers gegenüber dem Client prüft lediglich, ob sondere werden keine Versuche unternommen, interne
vor jedem Kommando vier sequentielle, fest codierte Betriebssystemstrukturen zu manipulieren, um beispiels-
Werte (0x95838568, 0x0B894FAD4, 0x8202840E, weise die Liste der laufenden Prozesse zu verändern.
0x83B5F381) übertragen werden. Der Mechanismus Obwohl die jeweiligen Dateinamen an die Namen le-
kann deshalb durch einen nicht-authorisierten Angreifer gitimer Programme angelehnt sind, um ihren wirklichen
leicht überwunden werden. Zur Löschung des System- Einsatzzweck zu verbergen, ist das Entdeckungspoten-
treibers und der Schadbibliothek im Systemverzeich- zial einer existierenden Installation von BckR2D2 im
nis des Benutzers sowie zur Einrichtung entsprechen- Vergleich zu gängigen Rootkits daher als vergleichsweise
der Komponenten im Applikationsverzeichnis (Kom- groß einzuschätzen.
mando 0x04, siehe Tabelle III) ist eine zusätzliche
L ITERATUR
Authentifikationsprüfung vorgesehen. Durch Übertra-
gung der Ziffernfolgen 0x0DEAF48F7, 0x8474BAFD, [1] Chaos Computer Club, “Chaos computer club analysiert staats-
trojaner,” http://www.ccc.de/de/updates/2011/staatstrojaner,
0x0BAAD49F1 sowie 0x8472BCF2 kann diese eben- 8. Oktober 2011.
falls erfolgreich überwunden werden. [2] ——, “Analyse einer Regierungs-Malware,” http://www.ccc.de/
Schließlich unterscheiden sich die beiden Versionen system/uploads/76/original/staatstrojaner-report23.pdf, 8. Okto-
ber 2011.
der Softwarebibliothek hinsichtlich ihres angebotenen
[3] F-Secure, “More info on german state backdoor: Ca-
Funktionsumfangs: Die Anzahl der Operationen, die se R2D2,” http://www.f-secure.com/weblog/archives/00002250.
vom Kontrollserver auf dem kompromittierten System html, 11. Oktober 2011.
initiiert werden können, wurde in Variante BckR2D2-II [4] Chaos Computer Club, “ozapftis — teil 2: Analyse ei-
ner regierungs-malware,” http://www.ccc.de/system/uploads/83/
im Vergleich zu BckR2D2-I von 14 auf 8 reduziert. Die original/staatstrojaner-report42.pdf, 26. Oktober 2011.
jeweiligen Kommandos wurden jedoch lediglich dadurch [5] ——, “Chaos computer club analysiert aktuelle version
deaktiviert, indem sie aus der Routine zur Befehls- des staatstrojaner,” http://www.ccc.de/de/updates/2011/
verarbeitung entfernt wurden. Der entsprechende Code, analysiert-aktueller-staatstrojaner, 26. Oktober 2011.
[6] T. Werner, “Federal trojan’s got a “big brother”,”
welcher die Funktionalität der Kommandos bereitstellt, http://www.securelist.com/en/blog/208193167/Federal Trojan
ist jedoch weitherhin in der Bibliothek enthalten. s got a Big Brother, 18. Oktober 2011.
[7] Chaos Computer Club, “Addendum staatstrojaner,” http://
V. Z USAMMENFASSUNG www.ccc.de/de/updates/2011/addendum-staatstrojaner, 9. Okto-
ber 2011.
Insgesamt konnten im Rahmen unserer Untersuchung [8] Microsoft Corporation, “Mfc reference,” http://msdn.microsoft.
die wesentlichen Ergebnisse der eingangs erwähnten Be- com/de-de/library/d06h2x6e.aspx, 2011.[9] S. L. Garfinkel, “Automating disk forensic processing with
sleuthkit, XML and python,” in Fourth International IEEE
Workshop on Systematic Approaches to Digital Forensic
Engineering (SADFE). IEEE Computer Society, 2009, pp.
73–84. [Online]. Available: http://doi.ieeecomputersociety.org/
10.1109/SADFE.2009.12
[10] Anonymous, “Hochkomplizierte versuchsanordnung versagt
- verheimlichen bundesbehörden ein halteproblem?” http://
pastebin.com/UtRnvdhg, 27. Oktober 2011.Bezeichnung Version MD5-Prüfsumme Größe in Byte
Dropper BckR2D2-II 309ede406988486bf81e603c514b4b82 643.072
Softwarebibliothek BckR2D2-I b5080ea3c9a25f2ebe0fb5431af80c34 364.544
BckR2D2-I’ 930712416770a8d5e6951f3e38548691 360.448
BckR2D2-II 934b696cc17a1efc102c0d5633768ca2 356.352
Kernel-Level-Treiber BckR2D2-I d6791f5aa6239d143a22b2a15f627e72 5.376
(32-bit) BckR2D2-I’ d6791f5aa6239d143a22b2a15f627e72 5.376
BckR2D2-II 9a8004e2f0093e3fe542fa53bd6ad1b2 10.112
Kernel-Level-Treiber BckR2D2-II cd01256f3051e6465b817fffc97767dd 262.73
(64-bit )
User-Level- BckR2D2-II 976dd8be30df45c6fb2b4aaaa9ce9106 155.648
Anwendung
Remover BckR2D2-II 96c56885d0c87b41d0a657a8789779f2 40.960
Tabelle II
KOMPONENTEN DER UNTERSUCHTEN S CHADSOFTWARE MIT IHREN ZUGEH ÖRIGEN P R ÜFSUMMEN UND DATEIGR ÖSSEN
Kommando Beschreibung I II
Anfertigung von Bildschirmschnappschüssen von aktiven Fenstern
0x02 x
eines Internetbrowsers
Erstellung eines dedizierten Threads, der periodische Bildschirm-
0x03 x
schnappschüsse des kompletten Bildschirms anfertigt
Entfernung des Kernel-Level-Treibers, Einrichtung der Schadsoft-
0x04 x x
ware im Applikationsverzeichnis des Benutzers
0x05 Aktualisierung der Schadsoftware über das Netzwerk x x
Herunterfahren des Systems per ExitWindowsEx()
0x06 x x
(EWX_SHUTDOWN, EWX_FORCE)
Herunterfahren per KeBugCheckEx() (erzeugt einen Blue
0x07 x x
Screen of Death)
0x08 Abfrage der installierten Anwendungen und Programme x
Erstellung eines weiteren Threads, der periodische Bildschirm-
0x09 x
schnappschüsse anfertigt (Code ähnlich zu Kommando 0x03)
Entgegennahme mehrerer (unbekannter) Parameter über das Netz-
0x0C x x
werk
Anfertigung von Bildschirmschnappschüssen von bestimmten
0x0D Fenstern im Vordergrund, unter anderem auch Internetbrowsern x
(ähnlich zu Kommando 0x02)
0x0E Übertragung und Ausführung einer beliebigen Datei x x
0x10 Noch unbekannt x x
0x11 Noch unbekannt x x
0x12 Null-Rückgabe x
Tabelle III
U NTERST ÜTZTE KOMMANDOS DER S CHADSOFTWAREBIBLIOTHEK IN DEN BEIDEN T ROJANER -VARIANTEN ( X = F UNKTIONALIT ÄT
VORHANDEN )Sie können auch lesen