Was ist Malware-Analyse?
Inhaltsverzeichnis:
Viele Kinder machen Dinge kaputt, nicht, weil sie kleine böse Wesen sind, sondern weil sie neugierig darauf sind, „wie es gemacht ist“. Schließlich wachsen einige dieser Kinder heran und werden Cybersecurity-Analysten. Sie machen im Wesentlichen dasselbe, aber in einer Erwachsenenwelt.
Malware-Analyse ist der Prozess des Studiums einer Malware-Beispieldatei, um zu verstehen, woraus sie besteht und wie sie funktioniert. Manchmal weiß man nichts, es sei denn, man probiert es aus, also muss man die Malware tatsächlich ausführen. Und manchmal ist es notwendig, den Code Zeile für Zeile gründlich zu untersuchen, ohne die Ausführung auszulösen.
Natürlich bringt das Lernen, was Malware-Analyse ist, viele Vorteile. Den Feind zu kennen, bedeutet, die Wege zu kennen, ihn zu besiegen. Das bedeutet, dass Malware-Forscher ihren SOC-Teams helfen, gezieltere Erkennungsalgorithmen zu entwickeln und ihre Vorfallreaktion zu verbessern.
Das Spannende ist, dass moderne Malware immer ausgeklügelter wird. Oft müssen Security-Analysten etwas untersuchen, zu dem sie keinen Zugang haben. Vor zehn Jahren konnte Malware durch eine auszuführen Datei definiert werden, heutzutage ist eine Datei nur der Anfang einer Reise. Lassen Sie uns etwas tiefer in die Malware-Analyse eintauchen und sehen, wie es funktioniert.
Wie können Sie mit der Malware-Analyse beginnen?
Es ist einfach – Sie können mit der Malware-Analyse beginnen, nachdem Sie ein Malware-Beispiel erhalten haben. Organisationen, die einen Defense-in-Depth-Ansatz verfolgen, verfügen über mehrere Tools und Prozesse, um regelmäßig neue Beispiele zu finden. Einige Analysten werden Ihnen sagen, dass sie seit Jahren nichts konzeptionell Neues gesehen haben, während andere zugeben, dass sie ungefähr jeden Monat neue Malware-Beispiele haben. Es hängt alles stark von der Forschungstiefe ab.
Die Analyse von Malware kann viel Zeit in Anspruch nehmen; deshalb ziehen es viele SOC-Teams vor, nicht so tief zu gehen. Allerdings zahlt sich die aufgewendete Zeit für die Forschung definitiv aus, denn es ist nie zu spät, das Sicherheitsprofil zu verbessern.
Was sind die Arten der Malware-Analyse
Malware-Analyse kann auf verschiedene Arten und mit unterschiedlichen Tools durchgeführt werden. Es gibt drei Hauptanalysetypen:
- Statisch
- Dynamisch
- Hybrid
Um herauszufinden, wie Sie die Malware analysieren, die Sie zur Hand haben, sollten Sie zunächst einige Fragen beantworten:
- Wie könnte diese Malware ihre Ausführung auslösen?
- Auf welche Weise wird sie versuchen, der Erkennung zu entgehen?
- Welche Teile des bösartigen Codes können wir sehen und welche nicht?
- Welche Tools helfen uns, alle Aspekte einer gegebenen Malware-Datei zu analysieren?
Wenn Sie eine bösartige Datei haben, können Sie eine statische Analyse durchführen. Wenn jedoch diese Datei nur dazu entworfen ist, weitere Phasen einer Kill-Chain zu starten, wird die statische Analyse nicht zeigen, wie die Hauptnutzladung ausgeführt wird. Manchmal ist der einzige Weg, dies herauszufinden, die Ausführung der Malware in einer sicheren Umgebung. Sehen wir uns also an, wie man verschiedene Arten der Malware-Analyse durchführt und wie sie einem Cybersecurity-Analysten nützlich sein könnten.
Dynamische Malware-Analyse
Dynamische Malware-Analyse kann entweder in einer automatisierten Sandbox oder auf einer VM durchgeführt werden, auf der Sie die Datei manuell testen können. Beachten Sie, dass ausgeklügelte Malware nach Anzeichen sucht, dass sie sich in einer emulierten Umgebung befindet, und eine automatisierte Malware-Analyse in diesem Fall nicht die beste Option ist.
Wie jede andere Software kann Malware so programmiert werden, dass sie praktisch alles tut, was ein Code tun kann. Daher möchten Sie verstehen, was der Code (als Satz von Anweisungen) tut und welche Logik dahinter steckt.
Einige Sicherheitstools injizieren beispielsweise ihre DLLs in lokale Prozesse. Die Malware wird die Umgebung scannen, und wenn sie diese Dateien findet, wird sie sich selbst beenden. Ansonsten werden Malware-Scanner nach Folgendem suchen:
- Debugger und andere Tools, die für die interaktive Analyse verwendet werden (API-Aufrufe wie IsDebuggerPresent, CheckRemoteDebuggerPresent, NtQueryInformationProcess).
- Prozesse, Fenster, Registrierungsschlüssel, Dateien, Mutex-Objekte usw. für die Malware-Analyse.
Wie der Name schon sagt, dreht sich bei der dynamischen Malware-Analyse alles darum, die Malware in Aktion zu beobachten. Sie möchten in so vielen Wegen wie möglich mit ihr interagieren und ein vollständiges Bild ihrer Funktionalität schaffen. Dafür stellen Sie sicher, dass Sie eine vollständig isolierte Umgebung verwenden; es sollte vom Internet getrennt sein, in einem Host-only-Netzwerk laufen, und die VM darf keine Ordner mit dem Host teilen.
Auch wenn Debugger-Ausweichscanner in vielen Malware-Beispielen vorhanden sind, verwenden Sicherheitsforscher trotzdem Debugger in der dynamischen Malware-Analyse. Diese Tools sind gut geeignet, um riskante API-Aufrufe und Speicherzuweisungen zu identifizieren. Wenn die Malware aktiv fileless-Techniken verwendet, wird sie in der statischen Analyse nicht sichtbar sein, da sie durch legitime Prozesse funktioniert – kein Exploit nötig.
Beispielsweise weist ein in PowerShell injizierter Code Speicher in powershell.exe zu und führt einen verschleierten Code in einem neuen Thread aus (der einen vertrauenswürdigen Prozess über Process Hollowing):
innerhalb des Debuggers. Dort werden Sie sehen können, wie der Code alle Anweisungen durchläuft, die ausgeführt werden sollen. Vergessen Sie nicht, Zeichenfolgen im Speicher zu überprüfen und sie mit dem Code zu vergleichen, der für diese Speicherinteraktionen verantwortlich ist. Suchen Sie nach Injektions-APIs wie VirtualAlloc, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread, usw. Untersuchen Sie auch NTFS-Transaktionen für Process Doppelgänging Injektionsmechanismen.
Verwenden Sie Debugger-Verdeckungstools, um sicherzustellen, dass Sie Malware analysieren können, die einer Erkennung ausweicht. Über Tools werden wir später noch mehr sprechen. Nun, lassen Sie uns sehen, wie man eine statische Malware-Analyse durchführt.
Statische Malware-Analyse
Statische Malware-Analyse ist die Art der Analyse, die ohne Ausführung eines Codes möglich ist. Diese Art der Analyse erfordert möglicherweise fortgeschrittene Kenntnisse über Low-Level-Softwaresprachen, Prozessoranweisungen und die Prinzipien des Speichermanagements.
Allerdings haben auch Analytiker auf Anfängerniveau ihre Methoden der statischen Dateianalyse. Ein einziger Blick auf eine Dateiendung kann Ihnen beispielsweise sagen, um welche Art von Datei es sich handelt, was Ihnen ermöglicht, Vorschläge zu machen, ob es verdächtig ist, diese Datei an dem Ort zu haben, an dem Sie sie gefunden haben oder nicht. Als Nächstes können Sie ihren Hash oder Fuzzy-Hash in Bedrohungsaufklärungsressourcen wie VirusTotal suchen. Seien Sie vorsichtig mit Annahmen, denn auch wenn der Hash nicht auf VirusTotal ist, kann die Datei trotzdem bösartig sein. Vergessen Sie nicht, auch andere statische Eigenschaften, wie Header-Informationen zu analysieren.
Die statische Analyse kann durch automatische Tools für die Erstbewertung sowie durch manuelle Analysetools für einen detaillierteren Blick durchgeführt werden. Sicherheitsanalysten studieren Codeanweisungen, Abhängigkeiten und was sie bedeuten.
Wenn Sie eine auszuführende Datei in einem Notepad öffnen, werden Sie Folgendes sehen:
Es ist ein Code, der in ein maschinenlesbares Format kompiliert wurde. Prozessoren wissen, was zu tun ist, aber Menschen verstehen hier wahrscheinlich nichts. Deshalb müssen Sie diesen Code über einen Disassembler oder einen Decompiler ausführen, um ihn wieder in ein lesbares und analysierbares Format zu bringen. Danach wird der Code ungefähr so aussehen:
Das Verständnis von Assemblieranweisungen ist notwendig, um aufschlussreiche Schlussfolgerungen zu ziehen. Sehen Sie sich diesen schnellen Leitfaden an, um Ihr Wissen aufzufrischen, oder tauchen Sie tiefer in dieses Referenzhandbuch von Oracle ein.
Sie können auch die Microsoft Sysinternals-Suite verwenden, um Strings zu analysieren. Ihre Tools können auch helfen, zu identifizieren, welches ausführbare Programm mit bestimmten Windows-API-Aufrufen verbunden ist, und sogar IOCs zu bestimmen. Scrollen Sie nach unten zum letzten Abschnitt dieses Blogposts, um mehr über Tools für die Malware-Analyse zu entdecken. Und jetzt lassen Sie uns über die Vor- und Nachteile der statischen und dynamischen Malware-Analyse sprechen.
Statische vs Dynamische Malware-Analyse
Offensichtlich wäre es die beste Option, mehr als einen Typ der Malware-Analyse einzusetzen. Die statische Analyse zeigt, wie eine bestimmte ausführbare Datei funktioniert. Heutzutage umfasst eine Standard-Kill-Chain jedoch oft mehr als eine auszuführende Datei. Stattdessen kann es eine Sammlung von Skripten und Dateien sein, die einander auslösen. Wenn dies der Fall ist, reicht die statische Analyse einer der Dateien nicht aus, um zu verstehen, wie die gesamte Nutzlast funktioniert.
Abhängig von den Zielen und Aufgaben des SOC-Teams kann einige Ressourcen darauf verwendet werden, Malware-Beispiele zu studieren. Es ist eine sehr individuelle Wahl, ob man sich für eine statische oder dynamische Analyse entscheidet. Meistens besteht eine Notwendigkeit, eine feine Balance zwischen beiden zu halten, was oft als hybride Malware-Analyse bezeichnet wird.
Hybride Analyse
Hybride Malware-Analyse ist eine Kombination aus statischer und dynamischer Malware-Analyse.
Bei komplexen Beispielen ist es am besten, Malware in Phasen zu analysieren. Zum Beispiel führen Sie zuerst eine statische Analyse durch und identifizieren, welche API-Aufrufe möglicherweise der Erkennung entgehen. Dann führen Sie in einer emulierten Umgebung eine dynamische Analyse durch, um das Beispiel in Aktion zu sehen und zu überprüfen, ob es andere Binärdateien herunterlädt. Und wenn Sie diese erhalten, können Sie erneut eine statische Analyse ihrer Interna durchführen.
Anwendungsfälle der Malware-Analyse
Jedes SOC-Team ist einzigartig, und die Cybersecurity-Prozesse können je nach Geschäftskontext, Unternehmensgröße und Risikofaktoren unterschiedlich organisiert sein. Im Folgenden sind einige der Anwendungsfälle aufgeführt, in denen Malware-Analyse anwendbar ist.
Bedrohungen erkennen
IOCs und Verhaltensmuster sind übliche Eingaben für verschiedene Arten von Bedrohungserkennungsaktivitäten in bestimmten Softwareprogrammen (SIEM, SOAR, EDR/XDR). Die Gewinnung wichtiger Malware-Daten während einer Analyse hilft, die neuesten Bedrohungen zu erkennen.
Alarmmeldungen erhalten
Genaues Alarmieren ist ein wesentlicher Bestandteil jeder Cybersecurity-Pipeline. Malware-Analyse hilft, die Anzahl der False Positives und False Negatives zu reduzieren und so ein höheres Maß an Cyber-Schutz zu gewährleisten.
Bedrohungen jagen
Neue und ausgeklügelte Malware-Stränge sind nicht so einfach zu fangen. Da kommt das Threat Hunting ins Spiel. Das Vorhandensein von Malware-Beispielen und das Verständnis ihrer Funktionsweise ist die beste Möglichkeit, weitere Bedrohungen zu jagen, die in freier Wildbahn lauern.
Auf Vorfälle reagieren
Offensichtlich gibt es keine gute Cybersecurity-Position ohne die Incident-Response. Eine ordnungsgemäße Reaktion kann entwickelt und durchgeführt werden, wenn Sicherheitsingenieure detaillierte Informationen darüber besitzen, wie Malware aussieht, welche Systeme sie betrifft und welche Prozesse sie ausführen möchte.
Was sind die Phasen der Malware-Analyse?
Eine analytische Arbeit ist nicht die einfachste. Einfach ist es, in Datenhaufen stecken zu bleiben oder den Code falsch zu interpretieren. Damit die Cyberverteidigung erfolgreich ist, unterteilen Forscher ihre Aktivitäten in einige Schritte der Malware-Analyse.
Bewertung und Triage
Die anfängliche Phase einer Malware-Analyse kann mit Hilfe von Automatisierungstools durchgeführt werden. Für die statische Analyse sind einige Vorbereitungsschritte erforderlich, wie z.B. das Dekompilieren des Codes. Jedenfalls ist es in der ersten Phase der Malware-Analyse notwendig, Teile des Codes zu sortieren, die besondere Aufmerksamkeit erfordern. Sie können auch in Schwierigkeits- und Prioritätsstufen unterteilt werden. Nachdem der Umfang des zu überprüfenden bösartigen Codes definiert und priorisiert wurde, ist es an der Zeit, zum nächsten Schritt überzugehen.
Dateninterpretation
Als Nächstes müssen Sicherheitsexperten bestimmte Malware-Beispiele untersuchen. Wie bereits erwähnt, kann dies durch die Analyse der statischen Eigenschaften oder durch das Ausführen der Malware in einer sicheren, isolierten Umgebung geschehen. Wenn der Malware-Analyst alle Daten erhalten hat, die durch statische und dynamische Analyse offengelegt werden können, versucht er, das Gesehene zu interpretieren. Er kann die Beispiele weiter testen, indem er Variablen umbenennt, den Code ausführt und Kommentare zu den Ausführungsmustern abgibt.
Reverse Engineering
Dies ist der schwierigste Teil, insbesondere wenn es sich um ein verschlüsseltes Beispiel handelt und unklar ist, was es tut und warum. Darüber hinaus kann der Code mehrere Abhängigkeiten aufweisen, die ebenfalls nicht so offensichtlich sind. Der Versuch, Malware rückzuentwickeln, ist eine anspruchsvolle Aufgabe. Doch es ist der Schlüssel zu einem Defense-in-Depth-Ansatz.
Schlussfolgerungen und weitere Maßnahmen
Wenn die Analyseergebnisse formuliert sind, ist es an der Zeit, diese zu dokumentieren und weitere Maßnahmen zu ergreifen. Der Analyst erstellt einen Malware-Bericht, in dem er eine Malware-Beispieldatei beschreibt, die vorgenommenen Analyseschritte und die daraus gewonnenen Erkenntnisse. Auch können sie einige Empfehlungen zur Schadensbegrenzung geben.
Welche Werkzeuge gibt es für die Malware-Analyse?
Es gibt eine ziemlich große Auswahl an Tools für die Malware-Analyse, die Sicherheitsingenieure täglich verwenden. Beginnen wir mit den statischen Analysetools:
- PeStudio wird weltweit von CERT-Teams eingesetzt, um Artefakte bösartiger Dateien zu erfassen.
- PEiD erkennt leicht verpackte und verschlüsselte Malware und bietet Details darüber, woraus sie besteht.
- BinText ist ein Textextraktor, der Ascii-, Unicode- und Ressourcenstrings in einer Datei finden kann.
- MD5deep berechnet die bösartigen Hashes. Als Malware-Analysator wird dieses Softwarepaket viele Dateien durch verschiedene kryptographische Digests führen.
- Dependency Walker wird 32-Bit- oder 64-Bit-Windows-Module scannen und einen Abhängigkeitsbaum erstellen.
- IDA Pro zerlegt den Binärcode in einen Quellcode. Es bietet auch eine plattformübergreifende Debugging-Funktion, die Remote-Anwendungen handeln kann.
Wenn es um die Analyse von Malware in Sandboxes geht, haben Sie vielleicht schon Cuckooverwendet, dennoch würde ich empfehlen, sich ANY.RUN and Joe Sandbox Cloudanzusehen. Sie haben beide eine Zuordnung zu MITRE ATT&CK®, verwenden Regeln und bieten einen sehr detaillierten Überblick über die Verhaltensweise.
Natürlich braucht Wireshark keine Einführung, da es immer noch eines der am weitesten verbreiteten Tools zur Echtzeit-Netzwerkanalyse ist. INetSim simuliert Internetdienste in einer Laborumgebung realistisch (die Proben sind höchstwahrscheinlich nicht in der Lage, die Simulation zu erkennen). Dann gibt es die Microsoft Sysinternals Suite, die ich bereits erwähnt habe. Dort finden Sie eine ganze Reihe von Tools für die dynamische Malware-Analyse. ScyllaHide ist ein weiteres interessantes Tool, das es Ihnen ermöglicht, einen Debugger vor Malware zu verbergen, die Sie ausführen möchten. Und wenn Sie ein ernstes Reverse-Engineering-Projekt in Angriff nehmen möchten, probieren Sie Ghidra aus – ein von der NSA-Forschungsdirektion entwickelte Werkzeugsammlung.
Zu lernen, wie man Malware-Analyse durchführt, mag am Anfang langweilig erscheinen, aber bleiben Sie geduldig und graben Sie tiefer, um echte Schätze zu finden. Wenn Sie sich einmal mit Low-Level-Daten wohlfühlen, werden Sie in der Lage sein, Dinge zu sehen, die nur wenige Menschen sehen würden. Anstatt zu denken, dass Malware-Ingenieure die klügsten Männer der Welt sind, werden Sie in der Lage sein zu beweisen, dass selbst die ausgeklügeltste Malware keine Magie anwendet – es ist nur ein weiteres Stück Software, das zerlegt und neutralisiert werden kann.
Schließlich für eine schnelle und effiziente Bedrohungserkennung und Bedrohungsjagd abonnieren Sie die SOC Prime Detection as Code Plattform – hier finden Sie Tausende von Sigma-basierten Regeln, um die neuesten Cyber-Angriffe zu erkennen. Und wenn Sie bereit sind, Ihre eigene Expertise zu teilen und mit Ihrem Wissen Geld zu verdienen, treten Sie unserer globalen Crowdsourcing-Initiative bei, Threat Bounty, die dabei hilft, die Cyberwelt sicherer zu machen.