Ein Windows-Sample hat kaum Importe und keine verdächtigen API-Namen als Strings. Heißt das, es ist harmlos?
Kurzantwort
Nein. Eine dünne Importtabelle beweist nichts. Malware speichert oft Hashes oder andere Kennungen statt API-Namen und löst sie zur Laufzeit mit GetProcAddress und LoadLibrary auf – das hinterlässt weder verräterische Strings noch Importeinträge für die statische Analyse. MITRE ATT&CK führt das als Dynamic API Resolution (T1027.007). Eine fast leere Importtabelle und wenig lesbarer Text sind ein Warnsignal: weiter mit dynamischer Analyse oder Unpacking.
Die statische Triage beginnt bei Importtabelle und Strings: Ein Programm, das CreateRemoteThread und VirtualAllocEx importiert, verrät viel. Angreifer wissen das – das Fehlen solcher Hinweise ist kein Beleg für Harmlosigkeit.
Was passiert
MITRE ATT&CK beschreibt Dynamic API Resolution (T1027.007): Statt Windows-Funktionen normal zu linken, hält die Malware Hashes oder andere Kennungen vor und nutzt sie zur Laufzeit mit GetProcAddress() und LoadLibrary(), um den Link- und Ladevorgang selbst nachzubauen. Die Kennungen können sogar verschlüsselt sein und erst bei der Ausführung dekodiert werden. Das Ergebnis: Import Address Table und Strings verraten bis zur Ausführung sehr wenig.
Wie Sie reagieren
- Eine winzige Importtabelle (oft nur
GetProcAddress/LoadLibraryoder nichts) ist ein Signal, keine Beruhigung. - Wechseln Sie zu dynamischer Analyse im isolierten Labor oder zu Unpacking und Debugging, um die aufgelösten Funktionen zu sehen.
- Die Erkennungshinweise von ATT&CK nennen Folgen von
GetProcAddress/LoadLibrary-Aufrufen nach Speicherallokation und manuellem Mapping.
Warum die Distraktoren scheitern
Nichts zu importieren hindert ein Programm nicht daran, APIs zu erreichen. Windows hat keine Regel, die kleine Importtabellen ablehnt. Und legitime Programme importieren normalerweise, was sie nutzen – eine leere Tabelle ist ungewöhnlich, nicht normal.
Was Interviewer hören wollen
Den Reflex, dass fehlende Belege in der statischen Ausgabe kein Beleg für Abwesenheit sind – und den Namen der Technik.
Wahrscheinliche Anschlussfragen
- Wie würden Sie beim Reverse Engineering die API-Namen hinter einer Reihe von Hashes rekonstruieren?
- Welche Signale der dynamischen Analyse verraten Auflösung von APIs zur Laufzeit?
- Wie unterscheidet sich Packing von API-Hashing, und kann ein Sample beides nutzen?