Statische Analyse
Statische Analyse
Bei der statischen Analyse wird Malware untersucht, ohne sie auszuführen.
Das ist oft der erste Schritt, weil dadurch erste Hinweise gewonnen werden können, ohne das Risiko einer Ausführung einzugehen.
Ziele
Statische Analyse hilft bei:
- Identifikation einer Datei
- Erkennen bekannter Malware
- Finden verdächtiger Strings
- Analyse von PE-Struktur
- Erkennen von Imports und Abhängigkeiten
- Einschätzung von Packer- oder Obfuscation-Techniken
- Vorbereitung einer dynamischen Analyse
Hashing
Hashwerte dienen zur Identifikation und zum Vergleich von Samples.
Typische Hashes:
- MD5
- SHA1
- SHA256
SHA256 wird heute oft bevorzugt, weil ältere Hashfunktionen wie MD5 und SHA1 kollisionsanfällig sind.
Hashwerte beantworten:
- Ist die Datei identisch mit einer bekannten Datei?
- Wurde das Sample verändert?
- Gibt es öffentliche Informationen zu diesem Hash?
PE-Dateianalyse
Bei Windows-Dateien werden PE-Informationen untersucht:
- Architektur
- Entry Point
- Sektionen
- Importe
- Exporte
- Abhängigkeiten
- Ressourcen
- Sektionsentropie
Verdächtig können ungewöhnliche Sektionsnamen, sehr hohe Entropie oder versteckte Imports sein.
Strings-Analyse
Strings sind lesbare Zeichenketten in einer Datei.
Sie können Hinweise geben auf:
- URLs
- IP-Adressen
- Dateipfade
- Registry-Schlüssel
- Kommandos
- Fehlermeldungen
- Benutzernamen
- Passwörter oder Tokens
Strings können sehr hilfreich sein, aber auch bewusst irreführend platziert werden.
Disassembler
Ein Disassembler wandelt Maschinencode in Assembly um.
Das Ergebnis ist oft schwer lesbar, weil fehlen:
- Kommentare
- Variablennamen
- ursprüngliche Funktionsnamen
- Typinformationen
- Entwicklungsstruktur
Trotzdem ist Disassembly zentral, wenn man den tatsächlichen Codefluss verstehen will.
Decompiler
Ein Decompiler versucht, aus Maschinencode wieder Hochsprachencode zu rekonstruieren.
Das Ergebnis ist selten perfekt, kann aber helfen:
- Kontrollstrukturen besser zu erkennen
- Funktionslogik grob zu verstehen
- komplexe Assembly-Abschnitte schneller einzuordnen
Bei Bytecode- oder Laufzeitumgebungen wie Java oder .NET können Decompiler besonders nützlich sein.
Grenzen
Statische Analyse ist wertvoll, aber nicht vollständig.
Grenzen:
- verschleierter Code
- gepackte Dateien
- polymorphe Malware
- dynamisch geladene Funktionen
- Code, der erst zur Laufzeit entsteht
- verschlüsselte Strings
- Anti-Disassembly-Tricks
Vorteile
Vorteile der statischen Analyse:
- keine Ausführung nötig
- geringeres Risiko
- schnelle Erstbewertung
- Datei kann unabhängig vom Laufzeitverhalten untersucht werden
- Sample kann nicht aktiv auf Analyse reagieren
Merksatz
Statische Analyse zeigt, was in einer Datei steckt. Sie zeigt aber nicht immer, was zur Laufzeit wirklich passiert.
Zuletzt aktualisiert: 6. Juni 2026