Skip to content

Von der PE-Datei zu IOCs: MISP, STIX 2.1 und YARA-Entwurf

Kompromittierungsindikatoren aus Windows-Executables extrahieren, entschärfen, Rauschen filtern und als CSV, MISP-Event, STIX-2.1-Bundle oder YARA-Regel exportieren.

Veröffentlicht am 4 Min. Lesezeit

Kurz gesagt. Strings, dekodierte Konfigurationen und emulierter Code liefern Indikatoren — URLs, Domains, IPs, Registry-Schlüssel, Mutexe, Named Pipes, Hashes. Der PE Parser sammelt sie im Tab IOCs, blendet übliches Rauschen aus und exportiert sie als CSV, entschärfte Liste, MISP-Event oder STIX-2.1-Bundle, für eine Datei oder einen ganzen Stapel. Er kann außerdem eine YARA-Regel aus den markantesten Strings der Datei entwerfen.

Woher die Indikatoren kommen

  • Statische Strings, ASCII und UTF-16, plus aus Base64 dekodierter Text.
  • Dekodierte Malware-Konfigurationen: C2-Server, User-Agents, Named Pipes und Mutexe aus Cobalt-Strike-Beacons und einigen RAT-Familien (eine Beacon-Konfiguration lesen).
  • Per Emulation aus dem Code gewonnene Strings — Stack-Strings und dekodierte Strings, die eine einfache Suche nicht sieht (Stack-Strings).
  • Die Datei selbst: MD5, SHA-1, SHA-256, der Imphash und der PDB-Pfad.

Was extrahiert und was gefiltert wird

Der Tab gruppiert die Indikatoren nach Typ: C2 (Host:Port), URL, Domain, IPv4, Onion-Adresse, E-Mail, User-Agent, Registry-Schlüssel, Pfad, Named Pipe, Mutex, PDB, Krypto-Wallets (Bitcoin, Ethereum, Monero) und Hashes.

Binaries stecken voller Text, der wie ein Indikator aussieht, aber keiner ist. Einige Regeln halten die Liste nützlich:

  • Domains brauchen eine echte Top-Level-Domain und fallen weg, wenn sie wie ein .NET-Namespace (System.IO, Newtonsoft.Json) oder ein Dateiname (readme.md, setup.py) aussehen.
  • IP-Adressen, die wie Versionsnummern aussehen (6.0.0.0, 1.2.3.4), fallen weg.
  • Bekannte Infrastruktur — Zertifizierungsstellen (CRL- und OCSP-URLs in signierten Dateien), XML-Schemas, Microsoft — sowie private und Loopback-Adressen bleiben erhalten, sind aber hinter dem Kästchen Bekannte anzeigen versteckt.

Jeder Indikator zeigt, wo er gefunden wurde; ein Klick auf den Offset zeigt die Bytes in der Hex-Ansicht.

Entschärfen

Indikatoren werden standardmäßig entschärft angezeigt — hxxps[://]evil[.]example/gate, 10[.]0[.]0[.]1, user[@]example[.]com —, damit ein Bericht oder eine Nachricht nicht zum versehentlichen Klick oder DNS-Lookup wird. Deaktivieren Sie Entschärfen, um die Rohwerte zu sehen. Die entschärfte Textliste ist für Menschen gedacht; CSV-, MISP- und STIX-Export tragen die Originalwerte (die CSV enthält beide).

Exportieren

FormatWofür
CSVTabellen, schnelles Filtern; Typ, Wert, entschärfter Wert, Quelle, Offset, Datei und Datei-Hash pro Zeile
Entschärfte TextlisteBerichte und Tickets
MISP-Event (JSON)Import in MISP: ein Attribut pro Indikator mit MISP-Typ und -Kategorie; to_ids gesetzt für Netzwerkindikatoren und Hashes, nicht für Pfade
STIX-2.1-BundleTIPs und SIEMs mit STIX-Unterstützung: ein Indicator-Objekt pro IOC mit STIX-Muster ([domain-name:value = '…'], [file:hashes.'SHA-256' = '…'], [network-traffic:…])

Aus dem Tab IOCs einer Datei exportieren Sie diese Datei; über das Menü Exportieren in der Werkzeugleiste den ganzen Stapel (oder den aktuellen Zeitraum), bereits gelaufene Code-Analysen eingeschlossen.

In MISP vor dem Veröffentlichen prüfen: Das Event wird unveröffentlicht angelegt, und als bekannt Markiertes bleibt draußen, sofern Sie es nicht eingeblendet haben.

Ein YARA-Entwurf aus denselben Belegen

YARA-Regel entwerfen baut eine Regel aus der Datei:

  • zuerst die markantesten Strings — C2-Werte, URLs, PDB-Pfad, Mutexe, Pipes —, dann langer, spezifischer Text, ohne API-Namen, Meldungen der Compiler-Runtime und Strings aus komprimierten Daten;
  • eine Bedingung, die einen MZ-Header, eine Größengrenze und entweder zwei starke Strings, einen Teil der schwächeren oder den Imphash der Datei verlangt;
  • einen meta-Block mit SHA-256 und Datum.

Die Regel öffnet sich im YARA-Panel, wo Sie sie auf alle geladenen Dateien zugleich anwenden: Trifft sie die anderen Samples der Familie, und nur diese? Anpassen, erneut ausführen, Ergebnis in den eigenen Regelsatz übernehmen. Es ist ein Entwurf — es geht darum, mit den richtigen Strings zu beginnen, nicht darum, das Testen zu überspringen.

Grenzen

  • Textabgleich. Ein Indikator ist etwas, das die Datei enthält, nicht etwas, das sie genutzt hat. Eine URL in einem Hilfetext bleibt eine URL.
  • Hashes neu aufgebauter Dateien. Vom Tool entpackte Dateien werden neu aufgebaut; ihre Hashes entsprechen keiner Datei, die je auf der Festplatte lag, und sollten nicht als Datei-IOCs geteilt werden.
  • Versteckte Strings bleiben versteckt, solange die Code-Analyse sie nicht zurückgewinnt oder die Datei nicht zuerst entpackt wird.

Zusammen mit der Stapelansicht wird so aus einem Ordner verdächtiger Executables in Minuten ein geprüfter IOC-Satz — ohne eine einzige Datei hochzuladen.