Willkommen zurück zur Malware-Analyse durch Data-Sec GmbH. Im letzten Teil haben wir die Malware ausgeführt und unsere Testmaschine verschlüsselt. Zudem haben wir in der statischen Analyse versucht einiges über die Malware herauszufinden.

In diesem Blog-Post widmen wir uns der dynamischen Analyse und führen die Malware erneut aus während wir das System beobachten und versuchen alle Aktivitäten mitzuschneiden. Dieser Schritt ist notwendig, da allein durch statische Analyse sich oft keine klare Aussage über Malware treffen lässt. Hier kommt dann die dynamische Analyse ins Spiel, bevor es dann zur erweiterten statischen Analyse geht.

Die dynamische Analyse ist letztendlich das Ausführen der Malware unter kontrollierten Bedingungen. Teilweise haben wir dies im ersten Schritt bereits getan. Nun gilt es die API-Calls usw. zu beobachten und somit das Verhalten der Malware genauer zu betrachten, bevor es an den eigentlichen Source-Code geht.

Wichtig, da wir in diesem Schritt uns noch nicht direkt mit dem Source-Code beschäftigen und somit Anti-Debug-Techniken nicht umgehen, kann die Malware hier unter Umständen sich anders verhalten oder sogar ihre Arbeit einstellen, da Analyse-Tools gefunden worden.

Wie bei der einfachen statischen Analyse ist es selten sinnvoll zu viel Zeit in die dynamische Analyse zu stecken. Der Sinn der einfachen dynamischen Analyse ist es ein generelles Bild über die Funktion der Malware zu gewinnen. Es muss hier nicht jeder einzelne Schritt genauer analysiert werden.

API-Calls:

Ein interessanter Indikator sind API-Calls, die von der Malware ausgehen. Damit kann oft die Funktion der Malware zumindest eingegrenzt werden. Ein bekanntes Tool ist API-Monitor, wobei es hier mehrere Möglichkeiten gibt API-Calls zu untersuchen. Das Monitoring-Tool wird hier an die Malware angehängt, also „attached“. Dabei kann es hin und wieder zu Problemen kommen. Wird der Monitor hier als „Internal Debugger“ angehängt, kann dies bei Anti-Debug-Techniken wie „IsDebuggerPresent“ zu ungewünschten Ergebnissen führen.

Nach einer kurzen Zeit sehen wir auch hier den Verschlüsselungsvorgang. In diesem Fall scheint es als ob die Malware jede Datei, die nicht auf .EXE, .LNK usw. endet mit .ykcol verschlüsselt. In diesem Fall eine Datei unter C:\Tools\

Ein Blick in den Explorer bestätigt dies.

Des Weiteren sehen wir hier mehrere Imports, wesentlich mehr als zum Zeitpunkt der statischen Analyse. Um die Länge des Blogs nicht in die Länge zu ziehen, werden dieselben Erkenntnisse nicht erneut aufgezeigt. API-Calls sind sehr hilfreich, um die Funktion von Malware zu verstehen aber nicht immer eindeutig. Antivirus überprüft ebenso diese API-Calls, was die Angreifer dazu zwang diese einzuschränken oder zu umgehen.

Eine Möglichkeit API-Calls zu „verstecken“ ist es die eigentliche Arbeit der Malware durch andere Prozesse und Dienste auszuführen. Die Möglichkeiten sind hier vielfältig. Das Ziel dahinter ist es den schädlichen Code durch legitime bzw. andere Prozesse ausführen zu lassen. Bspw. Wird hier Code in einen anderen Prozess „injected“ den der Analyst nicht analysiert oder im Auge hat.

FakeNet & Wireshark:

Um möglichen Netzwerkverkehr zu analysieren gibt es mehrere Möglichkeiten. Wie bereits beschrieben kann man hier komplette Netzwerke aufbauen oder auch mit bestimmten Tools Anfragen beantworten. Für diese Malware nutzen wir Fakenet-NG und Wireshark um möglichen Verkehr zu beobachten.

In diesem Fall gibt es hier aber, bis auf den Aufruf des Browsers, keine verdächtigen Netzwerk-Aktivitäten. Vermutlich nutzt die Malware hier Anti-Debug-Techniken und versucht in einer VM oder nebst einem Debugger keine Verbindung herzustellen. Zu diesem Zeitpunkt können wir hier ohne weitere Analyse aber nur vermuten.

Process Hacker & Procmon:

Weitere bekannte und gern genutzte Tools sind Process Hacker, Procmon und Process Explorer. Diese erlauben es dem Analysten die Datei- und Registry-Operationen eines Prozesses aufzuzeichnen. Außerdem können hier „spawned Processes“ also Prozesse, die von der Malware gestartet wurden, aufgezeichnet werden.

Dabei ist es irrelevant ob diese im Hintergrund, versteckt oder auch nur für wenige Sekunden aktiv waren. Procmon zeichnet diese auf und gibt dem Analysten so mehr Futter für ein klareres Bild.

Theoretisch wäre es nun möglich hier nahezu alle weiteren Schritte der Malware auszulesen und damit ein klares Bild der Malware zu zeichnen. Um den Leser aber nicht zu langweilen und die Länge des Blogs nicht zu strapazieren, haben wir uns entschlossen die weiteren Details in „Advanced Static/Dynamic Analysis“-Part zu beschreiben.

Im nächsten Teil des Blogs widmen wir uns der erweiterten statischen Analyse und schauen uns die Innereien der Malware an.