Vor einigen Wochen hat WikiLeaks Informationen zu einer in Deutschland entwickelten Spionagesoftware veröffentlicht, welche scheinbar von Behörden und Regierungen verschiedener Länder eingesetzt wurde. Diese Schadsoftware ist auch als Finfisher oder FinSpy bekannt und wird durch das deutsche Unternehmen FinFisher entwickelt. WikiLeaks zufolge gehörte dieses Unternehmen bis 2013 der in Großbritannien ansässigen Gamma Group International an. Auf Basis von ESETs Malware-Analysen war es ComputerBild möglich, im aktuellen Heft 44/2014, Seite 42-43 schnell auf die jüngsten Ereignisse zu reagieren und einen kurzen Bericht zur Funktionsweise des „Staatstrojaners“ herauszugeben.

Es ist nicht das erste Mal, dass ESET Artikel zu Überwachungstechnologien „Made in Germany“ veröffentlicht. Zudem wurden 2011 von CitizenLab Informationen zu den SpyFiles auf WikiLeaks publik gemacht. Auch die Veröffentlichungen des Chaos Computer Clubs in Zusammenarbeit mit der Frankfurter Allgemeinen Sonntagszeitung zum damaligen Staatstrojaner haben große Wellen geschlagen.

Zum jetzigen Zeitpunkt liegen ESET folgende Malware-Samples vor:

Dateiname von ESET erkannter Inhalt
ffrelay-debian-4.30.ggi.zip Linux/Belesak.A
finspy_proxy.zip Linux/Belesak.A
finspy_master.zip Linux/Belesak.A-K
finfisher.1.zip Win32/Belesak.A Trojan
finfisher.2.zip Win32/Belesak.A Trojan

In den ersten drei ZIP-Archiven befinden sich Komponenten von FinFisher, welche Serverfunktionalitäten (Relay, Proxy, Master) bereitstellen und die Daten ihrer Opfer sammeln. Die zwei letzten Samples finfisher1 und finfisher2 können - wenn sie einmal im Computer des Opfers ausgeführt werden – unter anderem Audio- und Videodateien von Skype aufzeichnen, Dateien suchen und löschen sowie Befehle ausführen. Weitere Informationen zu den Funktionen dieser Malware erhalten Sie auf den folgenden Seiten.

Wie funktioniert diese Malware?

Werfen wir nun einen genaueren Blick auf die Verhaltensweisen dieser Malware. Die oben aufgeführten Dateien beinhalten so genannte First-Level-Droppers, welche die „zweite Instanz“ der Second-Level-Dropper startet, die wiederum die Payload-Injection in die explorer.exe und den Internet Explorer ausführen:

FinFisher_Icons

Zunächst fällt auf, dass der Code nicht getarnt und nicht einmal gepackt ist, um einer Entdeckung zu entgehen. Lediglich einige basale Anti-Debug-Tricks sind implementiert. Diese Malware verfügt über ziemlich viele Komponenten, einige von ihnen in Form von zusätzlichen Plug-ins. Bei den Samples von Wikileaks waren allerdings keine Plug-ins enthalten. Die Struktur dieser Samples ist also bei grober Betrachtung eine zweistufige Abfolge der Dropper.

Im Wesentlichen verhalten sich die Dateien wie ganz normale Windows-Anwendungen. Der primäre Unterschied ist, dass bei ihrer Ausführungen zwei User32.dll-Funktionen mittels API-Hooking ausgenutzt werden, um sich selbst in einen temporären Pfad zu kopieren und auszuführen.

Wenn die Malware nicht direkt von Hand auf dem System des Opfers installiert werden kann, greift ein Mechanismus, um dem Nutzer gegenüber unauffällig zu erscheinen. Wird dem Anwender beispielsweise eine E-Mail mit dieser Malware als ein vermeintlich interessantes „Bild“ als Köder zugestellt, erscheint beim Anklicken auch ein Bild. Dafür wird zunächst versucht, die originale Datei zu löschen und einen passenden Tarn-Inhalt zu entschlüsseln. Die Malware erhält immer eine zur Tarnung passende Dateiendung (JPEG, RAR, DOC, XLSX, PDF, MP3, EXE und SCR). Bei der Ausführung der Malware werden die Tarn-Inhalte sowie ausführbare Dateien im temporären Pfad abgelegt und das Tarn-Dokument geöffnet, um dem Nutzer nicht verdächtig zu erscheinen – hier ist es ein Bild:

