RAM-Forensik mit Volatility: Speicherabbild analysieren
Wichtig: Diese Anleitung konzentriert sich auf Konzepte, Befehle und organisatorische Abläufe für Forensiker. Alle Befehle werden am Original‑Speicherabbild memdump3.raw demonstriert.
Einleitung
Die Analyse des flüchtigen Arbeitsspeichers (RAM) ist ein zentraler Teil moderner Malware‑Forensik. RAM enthält Laufzeitinformationen, die auf der Festplatte häufig nicht vorhanden sind: aktive Prozesse, geladene DLLs, Netzwerkverbindungen, offene Handles und Befehlsverläufe. Volatility ist ein in Python geschriebenes Framework, das Speicherabbilder vieler Plattformen unterstützt (Windows, Linux, macOS, Android) und sich gut für Incident Response und Malware‑Analysen eignet.
Kurzdefinition: Volatility — Open‑Source‑Framework zur statischen und forensischen Analyse von Speicherabbildern.
Inhalt und Zweck dieses Artikels
- Einführung in unterstützte Speicherformate
- Installation und erste Schritte mit Volatility
- Erkennen des richtigen Profils (imageinfo)
- Auflisten von Prozessen und Baumansicht (pslist, pstree)
- Auffinden und Extraktion verdächtiger Injektionen (malfind)
- Untersuchung von Befehlsverläufen (cmdscan)
- Erkennen von Netzwerkaktivitäten (netscan)
- Validierung extrahierter Artefakte mit Virustotal, Payload Security, Windows Defender, Malwarebytes
- Best Practices, Playbook, Checklisten und Abnahmekriterien
Unterstützte Speicherformate
Die aktuelle Volatility‑Version unterstützt unter anderem folgende Formate:
- Raw/Padded Physical Memory
- Firewire (IEEE 1394)
- Expert Witness (EWF)
- 32‑ und 64‑bit Windows Crash Dump
- 32‑ und 64‑bit Windows Hibernation
- 32‑ und 64‑bit MachO Dateien
- VirtualBox Core Dumps
- VMware Saved State (.vmss) und Snapshot (.vmsn)
- HPAK Format (FastDump)
- QEMU Speicherabbilder
Installation
Volatility ist für Windows, Linux und macOS verfügbar. Für Windows und macOS werden Standalone‑Ausführungen angeboten. Auf Ubuntu 16.04 LTS lässt sich Volatility per Paketmanager installieren:
apt-get install volatility
Vorbereitung: Integritätsprüfung
Vor Beginn der Analyse sollten Sie die Integrität des Speicherabbildes prüfen. Ein MD5‑Hash wurde für das Beispielbild berechnet:
MD5: ee043142485a83f4d49a3a7899408500
Wichtig: Hashes bestätigen nur, dass die Datei während der Übertragung nicht verändert wurde. Für gerichtsfeste Ketten sollten Sie zusätzlich Metadaten zur Erfassung, Transport und Lagerung dokumentieren.
Erste Volatility‑Schritte: Profilbestimmung
Um Volatility korrekt zu konfigurieren, bestimmen Sie zunächst die vorgeschlagenen Profile mit imageinfo:
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" imageinfo -f memdump3.raw
Die Ausgabe schlägt hier zwei mögliche Profile vor:
Win7SP0x86 , Win7SP1x86
Wählen Sie das passendste Profil (z. B. Win7SP0x86) für alle weiteren Plugins.
Prozesse identifizieren
Liste aller Prozesse im Speicherabbild:
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pslist -f memdump3.raw
Beobachtung: In der Liste treten ungewöhnliche Prozesse wie 0KqEC12.exe oder mehrfach iexplore.exe auf. Diese Namen sind verdächtig, weil sie legitime Windows‑Prozessnamen imitieren.
Baumansicht mit Parent/Child‑Beziehungen:
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pstree -f memdump3.raw
Die Baumansicht hilft, den Elterprozess verdächtiger Prozesse zu identifizieren. Ist ein legitimes Programm (z. B. explorer.exe) Parent eines verdächtigen Childs, kann das auf Code‑Injektion hindeuten.
Malfind: nach injizierten Modulen suchen und extrahieren
Das Plugin malfind durchsucht Prozesse nach verdächtigen Speicherregionen (Code‑Injektionen, EXE‑/DLL‑Artefakte) und kann Inhalte in ein Verzeichnis extrahieren.
Beispiel: PID 1120 (svchost.exe). In diesem Fall findet malfind keine DLLs:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1120 -p 1120 -f memdump3.raw
PID 1788 (rdpclip.exe) — ebenfalls keine Treffer:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1788 -p 1788 -f memdump3.raw
PID 2104 (explorer.exe) — malfind extrahiert DLLs (mögliche Injektionen):
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2104 -p 2104 -f memdump3.raw
PID 2240 (0kqEC12.exe) — auffällig, weil Name ungewöhnlich ist:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2240 -p 2240 -f memdump3.raw
Weitere Beispiele: mehrere iexplore/iexplorer Prozesse (PIDs 2840, 2364, 3728) wurden ebenfalls untersucht und gedumpt:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2840 -p 2840 -f memdump3.raw
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2364 -p 2364 -f memdump3.raw
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-3728 -p 3728 -f memdump3.raw
Hinweis: Wenn malfind Treffer liefert, extrahieren Sie die Dateien in ein isoliertes Verzeichnis und führen eine sichere Analyse in einer dedizierten Sandbox durch.
Validierung extrahierter Artefakte
Extrahierte Dateien wurden mit Windows Defender und Malwarebytes gescannt. Beide Scanner identifizierten die Proben als Trojaner:
Die Meldung beschreibt typisches Verhalten: Keylogging, Monitoring, Datendiebstahl, mögliche weitere Downloads und Codeinjektion. Die Analyse ergab, dass Code in explorer.exe injiziert wurde und die injizierten Prozesse (z. B. iexplore.exe) vom Angreifer gestartet oder missbraucht wurden.
Wichtig: Signaturerkennungen sind Indikatoren — korrelieren Sie mit Laufzeitdaten (Netzwerk, Prozesse, Befehlsverlauf), um False Positives zu minimieren.
CMD‑History aus dem Speicherabbild
Volatility kann über cmdscan (oder consscan/clipboard) Befehlsverläufe im RAM wiederherstellen:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 cmdscan -f memdump3.raw
Die Ausgabe zeigt, dass der Angreifer Befehle ausgeführt und dabei Programme wie iexplorer.exe und ieplore.exe aufgerufen hat. Eine weitere aufgefallene Zeichenkette war _lt112.spn; Online‑Recherchen zeigen Verweise auf Malware‑Analysen und Samples:
Tipp: Verwenden Sie Hashe, filenamestrings und Pe‑Merkmale, um das Sample in öffentlichen Repositories zu suchen.
Netzwerkverbindungen erkennen
Mit netscan lassen sich offene Sockets, Remote‑IP, lokale Ports und zugehörige Prozesse erkennen:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 netscan -f memdump3.raw
Beobachtung: iExplorer/iexplore‑Prozesse öffnen Verbindungen, u. a. Port 80. Das korreliert mit dem Annahmen, dass die Malware C2‑Kommunikation über HTTP nutzt.
Wann Volatility an Grenzen stößt
- Verschlüsselter oder gepackter Injektionscode im Speicher kann nicht ohne weiteres statisch entschlüsselt werden.
- Time‑of‑acquisition‑Inkonsistenzen: Snapshot‑Lücken verhindern vollständige Rekonstruktion von transienten Aktivitäten.
- Moderne Anti‑Forensik: Rootkits, Kernel‑Hooking oder Patchen von Strukturen kann Volatility‑Erkennung erschweren.
Alternative Ansätze: Kernel Debugging, Live‑Forensik (bei zugänglichem System), Hypervisor‑Level‑Snapshots, spezialisierte Tools wie Rekall.
Playbook: RAM‑Forensik mit Volatility (Kurzversion)
- Dokumentieren: Quelle, Zeitstempel, Hashes, Kette der Custody.
- Sicher kopieren: Arbeite an Kopien des Memory Dumps in isolierter Umgebung.
- imageinfo → Profil wählen.
- pslist/pstree → auffällige Prozesse markieren.
- malfind → verdächtige Prozesse extrahieren.
- cmdscan → Befehlsverläufe sichern.
- netscan → aktive Netzwerkverbindungen prüfen.
- Extrakte in Sandbox/Offline scannen (VirusTotal, Payload Security).
- Korrelation mit Logs (Proxy, Firewall, EDR) und IOC‑Mapping.
- Reporting: Timeline, Impact, TTPs, Empfehlungen.
Rollenbasierte Checkliste
Analyst:
- Prüfen, ob Profil korrekt ist.
- Prozesse priorisieren (Unbekannte, Prozesse mit Netzwerkzugang).
- Artefakte sicher extrahieren.
Responder:
- Netzwerksegmente isolieren, betroffene Hosts identifizieren.
- Indikatoren verteilen (Hashes, Domains, IPs).
Forensik‑Lead:
- Chain of custody sicherstellen.
- Freigabe von Berichten und Beweismitteln.
Ablauf bei Incident: Runbook (Kurzform)
- Schritt 1: Isolation des betroffenen Hosts (Netzwerktrennung, wenn möglich).
- Schritt 2: RAM‑Erfassung nach Standardverfahren (z. B. FTK Imager, DumpIt), Hashing.
- Schritt 3: Umsetzung Playbook (oben).
- Schritt 4: Identifikation C2, Persistenzmechanismen, Datenexfiltration.
- Schritt 5: Eradikation, Wiederherstellung, Lessons Learned.
Abnahmekriterien
- Alle relevanten Artefakte (Prozessdumps, extrahierte DLLs) abgesichert und in einer gesicherten Ablage hinterlegt.
- Ergebnisbericht enthält Timeline, betroffene Prozesse, Netzwerkkontakte und empfohlene Maßnahmen.
- Reproduzierbare Befehlsfolge (Volatility‑Befehle + Profile) dokumentiert.
Testfälle und Akzeptanzkriterien
- Testfall 1: memory dump mit bekannter Injektion → malfind muss Injektion extrahieren.
- Testfall 2: dump ohne Injektion → malfind darf keine zufälligen Dateien markieren.
- Testfall 3: cmdscan muss zuletzt ausgeführte Befehle rekonstruieren, wenn im RAM vorhanden.
Akzeptanz: Ergebnisse sind mit mindestens einem weiteren Tool (z. B. Rekall) reproduzierbar oder durch manuelle Inspektion verifizierbar.
Risikoanalyse und Gegenmaßnahmen (qualitativ)
- Risiko: False Positives bei Signature‑Scannern. Maßnahme: Korrelation mit Laufzeitdaten und manuelle Analyse.
- Risiko: Datenverlust bei unsachgemäßer Handhabung. Maßnahme: Immer mit Kopien arbeiten und Hashes nutzen.
- Risiko: Kompromittierung des Analyse‑Umfelds. Maßnahme: Analyse in isolierter VM/Sandbox, keine Netzwerkverbindungen während statischer Analyse.
Datenschutzhinweise (GDPR/DSGVO)
- Speicherabbilder können personenbezogene Daten enthalten (Passwörter, E‑Mails, Klartextdaten). Minimieren Sie Datensichtbarkeit: nur relevante Fragmente extrahieren, pseudonymisieren/verschlüsseln und Zugriffe protokollieren.
- Halten Sie rechtliche Freigaben und Aufbewahrungsfristen ein.
Mental Model: Vorgehensweise in 3 Schritten
- Erkennen: Identifiziere Auffälligkeiten in Prozessen und Netzwerk.
- Extrahieren: Dumpen und sichern verdächtiger Speicherregionen.
- Validieren: Scannen, korrelieren, kontextualisieren und handeln.
Dieses Dreistufenmodell hilft, Prioritäten zu setzen und analystische Arbeit zu strukturieren.
Alternative Tools und Kompatibilität
- Rekall: Alternative zur Analyse von RAM mit anderen Plugins/Ansätzen.
- LiME: Linux Memory Extractor (für Live‑Erfassung auf Linux).
- FTK Imager / DumpIt: Tools zur Erstellung von Speicherabbildern.
Hinweis: Volatility v2.x verwendet Profile; neuere Versionen oder Rekall haben andere Workflows. Prüfen Sie Kompatibilität vor Einsatz.
Glossar (Kurz, 1‑Zeiler)
- RAM: Flüchtiger Arbeitsspeicher eines Systems.
- Imageinfo: Volatility‑Plugin zur Profilbestimmung.
- malfind: Volatility‑Plugin zum Finden und Extrahieren von Injektionen.
- cmdscan: Plugin zur Wiederherstellung von Kommandozeilenhistorien.
- netscan: Plugin zur Auflistung im RAM vorhandener Netzwerkverbindungen.
Beispielentscheidungsbaum (Mermaid)
flowchart TD
A[Start: Speicherabbild vorhanden?] -->|Nein| B[Erfassen nach Standard]
A -->|Ja| C[imageinfo ausführen]
C --> D{Profil gefunden}
D -->|Nein| E[Versuche alternative Profile]
D -->|Ja| F[pslist & pstree]
F --> G{Verdächtige Prozesse?}
G -->|Nein| H[Abschluss: geringes Risiko]
G -->|Ja| I[malfind & netscan]
I --> J{Artefakte extrahiert}
J -->|Ja| K[Sandbox‑Analyse + Scans]
J -->|Nein| L[Manuelle Inspektion / Rekall]
K --> M[Reporting & Eradikation]
L --> M
Reporting: Was gehört in den Abschlussbericht
- Kurzbeschreibung des Vorfalls und Scope
- Hashes und Metadaten des Images
- Liste verdächtiger Prozesse, PIDs, Parent/Child‑Beziehungen
- Extrahierte Dateien mit Hashes
- Netzwerkkontakte und vermutete C2‑Verbindungen
- Verwendete Tools, Versionen und Befehle
- Empfohlene Maßnahmen (Containment, Eradikation, Patchen, Monitoring)
Kurze Ankündigungsversion (100–200 Wörter)
Volatility ist ein leistungsfähiges Open‑Source‑Framework zur Analyse von RAM‑Speicherabbildern. In diesem Leitfaden zeigen wir Schritt für Schritt, wie Sie mit Volatility das richtige Profil bestimmen, laufende Prozesse identifizieren, verdächtige Injektionen mit malfind extrahieren, Befehlsverläufe mit cmdscan auslesen und Netzwerkverbindungen mit netscan rekonstruieren. Extrahierte Artefakte lassen sich in Sandboxes und mit Signatur‑Scannern validieren. Ergänzt wird die technische Anleitung durch Playbooks, rollenbasierte Checklisten, einen Entscheidungsbaum und Hinweise zur datenschutzrechtlichen Behandlung von Speicherabbildern. Ziel ist es, Forensikern und Incident Respondern reproduzierbare, sichere Arbeitsabläufe für die RAM‑Forensik zur Verfügung zu stellen.
Zusammenfassung
- Volatility bietet breitgefächerte Plugins für Memory Forensics.
- Profilbestimmung ist die Grundlage jeder Analyse.
- malfind + netscan + cmdscan liefern zusammen ein aussagekräftiges Bild.
- Artefakte immer in isolierter Umgebung analysieren und mit mehreren Quellen validieren.
Wichtig: Dokumentation, Reproduzierbarkeit und Datenschutz sind ebenso wichtig wie technische Analyse.
Referenzen
Ähnliche Materialien

Apache Tomcat Monitoring: Counter & Ereignisregeln

Clickjacking: erkennen und verhindern

Mehrere Android‑Hintergründe pro Homescreen einrichten

Datenbroker entfernen: Anleitung & Dienste

Verschiedene Hintergrundbilder pro Android‑Homescreen
