Skip to main content

Note:
This paper was originally submitted as coursework. All personal information has been redacted for privacy.
For educational purposes only.

Postmortem Forensik mit AnyRun

  • Author: skull

Schlagworte: Schadsoftware, AnyRun, Forensik, WannaCry, DFN-Board, Monitor View, Details View, Metadata Panel


ABSTRACT

In diesem Paper geht es um das Tool “AnyRun”, seine Funktionen werden untersucht und Anwendungsfälle für die Postmortem Forensik betrachtet.


1. INTRODUCTION

Dass es viel Schadsoftware gibt, ist bekanntes Allgemeinwissen.
Jedoch können interessierte Informatiker nur bedingt mit der bösartigen Software in einer virtuellen Umgebung testen – und selbst hier besteht die Gefahr einer Infektion über das Netzwerk – ohne die eigene Infrastruktur/Systeme zu gefährden. Außerdem kann der Interessierte schnell etwas übersehen, was nur für wenige Frames sichtbar ist. Hierbei hilft das Tool “AnyRun” [1], mit dem bequem über den Browser Schadsoftware analysiert werden kann. Es wird genauer auf das Tool, die Funktionen sowie den Umgang mit dem Tool anhand eines Beispiels eingegangen.


2. STAND DER TECHNIK

In diesem Abschnitt wird die Konfiguration der Seite betrachtet und wie man von beliebiger Schadsoftware eine Postmortem Analyse durchführen kann.

2.1 Finden von Hashes

