CommunityRecherche & Datenanalysegithub.com

guelfoweb/malware-analysis-static

Codex-Kompetenz für die statische Analyse verdächtiger Binärdateien.

Was ist malware-analysis-static?

Dieses SKILL.md beschreibt eine umfassende Kompetenz zur statischen Malware-Analyse für KI-Codex-Agenten (z. B. Codex CLI). Es erlaubt dem Agenten, Windows-PE-, ELF-, Mach-O-, Android-APK-Dateien sowie Office-Dokumente, Web-Payloads und Skripte sicher zu analysieren, ohne dass eine dynamische Ausführung auf dem Hostsystem erforderlich ist. Der Agent führt Triage, String-Extraktion, Disassemblierung, YARA-Regeln, Enkodierung/Entschlüsselung und Rekonstruktion der Infektionskette durch. Der Schwerpunkt liegt auf autonomem, schrittweisem Fortschritt ohne unnötige Unterbrechungen, wobei auf Werkzeuge wie file, strings, Python3, YARA, Ghidra, Floss, ILSpy und viele mehr zurückgegriffen wird. Fehlende Werkzeuge werden dem Benutzer zur Installation vorgeschlagen, und die Ergebnisse werden in AGENTS.md und REPORT.md sowie einem strukturierten Fallordner (case/) gespeichert, um eine vollständige Nachvollziehbarkeit zu gewährleisten.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add guelfoweb/malware-analysis-static

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Malware-Analyse

Zeigen Sie diesen Warnhinweis vor Beginn der Analyse an:

Warnung: Die Malware-Analyse sollte auf einer isolierten Labor-Maschine oder einer Wegwerf-VM durchgeführt werden, nicht auf einem persönlichen oder Produktions-Arbeitsplatzrechner.

Versionsverwaltung und Update-Prüfung

Diese Kompetenz verwendet eine explizite Versionierung.

Startverhalten:

  1. Lesen Sie die lokale Kompetenzversion aus dem Frontmatter aus.
  2. Wenn Netzwerkzugriff verfügbar ist und der Benutzer die Netzwerknutzung nicht untersagt hat, rufen Sie die entfernte SKILL.md ab von:
    • https://raw.githubusercontent.com/guelfoweb/malware-analysis-static/main/SKILL.md
  3. Lesen Sie das entfernte version-Feld aus dem Frontmatter und vergleichen Sie es mit der lokalen Version.
  4. Wenn die installierte Kompetenz veraltet ist, teilen Sie dem Benutzer klar mit, dass eine neuere Version existiert, und fragen Sie, ob er die Kompetenz vor dem Fortfahren aktualisieren möchte.
  5. Wenn der Benutzer das Update ablehnt, setzen Sie die Analyse mit der aktuellen lokalen Version fort.
  6. Wenn die entfernte Datei nicht verfügbar ist oder das Frontmatter nicht geparst werden kann, fahren Sie normal fort und protokollieren Sie, dass die Update-Prüfung nicht abgeschlossen werden konnte.

Regeln:

  • Blockieren Sie die Analyse nicht, wenn die Update-Prüfung fehlschlägt.
  • Führen Sie kein automatisches Update im Hintergrund durch.
  • Fragen Sie den Benutzer nur nach einem Update, wenn tatsächlich eine neuere Version verfügbar ist.
  • Wenn die Versionen übereinstimmen, fahren Sie fort, ohne unnötige Update-Kommentare zu liefern.

Anwendungsbereich

Verwenden Sie diese Kompetenz für:

  • Windows PE-Binärdateien, DLLs und .NET-Assemblys
  • Linux ELF-Binärdateien
  • macOS Mach-O-Binärdateien
  • Android APKs
  • Office-Dokumente
  • Web-Payloads wie HTML, HTM, MHTML, SVG, XML und XSL mit eingebetteten Skripten oder Smuggling-Logik
  • Skript- und Quell-Payloads wie JS, JSE, VBS, VBE, VBA, HTA, WSF, WSH, PowerShell, BAT, CMD, Shell-Skripte, Python, PHP, Perl, Ruby, Lua, AutoIt, Node.js-Loader, Webshells und Downloader-Ketten

Der primäre Modus ist die statische Analyse. Wenn der Benutzer explizit eine dynamische Analyse anfordert, bereiten Sie nur ein isoliertes, wegwerfbares Labor vor oder verwenden Sie ein solches. Führen Sie niemals Malware auf einem persönlichen Arbeitsplatzrechner, Produktionssystem oder Host-Betriebssystem aus, das echte Anmeldeinformationen oder Benutzerdaten enthält.

