Malwareanalyse in 4 Schritten (Artikel 4: Dynamische Codeanalyse)
Die dynamische Codeanalyse ist neben der statischen die komplexeste Analyseart im Malwareanalyse-Prozess. Im Grunde wird die Malware, wie bei der dynamischen Analyse, in einer isolierten Umgebung ausgeführt. Der Unterschied liegt darin, dass die Ausführung in einem Debugger kontrolliert durch den Analysten stattfindet, wodurch eine sehr detaillierte Analyse möglich wird. Die eigene Kontrolle ermöglicht Analysen von einzelnen oder mehreren Instruktionen, aber auch von ganzen Funktionen oder Programmen.
Generell kann zwischen zwei Einstiegsmöglichkeiten zum Debugging unterschieden werden. Entweder wird der Debugger in einen laufenden Prozess eingehängt oder der Debugger startet einen neuen Prozess. Welcher Weg gewählt wird, hängt von der vorliegenden Konstellation ab. Ist der Debugging-Prozess gestartet kann er durch den Analysten auf zwei Weisen kontrolliert werden. Einerseits durch Befehle (Continue/Run, Step into, Step over etc.) oder durch das Setzen von Breakpoints. Es gibt unterschiedliche Arten von Breakpoints die genutzt werden können. Darauf möchte ich aber nicht weiter eingehen.
Generell ermöglicht die Unterbrechung des Programmablaufs die genauere Analyse von Speicher- und Stackaufbau sowie des Inhalt der Register. Der Analyst kann daher sehr gezielt die Status verschiedener Variablen untersuchen, um Hinweise auf die Funktionalität der Malware zu erhalten. Daraus können letztlich Rückschlüsse auf die Auswirkungen auf das angegriffene System gefunden werden.
Zur dynamischen Codenanalyse kann entweder IDA Pro Free oder auch OllyDbg verwendet werden. Problematisch ist allerdings, dass in der heutigen Malware einige Mechanismen bestehen, die diese Analysetechnik erschweren.
Ich hoffe du konntest aus der Artikelserie einige Dinge lernen und für deinen Einstieg in die komplexe Materie der Malwareanalyse nutzen.