Mit Reverse Engineering API-Aufrufe und Shellcode von Malware analysieren

Die Analyse von Malware ist komplex und zeitintensiv. Beim Reverse Engineering muss man tief in den Code eintauchen, um die Details der Malware zu verstehen.

Artikel verschenken
vorlesen Druckansicht
Lesezeit: 22 Min.
Von
  • Nadia Meichtry
Inhaltsverzeichnis

Reverse Engineering ist wie ein Tauchgang in unbekannte Gewässer. Während ein Taucher in die Tiefe vordringt, um verborgene Strukturen, Fische und Geheimnisse der Unterwasserwelt zu entdecken, dringt ein Reverse Engineer in den Code einer Software ein, um ihre Funktionsweise zu entschlüsseln und zu verstehen. Dabei sind präzise Werkzeuge, Erfahrung und eine systematische Vorgehensweise entscheidend, um sich sicher und effizient in den Tiefen der Software fortzubewegen. Reverse Engineering ermöglicht einen Einblick in den Quellcode der Software. Es ist zeitaufwendig, sehr komplex und erfordert tiefe technische Kenntnisse. Daher bildet es die letzte Phase des Malware-Analyseprozesses. Bei dieser letzten Phase wird die Schadsoftware in ihre Bestandteile zerlegt, um ihre Funktionsweise bis ins kleinste Detail zu verstehen und somit ihren Zweck zu bestimmen. Es können auch die Infektions- und Verbreitungsmethoden erkannt und wirksame Schutzmaßnahmen ergriffen werden.

iX-tract
  • Um die Funktionsweise von Malware umfassend zu verstehen, ist Reverse Engineering und damit eine tiefgreifende Codeanalyse sowohl statisch als auch dynamisch durchzufĂĽhren. HierfĂĽr stehen zahlreiche Werkzeuge zur VerfĂĽgung.
  • Insbesondere die Kombination bestimmter API-Aufrufe lässt RĂĽckschlĂĽsse auf Funktionen wie Code Injection, Command and Control (C2) oder Keylogger zu. Durch das Auslesen der API-Aufrufe kann also der Zweck des Codes ermittelt werden.
  • Shellcode versteckt sich gerne in Dateien, um etwa weitere Malware nachzuladen oder schädliche Dateien zu droppen. Man kann ihn mit XORSearch entdecken und mit Tools wie scDbg weiter auf seine Fähigkeiten untersuchen.

Die in den vorangehenden Analysephasen (siehe unsere Analyse-Reihe; OSINT, vollautomatische Analyse, statische Eigenschaften und dynamische Analyse) gesammelten Informationen fließen in die Codeanalyse ein und ermöglichen es, mit bereits bekannten Aspekten zu beginnen und sich von dort aus weiterzuarbeiten. Reverse Engineering kann Informationen enthüllen, die vorher nicht erkennbar waren, insbesondere wenn die Malware über Umgehungsfunktionen verfügt. Beispielsweise könnte sie vorübergehend schlafen, um Sandboxes zu umgehen, oder sie könnte die Analyseumgebung (die virtuelle Maschine oder die Analysewerkzeuge) erkennen und sich selbst beenden oder nur ein harmloses Verhalten vorgaukeln.

Mehr zu Malware-Analyse, Schwachstellen und Cybersicherheit
Nadia Meichtry
Nadia Meichtry

Nadia Meichtry ist Digital-Forensics- und Incident-Response-Spezialistin bei der Oneconsult AG. Sie unterstützt bei der Bewältigung und Untersuchung von Cybervorfällen.

Dieser Artikel bietet eine Einführung in die Grundlagen des Reverse Engineerings und der Shellcode-Analyse als eines Teilbereichs davon. Er erläutert, wie Aufrufe der API (Application Programming Interface), also der Programmierschnittstellen des Betriebssystems, die Funktion des Codes prägen. Der Schwerpunkt dieser Artikelreihe liegt auf Malware unter Windows, da diese am weitesten verbreitet ist. Das dreiteilige Tutorial vertieft die bereits erschienene Malware-Analyse-Reihe.

Das war die Leseprobe unseres heise-Plus-Artikels "Mit Reverse Engineering API-Aufrufe und Shellcode von Malware analysieren". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.