FinFisher_Decoy

In der zweiten Phase erkennt diese letzte Datei, in welcher Plattform die Ausführung stattfindet. Im Falle einer 64-Bit-Architektur erfolgt die Injection in die Explorer.exe, auf 32-Bit hängt die konkrete Durchführung der Injection von verschiedenen Faktoren ab: unter anderem der Windows-Version, dem nutzbaren Integrity Level und installierter Sicherheitssoftware (Comodo, Kaspersky) ab.

Schlussendlich werden mit Hilfe der zentralen DLL der Malware die einzelnen Plug-ins aus einem verschlüsselten Container geladen und die Verbindungen mit den C&C-Systemen (Command & Control Server) aufgebaut. Zu Tarnungszwecken findet die ausgehende Internet-Kommunikation über den Internet Explorer statt. Um die Interprozesskommunikation zu ermöglichen, erzeugt die zuvor erfolgte Payload-Injection einen Shared-Memory-Bereich (namens "WininetProxyMemory").

Einmal ausgeführt, überprüft die in den Explorer eingebrachte Payload, ob der Rechner des Opfers bereits infiziert ist und beginnt, Dienste zu starten und Treiber bereitzustellen, die den Zugriff auf die physischen Geräte des Systems ermöglichen. Nach der „Eignungsprüfung“ infiziert der „erweiterte“ Explorer den Master Boot Record (läuft nur auf 32 Bit), löscht Ereignisprotokolle und säubert den Installationsordner.

Wodurch kann die Erkennung vermieden werden?

Die „Philosophie“ der Malware scheint dadurch bestimmt zu sein, dass die Botnet-Betreiber (gemeint sind die Käufer der Software) manchmal physischen Zugang zu den Rechnern der Opfer haben. Man darf hierbei nicht vergessen, dass als Kunden dieser Malware Überwachungsbehörden im Fokus stehen. Diese können im Falle von direktem Zugriff auf die Systeme beispielsweise Ausschlüsse in der installierten Sicherheitssoftware hinzufügen und die Erkennung somit de facto deaktivieren.

Die in den Samples enthalten Köderdateien dienen auch dazu, den Computer des Opfers unbemerkt zu infizieren. Hinzu kommt, dass das Programm sein Verhalten ändern kann, wenn Sicherhheitssoftware erkannt wird, die die Ausführung stoppt oder zu blocken versucht.

Welche Aktionen kann diese Malware ausführen?

Wie eingangs erwähnt, erhalten Sie hier einen Überblick über die Funktionen des Trojaners. In der Regel hängt die Funktionsweise der Malware von den aktuell eingesetzten Plug-ins ab. Die WikiLeaks Dateien enthalten keine. Durch die Analyse der FinSpy-Master-Komponenten sind wir in der Lage, ihre Fähigkeiten zu erfassen:

  • Dateien löschen (FinTlvTypeDeleteFileRequest)
  • Dateien suchen (FinTlvTypeSearchFileRequest)
  • Kommandozeile ausführen (FinTlvTypeStartCmdLineSessionRequest)
  • Audio vom Mikrofon aufnehmen (FinTlvTypeStartMicrophoneRequest)
  • Video vom Desktop des Nutzers aufnehmen (FinTlvTypeStartScreenRequest, FinTlvTypeStopScreenRequest)
  • Video von der Webcam aufnehmen (FinTlvTypeStartWebCamRequest, FinTlvTypeStopWebCamRequest)
  • Tastenanschläge aufzeichnen (FinTlvTypeStartKeyLoggingRequest, FinTlvTypeStopKeyLoggingRequest)
  • Skype-Nachrichten, Sound, übertragene Dateien aufzeichnen (FinTlvTypeSkypeAudioRecording, FinTlvTypeSkypeTextRecording, FinTlvTypeSkypeFileRecording)
  • an Drucker gesendete Dokumente stehlen (FinTlvTypeSetPrintConfigRequest)
  • bearbeitete oder gelöschte Dokumente stehlen (FinTlvTypeSetChangedConfigRequest, FinTlvTypeSetDeletedConfigRequest)
  • Befehle planen (FinTlvTypeSetSchedulerConfigRequest, FinTlvTypeSchedulerTaskRecordScreenWhenAppRuns, FinTlvTypeSchedulerTaskRecordMicWhenAppUsesIt, FinTlvTypeSchedulerTaskRecordWebCamWhenAppUsesIt, etc)
  • Kann sich selbst mittels Befehl oder Zeitplan löschen (FinTlvTypeConfigAutoRemovalDateTime, FinTlvTypeInternalAutoRemovalElapsedTime, FinTlvTypeRemoveItselfMaxInfectionReached, FinTlvTypeRemoveItselfAtMasterRequest)