Ziele

Versuchen Sie für jeden Fall Folgendes zu ermitteln:

  • Dateityp und Architektur
  • MD5, SHA1 und SHA256
  • Wahrscheinliche Malware-Familie, Cluster oder Toolkit, sofern durch Beweise gestützt
  • C2-Infrastruktur
  • Drop-URLs und Stage-URLs
  • Konfigurations-Endpunkte und eingebettete Konfiguration
  • Persistenz- und Anti-Analyse-Verhalten
  • Eingebettete, abgelegte oder heruntergeladene Stufen
  • Methoden der Verschleierung, Verpackung, Kodierung, Komprimierung und Verschlüsselung
  • Logik zur Dekodierung, Entschlüsselung, Entpackung und Staging

Geben Sie Unsicherheiten explizit an. Machen Sie keine unbelegten Behauptungen.

Reverse-Engineering-Auftrag

Führen Sie echtes Malware-Reverse-Engineering durch, nicht nur IOC-Suche.

Autonomieregel:

  • Fahren Sie automatisch mit dem nächsten vernünftigen Analyseschritt fort, wenn dieser innerhalb des autorisierten Umfangs liegt, die verfügbaren Werkzeuge dies zulassen und der Kontext labsicher ist.
  • Halten Sie nicht an, um den Benutzer zu fragen, ob er mit der nächsten offensichtlichen Analyseaktion fortfahren soll.
  • Fragen Sie den Benutzer nicht, ob er zwischen gleichwertigen nächsten Analyseschritten wählen möchte, wenn einer sofort ausprobiert werden kann.
  • Wenn der Fernabruf nicht bereits autorisiert ist, fahren Sie automatisch mit der tiefstmöglichen Offline-Analyse fort, anstatt den Abruf als Option anzubieten.
  • Bevorzugen Sie standardmäßig die Offline-Fortsetzung, wenn für den Fernabruf eine zusätzliche Autorisierung erforderlich wäre.
  • Unterbrechen Sie den Ablauf nur, um den Benutzer zu fragen, wenn eine echte Entscheidung erforderlich ist:
    • Ein fehlendes Werkzeug muss installiert werden.
    • Ein Netzwerkabruf oder ein Ausführungsschritt würde den bereits autorisierten Umfang überschreiten.
    • Die nächste Aktion stellt eine bedeutende Sicherheits- oder Kostenentscheidung dar.
    • Der Fortschritt wird durch eine ungelöste externe Abhängigkeit blockiert.

Beispiele für Aktionen, die automatisch durchgeführt werden sollten:

  • Den nächsten verdächtigen Stream, das nächste Objekt, die nächste Ressource, das nächste Makro, den nächsten Skriptblock oder den nächsten Overlay parsen.
  • Die nächste Stufe wiederherstellen und analysieren, wenn eine Drop-URL oder Stage-URL bereits im Umfang ist.
  • Kreuzverweisen (xrefs) von verdächtigen Zeichenfolgen in den Code folgen.
  • Den nächsten Datenblock dekodieren, wenn der übergeordnete Code den Decoder klar definiert.
  • Das nächste relevante Artefakt in der Ausführungs- oder Kompromisskette untersuchen.

Wenn beides verfügbar ist:

  • Tiefere Offline-Analyse oder Reverse-Engineering von bereits verfügbaren Artefakten
  • Fernabruf, der noch nicht explizit autorisiert ist

Codex muss automatisch den Offline-Pfad wählen und ohne Nachfrage weiterarbeiten.

Erforderliche Denkweise:

  • Verfolgen Sie den Kontrollfluss und Datenfluss, wenn Zeichenfolgen nicht ausreichen.
  • Wechseln Sie von der Triage zum tieferen Reverse-Engineering, wenn die interessante Logik verborgen ist.
  • Untersuchen Sie Importe, Querverweise, Ressourcen, Overlays, Konfigurationsblobs und Dekodierroutinen.
  • Rekonstruieren Sie nach Möglichkeit die Logik für Dekodierung, Entschlüsselung, Dekomprimierung und Staging.
  • Verwenden Sie bei Bedarf Disassemblierung, Dekompilierung, Headless-Reverse-Engineering-Tools und kleine Hilfsskripte.
  • Bewahren Sie alle wichtigen Ergebnisse in Beweissicherungsdateien, AGENTS.md und REPORT.md auf.

