Malware-Analyse — kanonische Referenz.
Triage-Workflow, Packer-Erkennung, behaviorales Exploit-Profil, RAT-Familien-Verhaltens-Referenz und das Template zur Dokumentation einer nachhaltigen Adversary-Gruppe.
Triage-Pipeline
- Hash & Reputation. SHA-256 gegen VirusTotal, MalwareBazaar, Hybrid Analysis. Bekanntes Sample = existierende Analyse als Startpunkt nutzen.
- Static-Features. Filetype, Sections, Imports, Strings, Certs, Resources, Overlay. Extrahieren mit
pestudio,capa,floss. - capa-Regeln. Mappt Code-Patterns auf MITRE-ATT&CK-Techniques. Schnelle Capability-Inventur ohne Ausführung.
- Sandbox-Detonation. Cuckoo / Cape / Hatching Triage. Captures Netzwerk, Filesystem, Registry, Process-Tree.
- Manuelles Gate. Auto-Analyse-Konfidenz niedrig (schwere Obfuskation, Anti-VM, Custom-Packer) → zu manuellem Reverse-Engineering eskalieren.
Packer-Erkennung + Unpacking
- UPX. Section-Namen
UPX0,UPX1.upx -dentpackt. Häufigstes, einfachstes. - Themida / VMProtect. Detected by Detect-It-Easy. Virtualisierungs-basiert: schreibt Code in Custom-Bytecode um, der zur Runtime interpretiert wird. Wochen manueller Arbeit.
- ASPack, PECompact, MPRESS. Ältere kommerzielle Packer. Generischer Unpacker (
UnpacMe,de4dotfür .NET) handled oft. - Custom-Packer. Keine Vendor-Signatur; Entry-Point-Stub allokiert RWX, entschlüsselt, JMP in entschlüsselten Code. Hardware-Breakpoint auf OEP-Kandidaten nach langer Decryption-Loop setzen.
- Generischer Unpacking-Flow. Tracen bis VirtualAlloc + WriteProcessMemory + Control-Transfer (CALL, JMP) in die neue Region. Das ist OEP. Aus Memory dumpen, IAT mit
Scyllafixen, PE rekonstruieren.
Verhaltensprofil getrennt vom Payload
- Exploit-Stage-Verhalten. Prozess gespawnt (oft ungewöhnlich: WINWORD spawnt powershell), File in %TEMP% geschrieben, Registry-Mutation in Run/RunOnce, Netzwerk-Beacon zu nie zuvor gesehenem Host.
- Payload-Stage-Verhalten (familienspezifisch). Credential-Dump (LSASS-Access), Keylogger (Low-Level-Hook-Install), Persistenz (Scheduled-Task erstellt), C2 (DNS- oder HTTPS-Beacon).
- Warum trennen. Eine Detektion auf Exploit-Stage-Verhalten fängt die gesamte Population; Per-Payload-Detektion skaliert linear mit Familien.
RAT-Generationen
- Gen 1 (2000er). PoisonIvy, Sub7, Bifrost. GUI-getrieben, direkter TCP-C2, keine Verschlüsselung. Heute trivial detektiert.
- Gen 2 (frühe 2010er). Gh0st, DarkComet, njRAT. Custom-Protokolle, Basic-Obfuskation, modulare Plugins.
- Gen 3 (Mitte 2010er). AsyncRAT, NanoCore. HTTPS-C2, einfache Anti-Analyse, Builder-getrieben mit vielen Derivaten.
- Gen 4 (späte 2010er an). Cobalt Strike, Sliver, Mythic, Brute Ratel. Operator-Framework, Beacon-Protokolle stealth-optimiert (Jitter, Sleep-Mask, Domain-Fronting), modulares Post-Ex.
- Gen 5 (aktuell). Custom-Toolchains von sophisticated Actors. Memory-only Payloads, EDR-Evasion eingebaut (Direct-Syscalls, Indirect-Syscalls, AMSI-Patches, ETW-Patches). Oft Single-Use pro Intrusion.
APT-Group-Template — neuen Actor hinzufügen
- Tooling. Custom-Malware-Familien, Public-Tooling-Präferenzen, Exploit-Kit-Wahlen.
- Infrastruktur. Hosting-Muster (Bulletproof, Cloud, kompromittiert), Domain-Registrations-Gewohnheiten, Certificate-Muster.
- Victimology. Anvisierte Sektoren, geographisches Targeting, Victim-Auswahlkriterien (opportunistisch vs strategisch).
- Konfidenz. Pro Claim: primäre Beobachtung / öffentlicher Report / inferred. Was dein Team beobachtet hat von dem trennen, was die breitere Community publiziert hat.
FaustregelDamit automatisierte Triage im Scale nützlich ist, muss der Workflow "Low Confidence, eskalieren" sauber aufdecken. Eine Pipeline, die binär "benign/malicious" ausgibt, verpasst den Bucket, in dem der meiste Analyst-Wert lebt — das "interessante, näher anschauen"-Sample.
Von der Referenz zum Befund