Phantom Malware: Tarnkappe für Schadcode

12.01.2021
G DATA Blog

Eine neue Angriffsmethode überlistet fast alle Schutzmechanismen, indem sie dem System vorgaukelt, dass ein Anwender gerne eine Schadroutine ausführen möchte. Verhaltenserkennungen haben dagegen keine Chance. Doch es ist lange nicht alles verloren.

Anwender werden oft genug zum unfreiwilligen Einfallstor für Schadprogramme. Das beschränkt sich jedoch meistens auf Dinge wie eine Word-Datei zu öffnen und Makros zu aktivieren. Hier leisten traditionelle Verhaltenserkennungen und Signaturen gute Dienste, wenn es darum geht, eine Schadsoftware zu finden. Das gilt ebenfalls für Technologien, die weit über traditionelle Verhaltenserkennung hinausgehen, wie etwa BEAST.

Rollenwechsel

Wann immer es darum geht, einem Angreifer gegenüber einen Vorteil zu haben, hat sich eine Binsenweisheit durchgesetzt: Wer wissen will, wie ein Angreifer arbeitet, muss denken wie ein Angreifer. So ergeben sich oft spannende Erkenntnisse, die einem in der Zukunft nützlich sein können. Die Erkenntnis, um die es hier gehen soll, basiert auf zwei Annahmen. Erstens: Aus der Sicht einer Verhaltensüberwachung sind die Aktionen eines Nutzers immer über jeden Zweifel erhaben. Zweitens: Schadsoftware agiert immer im Hintergrund und holt sich dort die erforderlichen Rechte. Wenn diese Annahmen also nicht mehr gelten und die Grenzen verschwimmen, wird es spannend.

Rollentrennung

Grundsätzlich gibt es eine klare Trennung zwischen der Art und Weise, wie sowohl Anwendungen als auch Benutzer selbst mit dem Betriebssystem interagieren: Anwendungen nutzen ausschließlich die dafür vorgesehene Schnittstelle z.B. die WinAPI (Windows Application Programming Interface) in Windows. Der Benutzer verwendet jedoch nur die GUI (graphische Benutzeroberfläche). Im folgenden Beispiel soll eine Datei verschoben werden:

Die Software nutzt die Funktion MoveFile, die durch die WinAPI bereitgestellt wird.

Im Gegensatz zum Benutzer, der erst einmal das Icon in der GUI auswählt, die diese Datei repräsentiert. Danach zieht er dieses Icon nach dem Drag-and-Drop-Prinzip auf ein weiteres Icon, welches den Zielordner darstellt.

Durch das Konzept der Phantom Malware verschwimmen jedoch diese klar definierten Grenzen. Diese Art Schadsoftware interagiert mit der GUI. Das ist sonst nur dem Nutzer vorbehalten. Eine Phantom Malware verwendet für all ihre schadhafte Aktionen die User Imitating Technik (Punkt 1 bis 4), die es ermöglicht, diese Aktionen als nachgeahmte Benutzeraktionen zu tarnen. Zudem wird eine Datei als versteckter Informationskanal verwendet (Punkt 5 und 6), um das Ergebnis dieser Aktionen zu erhalten:

Funktionsweise einer Phantom Malware

(1) Es wird der Windows Explorer auf einen zusätzlichen Desktop geöffnet.

(2) Der Befehl, der die schadhafte Aktion repräsentiert, wird in die Ausführungszeile des Windows Explorer eingefügt und bestätigt. Dieses wird erreicht, indem Windows-Nachrichten, die entsprechende Tastatur-Events repräsentieren, an die Ausführungszeile (Fenster-Element) geschickt werden.

(3) Durch die Ausführung-Bestätigung startet der Windows Explorer die CMD.

(4) Die CMD führt nun den Befehl aus.

(5) Mittels des verwendeten > Operator (Redirection) im Befehl, wird das Ergebnis (Ausgabe) dieses Befehls in eine Datei umgeleitet.

(6) Der Phantom Malware Prozess liest den Inhalt dieser Datei aus. So kann in Fehlerfällen nach der Befehlsausführung entsprechend reagiert werden.

Bildlich gesprochen, agiert die Phantom Malware als zusätzlicher Benutzer, der seine Aktivität (nachgeahmten Benutzeraktionen) durch einen zusätzlichen Desktops versteckt. Beide Benutzter agieren gleichzeitig mit der GUI, jedoch merkt der echte Benutzer (Mensch) nichts von den Aktivitäten des zweiten Benutzers – Phantom. Der geöffnete Windows Explorer sowie die CMD befinden sich auf einem anderen Desktop, der nicht aktiv ist. Der Benutzer sieht nur seinen aktiven Desktop.