Halten Sie nicht beim ersten Hindernis an. Wenn eine Methode fehlschlägt:

  1. Versuchen Sie ein gleichwertiges Werkzeug.
  2. Versuchen Sie eine Ansicht auf niedrigerer Ebene, z. B. Disassemblierung, Abschnitte, Ressourcen, rohe Blobs oder Metadaten.
  3. Versuchen Sie einen anderen Extraktions- oder Dekodierungsansatz.
  4. Dokumentieren Sie, was fehlgeschlagen ist, warum es fehlgeschlagen ist und was versucht wurde.
  5. Fahren Sie fort, bis das verbleibende Hindernis real und klar erklärt ist.

Beispiele für gültige Eskalationen:

  • Zeichenfolgen -> dekodierte Zeichenfolgen -> Querverweise -> Disassemblierung -> Dekompilierung
  • Manifest-Prüfung -> dekompilierter Code -> Smali -> Inspektion nativer Bibliotheken
  • Makro-Extraktion -> Skript-Rekonstruktion -> Decoder-Emulation -> Stufen-Extraktion
  • PE-Metadaten -> Importe -> Konfigurationsblob-Freilegung -> Ghidra-Headless-Analyse

Halten Sie nur an, wenn:

  • Der angeforderte Umfang abgeschlossen ist.
  • Das verbleibende Hindernis mit den verfügbaren Werkzeugen und Berechtigungen nicht gelöst werden kann.
  • Weiterer Fortschritt eine Ausführung erfordern würde, die der Benutzer nicht autorisiert hat.

Richtlinie zur Werkzeugerkennung und -installation

Diese Kompetenz muss als einzelne SKILL.md funktionieren. Gehen Sie nicht davon aus, dass sich Hilfsskripte daneben befinden.

Vor der Analyse:

  1. Erkennen Sie das Betriebssystem und die Shell-Umgebung.
  2. Erkennen Sie verfügbare Werkzeuge dynamisch.
  3. Wählen Sie das beste verfügbare Werkzeug für jede Aufgabe.
  4. Verwenden Sie einen Fallback, wenn das bevorzugte Werkzeug fehlt.
  5. Fragen Sie den Benutzer, bevor Sie ein fehlendes Werkzeug installieren.
  6. Installieren Sie Werkzeuge nicht im Hintergrund.
  7. Verwenden Sie nach der Autorisierung den nativen Paketmanager oder den direktesten offiziellen Installationspfad.

Beispielhafte Werkzeugprüfung nach Proben-Typ:

  • Nach der Identifizierung des Probentyps überprüfen Sie die für diesen spezifischen Analysepfad erforderlichen Werkzeuge, bevor die Tiefenanalyse beginnt.
  • Überprüfen Sie nur die Werkzeuge, die für den aktuellen Probentyp relevant sind, nicht die gesamte globale Werkzeugliste.
  • Wenn ein obligatorisches Werkzeug oder eine Fähigkeit für diesen Probentyp fehlt, fragen Sie den Benutzer, ob er es installieren möchte, bevor Sie fortfahren.
  • Wenn ein gültiger Fallback existiert, verwenden Sie den Fallback und protokollieren Sie die Einschränkung.
  • Wenn nur dringend empfohlene Werkzeuge fehlen, fahren Sie fort, es sei denn, die fehlende Fähigkeit blockiert einen konkreten Schritt.
  • Unterbrechen Sie den Workflow nicht, um irrelevante Werkzeuge zu installieren, die nichts mit dem aktuellen Probentyp zu tun haben.

Typische Erkennungsbefehle:

uname -s
command -v file strings rg python3 node php perl bash sh pwsh yara objdump readelf nm otool lipo r2 rabin2 jadx apktool aapt2 floss xorsearch ilspycmd monodis oleid olevba oledump.py exiftool binwalk 7z upx analyzeHeadless xmllint xxd base64 iconv
python3 -c "import pefile, lief" 2>/dev/null
$PSVersionTable.PSVersion
Get-Command file,strings,rg,python,py,node,php,perl,pwsh,yara,objdump,llvm-objdump,dumpbin,r2,rabin2,jadx,apktool,aapt2,floss,xorsearch,ilspycmd,monodis,oleid,olevba,oledump.py,exiftool,7z,analyzeHeadless,xmllint -ErrorAction SilentlyContinue
py -c "import pefile, lief" 2>$null

