Department Informatik - Technical Reports / ISSN 2191-5008 - OPUS 4

Die Seite wird erstellt Christopher Timm
 
WEITER LESEN
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