Wenn der „Benutzer“ selbst seine Dateien verschlüsselt

Basierend auf diesem Modell wäre also eine Ransomware realisierbar. Diese würde nach folgenden Kriterien operieren:

Angenommen die Datei foo.jpg soll verschlüsselt werden. Durch nachgeahmte Benutzeraktionen (User Imitating) wird diese Datei nach C:/bar kopiert und währenddessen in abc umbenannt. Nun wird die Datei C:/bar/abc von der Phantom Ransomware gelesen (User Imitating nicht angewandt), um einen verschlüsselten Dateiinhalt zu bestimmen. Anschließend wird die Datei foo.jpg durch User Imitating mit diesem verschlüsselten Dateiinhalt überschrieben. Beim Kopieren (mit Umbenennen) und dem Überschreiben wird die Ausgabe des jeweiligen Befehls (eingefügt in der Ausführungszeile des Windows Explorer) in eine Datei umgeleitet und gelesen, um entsprechend bei einen Fehler, z.B. keine Zugriffsrechte, reagieren zu können.

Jede Datei, welche verschlüsselt werden soll, wird in abc beim Kopieren in das Verzeichnis C:/bar umbenannt. Da die Dabei abc schon vorher existiert hat, wird diese mit dem Inhalt der kopierten Datei überschrieben (in der Abbildung: foo.jpg). Zusammenfassend wird User Imitating verwendet, um die Kopier-Operation und dasÜberschrieben der Datei als Aktionen vom Benutzer zu tarnen. Deshalb sieht es für dasBetriebssystem und das Antiviren-Programm fälschlicherweise so aus, als würde immer die gleicheDatei von der Phantom Ransomware gelesen werden und der Benutzer überschreibt(verschlüsselt) seine eigenen Dateien.

 

Können Antiviren-Programme dieses erkennen?

Erkennungstechnologien, die auf Verhaltensanalyse basieren, sind nicht in der Lage, Phantom Malware zu erkennen, da die anfangs erwähnte klare Trennung besteht: Die Software nutzt ausschließlich die dafür vorhergesehene Schnittstelle des Betriebssystems und nicht die Benutzeroberfläche für ihre Aktionen. Erkennungstechnologien, basierend auf einer Protokollierung der WinAPI-Aufruf-Sequenz in Kombination mit einem Machine Learning Algorithmus, betrachten nur den Namen des WinAPI Aufrufs. Die Argument-Liste wird vernachlässigt. Somit nehmen diese Technologien bei der Phantom Malware nur eine Folge von SendMessage WinAPI Aufrufen wahr – zum Einfügen eines Zeichen des Befehls in die Ausführungszeile vom Windows Explorer wird ein SendMessage WinAPI Aufruf benötigt. Dieser WinAPI Aufruf ist harmlos, weil er per se dem System nicht schadet. Metaphorisch betrachtet, spaltet die Phantom Malware ihre schadhaften Aktionen in viele harmlose SendMessage WinAPI Aufrufe.

Erkennungstechnologie, welche die Folge von WinAPI-Aufrufen des Prozesses protokolliert und dann diese Folge mit einer Datenbank aus vordefinierten schadhaften Verhalten (WinAPI Aufruf Sequenzen) abgleicht, wird Phantom Malware nicht erkennen können. Die Definition eines schadhaften Verhaltens, als Einfügung eines spezifischen schadhaften Befehls in der Ausführungszeile des Windows Explores, ist nicht möglich.

Es gibt keine genau definierte WinAPI-Aufruf-Sequenz (Länge und Argumente), um einen Befehl in die Ausführungszeile des Windows Explorers einzufügen. Beispielsweise kann ein spezifischer Befehl von der Phantom Malwalware mittels DOSfuscation randomisiert obfuskiert werden, z.B. füge an zufälligen Positionen ein ^ (Caret sind Escape-Zeichen in DOS) ein.

Insgesamt gibt es so für jede möglich Obfuskation des eigentlichen Befehls eine andere Sequenz von SendMessage-WinAPI-Aufrufen. Zudem wird die Erkennung von Phantom Malware mit aktueller Erkennungstechnologie durch folgende Punkte erschwert:

  • Wenn der Befehl, der durch die Phantom Malware in die Ausführungszeile vom Windows Explorer eingefügt wird, bestätigt wird, startet dieser die CMD mit diesem Befehl. Der Windows Explorer ist ein vertrauter Systemprozess. Das Blockieren eines Systemprozessen kann das gesamte System zu Absturz bringen.
  • Es sieht fälschlicherweise für das Betriebssystem so aus, als würde der Benutzer selbst diese Aktionen durchführen. Aktionen des Benutzers werden grundsätzlich als legitim betrachtet und nicht als schadhaft.