Darüber hinaus sammelt das Schadprogramm folgende Informationen: IP-Adresse, Computername, Nutzername, Windows-Version, Zeitzone, aktuelles Datum und aktuelle Zeit. Kurzum: Es handelt sich bei dieser Malware um einen normalen Bot, mit dem alles kontrolliert und gesammelt werden kann.

Was ist der Unterschied zwischen einem „Staatstrojaner“ und einer kriminellen Malware?

An und für sich sind die Funktionen ziemlich identisch zu modernen „kommerziellen“ Schadprogrammen, wie die oben aufgeführte Liste erkennen lässt. Der Hauptunterschied liegt darin, dass der Code nicht enttarnt, entpackt oder entschlüsselt wird. Derartige Vorgänge sind oft starke Indizien für eine heuristische Erkennung durch eine Antivirensoftware. Bei dieser Malware wird konsequent auf die Tarnung verzichtet.

Bei normaler Malware ist es nicht üblich oder unmöglich, den Code „offen“ auszuliefern. Deren enorme Verbreitung würde nach kurzer Zeit bewirken, dass dieser Schadecode analysiert und zuverlässig von Antivirenprogrammen erkannt wird. Eine manuelle Modifikation wäre dann nötig.

Gibt es noch mehr Samples, auf die man achten sollte?

Man darf nicht vergessen, dass diese Veröffentlichung nur einen Monat nach dem Leak mit den FinFisher-Kundendaten und der Erkennung einiger FinSpy-Samples (mobil und Linux) erfolgt. Trotz aller Bemühungen, Licht ins Dunkel dieser Malware zu bringen, bleiben interessanterweise die Erkennungsraten mancher Komponenten bei Antivirenprogrammen sehr niedrig.

Im Grunde könnte das Schadprogramm ohne Wissen des Nutzers eine Reihe an Operationen auf dem infizierten Rechner ausführen, zum Beispiel, Ton- und Webcamaufnahmen, Screenshots, Aufzeichnung von Tastaturanschlägen, Abfangen von Skype-, Audio- und Video-Dateien und selbst VoIP.

Wie wir schließlich bereits vor unserem Offenen Brief erklärt haben, ist das Ziel von ESET, allen Anwendern die Möglichkeit zu geben, sich in einer sicheren digitalen Welt zu bewegen. In vielen Fällen zeigen Analysen nicht genau, aus welchem Grund und wer die Schadsoftware entwickelt hat. Das heißt, dass wir nicht immer wissen können, ob wir eine behördlich eingesetzte Malware gefunden haben oder eine andere. Angesichts des Schadens, den Malware verursachen kann, setzen wir alles daran, jegliche Formen von Schadcodes zu entdecken und Anwender noch mehr zu schützen. Für weitere Informationen besuchen Sie unseren Post zum Thema Ethik der Erkennung.

 Wir danken unseren Kollegen in der Forschung für Ihre Hilfe und Unterstützung bei dieser Analyse und weiteren Untersuchungen zu Staatstrojaner-Samples.