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.
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
| Format | Wofür |
|---|---|
| CSV | Tabellen, schnelles Filtern; Typ, Wert, entschärfter Wert, Quelle, Offset, Datei und Datei-Hash pro Zeile |
| Entschärfte Textliste | Berichte 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-Bundle | TIPs 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.