Gibt es andere Möglichkeiten Phantom Malware zu verhindern?

Obwohl verhaltensbasierte Erkennungstechnologien nicht in der Lage sind, Phantom Malware zu erkennen, gibt es dennoch Technologien und Designentscheidungen, die die Nutzung der hier beschriebenen Ansätze verhindern können. So ist da zum einen noch die klassische Signatur. Sobald bekannt wird, dass die Ursprungsdatei Schadcode enthält, kann sie auf eine Blockliste gesetzt werden. Zudem gibt es Ansätze wie etwa DeepRay, die das Verhalten der Schadsoftware selbst unter die Lupe nehmen und bei der auch kurzfristig Regelanpassungen möglich sind.

Darüber hinaus sind auch folgende Ansätze denkbar:

  • Wenn ein Fenster auf einem nicht-aktiven Desktop eine Windows-Nachricht bekommt, die ein Tastatur-Event repräsentiert, müssen diese Nachrichten zwischengespeichert werden. Sie dürfen nicht direkt vom Fenster verarbeitet werden. Erst wenn dieses Fenster den Keyboard-Fokus hat. So würde dem Benutzer sofort das Einfügen eines Befehls in die Ausführungszeile des Windows Explorers auffallen.
  • Alternativ: Wenn ein Fenster eine Windows-Nachricht bekommt, die ein Tastatur-Event repräsentiert, muss dieses Fenster den Keyboard-Fokus bekommen. Ist dieses Fenster auf einem anderen Desktop (nicht aktiv), so muss zudem zu diesem Desktop gewechselt werden.
  • Sollte ein Benutzer-Prozess mit einem Fenster interagieren, welches nicht zum eigenen Prozess gehört, dann muss der Benutzer hierüber informiert werden, z.B. ein Dialog-Fenster öffnet sich. Anschließend muss der Benutzer seine Erlaubnis hierfür geben.
  • Wenn Aktionen vom Benutzer eine Deaktivierung von Sicherheitsmechanismen des Betriebssystems zur Folge haben, so muss der Benutzer sich selbst authentifizieren. Zum Beispiel: Der Benutzer möchte die Shadows Files löschen. Es öffnet sich ein Fenster und der Benutzer muss dort sein Passwort eingeben (unabhängig davon, ob er Administrator ist), bevor diese Aktion ausgeführt wird. So wird sichergestellt, dass auch wirklich der „echte“ Benutzer diese Aktion ausführt.
  • Ein vollständiges Deaktivieren von simulierten Benutzeraktionen ist unpraktikabel. So würden Sprachsteuerung- und Fernsteuerung-Software nicht mehr funktionieren.

Schlussbemerkungen

Der hier beschriebene Phantom-Ansatz ist bisher nach unserer Kenntnis nicht „in the wild“ aufgetaucht. Realistisch gesehen ist das Nutzen der GUI-Funktionen zur Maskierung der malwarespezifischen Aktionen jedoch vergleichsweise aufwändig. Ein massenhafter Einsatz dieser Technik ist zum Zeitpunkt der Veröffentlichung dieses Artikels unwahrscheinlich. Erfahrungen aus der Vergangenheit haben allerdings auch gezeigt, dass kriminelle Akteure neue und erfolgsversprechende Ansätze zumindest ausprobieren.

Über den Autor

Tim Witte studiert Informatik an der Universität Osnabrück. Nebenbei ist er noch in der Forschung tätig. Sein Schwerpunkt liegt dabei auf Angriffen gegen Betriebssysteme und Netzwerke. Im September 2019 hat er ein Praktikum bei G DATA in der Abteilung Virus Analysis gemacht. Dabei wurde er zur dieser Tarntechnologie inspiriert. Nach dem Praktikum werde er noch dem Schreiben des Papers von G DATA unterstützt.

Seit Jaren unterstützt G DATA  aktiv die Forschung im Bereich der IT-Sicherheit. Falls Du also im Rahmen Deines Studiums ein Praktikum bei G DATA machen oder sogar Deine Abschlussarbeit bei G DATA schreiben möchtest, wirf einfach einen Blick auf unsere Karriere-Seite! (Link öffnet sich in einem neuen  Fenster)

Lesetipp

Die Publikation "Phantom Malware: Conceal Malicious Actions From Malware Detection Techniques by Imitating User Activity"(Link öffnet sich in einem neuen Fenster) behandelt die in diesem Artikel kurz umrissene Thematik im Detail. Sie ist auf der Internetseite des Institute of Electrical and Electronics Engineers (IEEE) erschienen.

Tim Witte
Sicherheitsforscher, Uni Osnabrück