Um Hashes einer Schadsoftware zu finden, können wir unsere Schadsoftware auf abuse.ch bazaar oder VirusTotal hochladen, auf der unsere Datei gegen die jeweilige Datenbank geprüft wird. Es wird versucht, dieselbe Software mit dem entsprechenden Hash zu finden.
Als Beispiel verwenden wir die WannaCry Ransomware [2].
Auf den Seiten sind weitere Informationen zu der Schadsoftware zu finden, die uns später bei der Postmortem Analyse helfen können.
Zunächst nutzen wir den gefundenen Filehash um auf “AnyRun” (unter https://app.any.run/submissions/ oben rechts) nach einer infizierten Maschine zu suchen. Nun können wir eine der infizierten Maschinen anklicken, um sie genauer zu untersuchen. Im weiteren Verlauf des Papers werden wir uns mit https://app.any.run/tasks/2cf62b4e-2fd3-46e4-9239-c59b142e2140/ befassen.


3. KONZEPT

3.1 Dashboard von “AnyRun”

Um das Dashboard aufzuteilen und genauer referenzieren zu können, definieren wir die einzelnen Teile des Dashboards wie in Abbildung 1: Dashboard Übersicht.

Abbildung 1: Dashboard Übersicht


3.2 Monitor View

Im “Monitor View” können wir durch das Bewegen des Mauszeigers von links nach rechts über den Screenshot zwischen den Frames wechseln und so genau sehen, was alles auf dem Monitor angezeigt wird, beziehungsweise wurde. Somit kann uns kein Command Prompt Fenster entgehen, was nur für ein oder zwei Frames auf dem Monitor zu sehen war. Das gibt uns Hinweise zur Funktionsweise der Schadsoftware.
Eine Möglichkeit hierbei wäre, in Erfahrung zu bringen, ob und welche CVE [3] von der Schadsoftware genutzt wird, um sich Rechte auf dem Zielrechner zu verschaffen. Mit dieser Information kann man herausfinden, ob die CVE bereits gepatched ist oder ob sie weiterhin ein Risiko darstellt. Zusätzlich können wir sehen, in welcher Reihenfolge die Software agiert und somit Schlüsse auf den Ablauf der Schadsoftware ziehen.


3.3 D(ebug) F(ile) N(etwork) Board

Im “DFN-Board” sehen wir auf der linken Seite drei vertikal angeordnete Tabs, zwischen denen wir wechseln können: „Debug“, „File“ und „Network“.

3.3.1 „Debug“ Tab

Wenn wir nun auf den „Debug“ Tab klicken, können wir Systemstatusinformationen sehen. Durch das Klicken auf den Pfeil in der oberen linken Ecke können wir das „DFN-Board“ vergrößern, um mehr Nachrichten auf einmal zu sehen. In der oberen rechten Ecke können wir zusätzlich nach bestimmten Nachrichten filtern. Ganz oben sehen wir die Anzahl der Nachrichten neben „Debug Output“.
In der Tabelle sehen wir die Spalten: Timeshift, P(rocess) ID(entification), Processname und Message. Timeshift sagt uns zu welchem Zeitpunkt die entsprechende Nachricht erzeugt wurde, es wird von der ältesten zur jüngsten Nachricht gelistet. Mit der PID können wir nachvollziehen, um welchen Prozess es sich handelt, da Schadsoftware auch Gebrauch von „Process Injection: Thread Execution Hijacking“ [4] machen kann oder damit ein irreführender Prozessname uns nicht verwirrt. In der letzten Spalte sehen wir den eigentlich interessanten Teil des „Debug“ Tabs und zwar die Message. Hier können wir sehen, was genau passiert.

Abbildung 2: Debug Tab

In Abbildung 2: Debug Tab sehen wir, dass der Prozess Skype.exe mehrmals abstürzt und versucht, einen Crashreport zu erstellen.

3.3.2 „Files“ Tab

Das „Files“ Tab ist vom Aufbau her ähnlich wie das „Debug“ Tab.
Hier gibt es wieder dieselben Spalten wie im „Debug“ Tab: „Timeshift, PID und Process name“, allerdings statt der Message Spalte finden wir die „Filename“ Spalte vor, welche uns den gesamten Pfad der Datei anzeigt, die modifiziert wurde. Des Weiteren finden wir ganz rechts noch die Spalte „Content“, die uns die Größe und den Inhalt der Datei verrät. Die „Content“ Spalte kann eine von drei Farben haben: grün, orange und rot. Grüne Dateien sind meistens unschädlich und beinhalten Text oder Bilder. Orange Dateien sind Binaries also non-human readable text [5]. Rote Dateien sind Executables, das heißt auf dem Computer ausführbare Dateien. Durch das „hovern“ über den Pfad mit der Maus kann der Pfad in die Zwischenablage kopiert werden.
Eine weitere wichtige Funktion ist, dass durch das Klicken auf einen „Process name“ derselbe Prozess in der „Details View“ geöffnet wird. Darauf gehe ich später noch ein.

Abbildung 3: Files Tab

3.3.3 „Network“ Tab

In dem „Network“ Tab sehen wir oben die Reiter „HTTP Requests, Connections, DNS Requests und Threats“. In dem Reiter „HTTP Requests“ sehen wir, welcher Prozess was für eine Anfrage an die jeweilige URL geschickt hat. Durch das Anklicken der „Headers“ Spalte können wir die Headers des HTTP Request und der Response einsehen.

Abbildung 4: Network Tab

Abbildung 5: HTTP Request & Response

Durch das Anklicken der Content Spalte sehen wir, welche Datei heruntergeladen wurde (Abbildung 6: HTTP-Content) und können diese mit dem Hash auf anderen Seiten, wie Virus Total oder vergleichbaren Seiten, nachschauen, um zu erfahren, um was für eine Datei es sich handelt.

Abbildung 6: HTTP-Content

Unter dem Reiter Connections sehen wir, welcher Process zu welcher IP-Adresse eine Verbindung aufgebaut hat. Ferner werden uns das verwendete Protokoll und der Port angegeben. In der Spalte Traffic können wir uns den rohen Netzverkehr anschauen (Abbildung 7: Raw Traffic).

Abbildung 7: Raw Traffic

Bei den „DNS Requests“ sehen wir, welche Domains zu welchen IP-Adressen aufgelöst wurden. Hierbei ist zu beachten, dass es sich um echte IP-Adressen und Domains handelt, welche möglicherweise noch gefährlich sind. Es ist also mit Vorsicht und Bedacht vorzugehen.
Unter „Threats“ sehen wir Bedrohungen die „AnyRun“ automatisch erkannt hat.


3.4 Details View

In der Details View können wir die ausgeführten Programme beziehungsweise Prozesse sehen. Durch den Pfeil auf der Seite können wir die Prozesse erweitern und sehen, welche weiteren Prozesse sie ausgeführt haben.

Abbildung 8: Details View

Wenn wir auf einen Prozess klicken, können wir weitere Details zu diesem Prozess sehen.

Abbildung 9: Process Details

Wenn wir nun auf “more info” klicken, öffnet sich die detaillierte Prozess Übersicht, in der wir uns genauer mit den Prozessen und deren Ablauf sowie Aufgabe auseinandersetzen können.


3.5 Metadata Panel

In Abbildung 10: Metadata Panel sehen wir Randinformationen, die uns bei der Analyse helfen können. Anhand der „Indicators“ ist schnell zu sehen, was auf dem System passiert ist und inwiefern sich das Programm verdächtig verhält. Falls „AnyRun“ das Programm bereits kennt, bekommen wir außerdem passende Tags zu dem Programm, die uns bei der Recherche unterstützen. Zusätzlich können wir uns durch das Anmelden ein Sample herunterladen und die IOCs [6] nachschauen. Zusätzlich werden ein „Text Report, Process Graph“ und eine „ATT&CK Matrix“ [7] generiert, welche uns dabei helfen können, später die Software beziehungsweise den Angriff Dritten zu erklären.

Abbildung 10: Metadata Panel


4. Analyse von WannaCry

Um Programme genauer zu untersuchen und gut nachzuvollziehen, was sie genau machen, ist es sinnvoll bei der „Monitor View“ zu starten und einmal langsam durch die Screenshots zu gehen, um nachzuvollziehen, was der User auf dem System gemacht hat und wie sich das Programm nach dem Ausführen verhält.
Welche Änderungen sind auf dem System zu bemerken? In unserem Beispiel sehen wir, dass der User ein vermutliches Bild (.jpg) versucht zu öffnen, welches die Software jedoch nicht richtig darstellen kann, da es sich sehr wahrscheinlich nicht um ein Bild handelt. Jetzt versucht der User eine weitere Datei mit „Adobe PDF Viewer“ zu öffnen. Die Datei beinhaltet nur kryptische Zeichen. Im nächsten Screenshot sehen wir das sich der Desktophintergrund zu dem Wallpaper von WannaCry ändert und das System erfolgreich infiziert und verschlüsselt wurde.

Abbildung 11: WannaCry Desktop

Die weiteren Screenshots zeigen die verschlüsselten Daten und die hinterlassenen Infos zum Bezahlen der Erpressung. Es stellt sich zuerst die Frage: Welchen Exploit hat die Software genutzt? Um dies herauszufinden, gibt es viele Möglichkeiten. Da unsere Ransomware sehr bekannt ist, können wir im „Metadata Panel“ auf den „Tracker“ WannaCry klicken, wo uns ein zusammenfassender Artikel über die Ransomware zur Verfügung gestellt wird. In diesem erfahren wir, dass WannaCry den EternalBlue [8], [9] Exploit nutzt, um sich über das Netzwerk zu verbreiten, was wir mit weiterer Recherche über andere Seiten bestätigen können. Außerdem ist es sehr wahrscheinlich, dass WannaCry Macros von PDF-Dateien nutzt, um sich das erste Mal auf dem System zu verbreiten und zu installieren.

Da wir jetzt einen guten ersten Überblick des Ablaufs haben, befassen wir uns genauer mit den ausgeführten Prozessen. Dazu klicken wir im „Metadata Panel“ auf „Processgraph“, was uns eine grafische Übersicht der Prozesse ausgibt (mit dem + und – in der Ecke rechts oben können wir rein und raus zoomen.). Zuerst müssen wir den Startprozess finden. In unserem Fall ist es:

ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa.exe

Abbildung 12: Start Process

Es lässt sich schnell erkennen, welche Prozesse zu der Ransomware gehören und welche Prozesse unabhängig davon vom System ausgeführt wurden. Wenn wir weiter unten schauen, sehen wir, dass zwei weitere Prozesse markiert wurden: Skype.exe und javacpl.exe.
Um auszuschließen, dass es sich hierbei ebenfalls um Schadsoftware handelt, müssen wir recherchieren, um welche Programme es sich handelt. Durch die Eingabe der Namen finden wir heraus, dass es sich um das Java Control Panel und Skype handelt, was zusätzlich durch die Screenshots bestätigt wird. Um jedoch sicher zu gehen, dass die Prozesse tatsächlich unbedenklich sind, schauen wir uns genauer an, was sie machen. Dazu klicken wir auf den Namen und anschließend auf „more info“. So finden wir Details zu dem Prozess heraus.

Abbildung 13: Skype.exe Details

Zwar wird dieser Prozess durch den Algorithmus von AnyRun als „malicious“ markiert, jedoch muss dies nicht immer der Fall sein, da auch vertrauenswürdige Programme sich so verhalten, dass sie als false-positive [10] eingestuft werden. Um herauszufinden, was genau der Prozess macht, klicken wir oben rechts einmal auf „Deep“ bei „View“. Nachdem wir den Prozess genauer untersucht haben, lässt sich feststellen, dass er lokal kein unerwünschtes Verhalten zeigt. Um weiterhin zu bestätigen, dass unser Prozess nicht „malicious“ ist, können wir auf der linken Seite die unterschiedlichen Events durchforsten, um festzustellen, dass es sich hierbei tatsächlich um die echte Skype Applikation handelt. Wir können uns sicher sein, da es die Standard Skype Pfade verwendet und unter dem Connection Events mit offiziellen Microsoft Servern verbindet. Dasselbe wiederholen wir für alle weiteren Prozesse, die nicht von unserem Startpunkt ausgehen. Somit können wir diese beiden „false-positives“ aus unserer weiteren Untersuchung ausschließen. Nun gehen wir zurück zu unserem Startpunkt und schauen uns genauer an, was die einzelnen Prozesse machen, genauso wie wir es bei den false-positives gemacht haben. Auf diesem Weg lässt sich im Zusammenspiel mit etwas Internetrecherche herausfinden, was genau die Aufgaben der einzelnen Sub-Prozesse sind, inwiefern sie die Schadsoftware unterstützen und ob sie an sich allein schädlich sind.

Wenn wir uns beispielhaft den Prozess Abbildung 14: cmd.exe rechts von @wannacryptor@.exe anschauen,

Abbildung 14: cmd.exe

sehen wir, dass dieser Sub-Prozess dafür verantwortlich ist, Shadow Kopien zu löschen und die Backupmöglichkeiten zu verändern [11].

Abbildung 15: cmd.exe commands


5. ERGEBNISSE

Anhand der Analyse von WannaCry wurde genauer auf die Funktionen von AnyRun eingegangen. Das Tool eignet sich ausgezeichnet für die Postmortem Analyse, da die Bedienung sehr leicht und intuitiv ist, ohne dabei auf wichtige Informationen zu verzichten. Wir konnten erfolgreich die Funktionsweise der Ransomware untersuchen und welche Prozesse, beziehungsweise Befehle die Schadsoftware nutzt, um das Zielsystem anzugreifen.
Mithilfe des erworbenen Wissens sind wir jetzt in der Lage, einen derartigen Angriff auf unser System zu erkennen und gegebenenfalls zu verhindern. Zwar stuft AnyRun manchmal unschädliche Prozesse als „malicious“ ein, jedoch lässt sich genauer untersuchen und überprüfen, ob die Prozesse tatsächlich schädlich sind oder nicht. Zwar benötigt AnyRun eine gewisse Menge an Vorwissen zu der Funktionsweise von Computern und Betriebssystemen, trotzdem ist das Tool einsteigerfreundlich und intuitiv bedienbar. Es fallen weder Kosten an, noch ist eine Anmeldung erforderlich, um die Hauptfunktionen des Tools nutzen zu können. AnyRun sollte also bei einer Schadsoftware Analyse in Betracht gezogen werden und unterstützend zu weiteren Forensik Tools genutzt werden.
Des Weiteren sind die automatisch generierten Reports sehr gut geeignet, um die Schadsoftware Dritten zu präsentieren und die Vorgehensweise zu erläutern, besonders wenn es sich dabei um fachfremde Personen handelt. Der Report könnte beispielsweise unterstützend vor Gericht verwendet werden, um zu beweisen, dass es sich um Schadsoftware handelt.


6. ZUSAMMENFASSUNG

AnyRun ist ein praxisnahes Tool, welches vielen Forensikern bei ihrer Arbeit helfen und unterstützen kann. Es ist einfach zu erlernen und entlastet den Nutzer bei der Schadsoftwareanalyse. Aufgrund von „false-positives“ ist Vorsicht geboten, aber diese können sehr schnell vom Nutzer ausgeschlossen werden.
Dieses Tool ist insbesondere dann hilfreich, wenn neue Schadsoftware untersucht werden muss, um anschließend einen Patch zu veröffentlichen.


7. REFERENCES

  1. BSI Steckbrief: WannaCry
  2. AnyRun
  3. MITRE ATT&CK: Process Injection
  4. NVD CVE
  5. ASCII vs. Binär
  6. Proofpoint: Indicators of Compromise
  7. MITRE ATT&CK Matrix
  8. AnyRun Malware Trends: WannaCry
  9. WannaCry Analysis - ResearchGate
  10. Cambridge Dictionary: False Positive
  11. Microsoft: Volume Shadow Copy Service

For feedback or questions, contact the author. No personal author details are published for privacy reasons.