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.de
Analyse 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. Dabei
Bezeichnung 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 Aufruf
Dropper (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 zur
Verfü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 Variante
Dropper (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