Kernwerkzeuge:

  • file
  • sha256sum oder Äquivalent
  • strings
  • ripgrep (rg)
  • python3 oder py
  • xxd
  • base64
  • yara
  • objdump
  • nm
  • exiftool
  • 7z

Wichtige spezialisierte Werkzeuge:

  • Android: jadx CLI, apktool, aapt2, strings, ripgrep (rg), yara, optional floss, bundletool, apkanalyzer
  • PE/.NET: strings, yara, floss, xorsearch, radare2 (r2), rabin2, ilspycmd, monodis, pefile, lief, optional Ghidra headless mit analyzeHeadless, capa, upx, sigcheck
  • Office/Skript: oletools (oleid, olevba), oledump.py, unzip, zipinfo, strings, ripgrep (rg), sed, awk, tr, optional CyberChef CLI, rtfobj
  • ELF/Mach-O: objdump, readelf, nm, otool, lipo, binwalk, radare2 (r2), rabin2, optional Ghidra headless mit analyzeHeadless
  • Web/Skript/Quelle: strings, ripgrep (rg), sed, awk, tr, xxd, base64, iconv, xmllint, python3, optional node, php, perl, pwsh, CyberChef CLI, Beautifier oder AST-Parser

Interpreter und Laufzeitumgebungen dürfen nur für sicheres Textparsing, AST-Extraktion, Verschönerung oder die Neuimplementierung eines Decoders auf inerten Daten verwendet werden. Führen Sie die bösartige Probe nicht unverändert mit node, php, perl, pwsh, python, bash oder anderen Laufzeitumgebungen aus.

Installationsbeispiele, nur nach Autorisierung durch den Benutzer:

# Linux
sudo apt-get update
sudo apt-get install -y file binutils unzip p7zip-full yara apktool aapt default-jre mono-utils exiftool binwalk upx-ucl
python3 -m pip install --user flare-floss oletools oledump pefile lief capa
dotnet tool install --global ilspycmd
# macOS
brew update
brew install binutils p7zip yara apktool openjdk python dotnet exiftool binwalk upx
pip3 install --user flare-floss oletools oledump pefile lief capa
dotnet tool install --global ilspycmd
# Windows
winget install --id Python.Python.3.12 --accept-source-agreements --accept-package-agreements
winget install --id OpenJS.NodeJS --accept-source-agreements --accept-package-agreements
winget install --id Microsoft.DotNet.SDK.8 --accept-source-agreements --accept-package-agreements
winget install --id OpenJDK.OpenJDK.17 --accept-source-agreements --accept-package-agreements
winget install --id Microsoft.Sysinternals --accept-source-agreements --accept-package-agreements
winget install --id YARA.YARA --accept-source-agreements --accept-package-agreements
winget install --id OliverBetz.ExifTool --accept-source-agreements --accept-package-agreements
py -m pip install --user flare-floss oletools oledump pefile lief capa
dotnet tool install --global ilspycmd

Für Ghidra headless laden Sie die offizielle Version herunter und machen Sie support/analyzeHeadless oder support\analyzeHeadless.bat in PATH verfügbar.

Erforderlicher Werkzeugsatz

Verwenden Sie diese Ebenen, um zu entscheiden, ob die Umgebung für eine vollständige Analyse ausreicht.

Obligatorisch

Dies sind die Werkzeuge oder Fähigkeiten, die für einen soliden End-to-End-Workflow über die wichtigsten Probentypen hinweg erwartet werden:

  • file
  • sha256sum oder äquivalente Hash-Werkzeuge
  • strings
  • ripgrep (rg)
  • python3 oder py
  • yara
  • 7z
  • objdump
  • nm
  • exiftool
  • jadx
  • apktool
  • aapt2
  • floss
  • xorsearch
  • radare2 (r2)
  • rabin2
  • Ghidra headless mit analyzeHeadless
  • ilspycmd
  • monodis
  • oletools (oleid, olevba)
  • oledump.py
  • Python-Module pefile, lief

Dringend empfohlen

Diese sind nicht in jedem Fall obligatorisch, aber ein vollständiger Malware-Analysten-Workflow wird regelmäßig von ihnen profitieren:

  • readelf
  • binwalk
  • unzip
  • zipinfo
  • xxd
  • base64
  • sed
  • awk
  • tr
  • xmllint
  • iconv
  • otool und lipo auf macOS
  • bundletool
  • apkanalyzer
  • rtfobj
  • CyberChef CLI

Optional oder situationsabhängig

Diese sind für bestimmte Formate, Familien oder Analystenpräferenzen nützlich:

  • capa
  • upx
  • sigcheck
  • node
  • php
  • perl
  • pwsh
  • Beautifier oder AST-Parser für skriptlastige Fälle

Interpretationsregel:

  • Wenn ein obligatorisches Werkzeug oder eine Fähigkeit fehlt, kann die Analyse dennoch fortgesetzt werden, aber Codex muss mitteilen, dass die Umgebung eingeschränkt ist, und den besten Fallback verwenden.
  • Wenn ein dringend empfohlenes Werkzeug fehlt, fahren Sie normal fort, es sei denn, die fehlende Fähigkeit blockiert einen bestimmten Schritt.
  • Wenn ein optionales Werkzeug fehlt, erwähnen Sie es nur, wenn es den aktuellen Fall wesentlich verbessern würde.

Fallbezogene Dateien

Verwalten Sie immer zwei Dateien im Fallverzeichnis:

  • AGENTS.md: Arbeitsgedächtnis
  • REPORT.md: Analyseinützlicher Abschlussbericht, der während der Arbeit aktualisiert wird

AGENTS.md

Erstellen oder lesen Sie AGENTS.md vor der eigentlichen Arbeit. Aktualisieren Sie es nach jeder sinnvollen Aktion oder Erkenntnis.

Verwenden Sie es zur Aufbewahrung von:

  • Aktuelle Probe und aktueller Status
  • Werkzeugverfügbarkeit und Fallback-Entscheidungen
  • Bestätigte Erkenntnisse und deren Herkunft
  • Extrahierte Stufen und Eltern-Kind-Beziehungen
  • Hinweise zu Decodern oder Entschlüsselung
  • Status der Familienzuordnung
  • Hindernisse, offene Fragen und nächste Aktionen

Empfohlene Abschnitte:

  • Current Summary (Aktuelle Zusammenfassung)
  • Sample Inventory (Probeninventar)
  • Environment And Tooling (Umgebung und Werkzeuge)
  • Timeline (Zeitstrahl)
  • Confirmed Findings (Bestätigte Erkenntnisse)
  • Decoders And Algorithms (Decoder und Algorithmen)
  • Family Attribution (Familienzuordnung)
  • Evidence Index (Beweisindex)
  • Open Questions (Offene Fragen)
  • Next Actions (Nächste Aktionen)
  • Final Assessment (Abschließende Bewertung)

REPORT.md

Erstellen Sie REPORT.md während der Analyse, nicht erst am Ende. Aktualisieren Sie dieselbe Datei, wenn die Arbeit fortgesetzt wird.

REPORT.md muss klar, einfach und leicht zu konsultieren bleiben. Es ist die saubere Zusammenfassung; AGENTS.md ist das Arbeitsgedächtnis.

REPORT.md muss enthalten:

  • Fallzusammenfassung
  • Probeninventar
  • Geordnete Ausführungs- oder Kompromisskette
  • Details pro Stufe mit:
    • Dateiname oder Bezeichnung
    • MD5
    • SHA1
    • SHA256
    • Dateityp
    • Quelle oder übergeordnete Stufe
    • Rolle in der Kette
  • Indikatoren, unterteilt in:
    • Drop-URLs
    • Stage-URLs
    • C2-URLs
    • Domains
    • IP-Adressen
  • Logik zur Dekodierung, Entschlüsselung, Entpackung oder zum Staging
  • Erkenntnisse zu Persistenz und Anti-Analyse
  • Bewertung der Malware-Familie
  • Vertrauenswürdigkeit und Einschränkungen

Wenn die Kette nicht vollständig rekonstruiert werden kann, geben Sie an, wo und warum sie abbricht.

Beweissicherung

Erstellen Sie immer ein Fallverzeichnis und bewahren Sie Beweise auf, selbst wenn die Anfrage auf die IOC-Extraktion beschränkt zu sein scheint.

Empfohlenes Layout:

  • case/AGENTS.md
  • case/REPORT.md
  • case/00-intake/
  • case/01-triage/
  • case/02-strings/
  • case/03-static/
  • case/04-decoding/
  • case/05-config/
  • case/06-extracted/
  • case/07-stages/
  • case/08-yara/
  • case/09-reports/
  • case/10-iocs/
  • case/11-notes/

Erstellen Sie es bei Bedarf manuell:

mkdir -p case/{00-intake,01-triage,02-strings,03-static,04-decoding,05-config,06-extracted,07-stages,08-yara,09-reports,10-iocs,11-notes}

...

Verwandte Skills