Das Dynamic Executable Code Analysis Framework (Decaf) [7] stellt eine vollständige dynamische Analyseplattform bereit. Forscher und Hobby-Programmierer treiben ihre Entwicklung aktiv voran. Sie setzt auf Qemu [8] und kann sich eines ausgiebigen Funktionsumfangs rühmen, darunter eine Plugin-API für die Entwicklung eigener Analysewerkzeuge. Der Overhead bei der Ausführung fällt bei Decaf vergleichsweise klein aus und Decaf funktioniert auch mit neueren Betriebssystemen wie Windows 8.
Abbildung 3 illustriert die Decaf-Architektur: Das zu analysierende Gastsystem läuft stets in einer virtuellen Maschine. Sie verwendet einen emulierten Prozessor und eine Speicherverwaltungseinheit (MMU). Die emulierten Hardware-Geräte, beispielsweise Festplatte, Netzwerkkarte, Tastatur und Maus, präsentiert Decaf dem Gastbetriebssystem als physische Geräte. Das Gastsystem hat also keinen Anhaltspunkt anzunehmen, dass es in einer virtuellen Maschine läuft.
Das Architekturdiagramm zeigt auch die Shadow-Speicher, in denen Decaf Markierungen speichert. Sie befinden sich außerhalb der virtuellen Maschine, um Manipulationen durch das Gastbetriebssystem zu verhindern. Die Speicherverwaltung des Gastsystems steht mit einem Shadow-RAM außerhalb der virtuellen Maschine in Verbindung. Dort landen Taint Tags für Daten, die sich im Arbeitsspeicher der virtuellen Maschine befinden. Manche Peripheriegeräte wie die Netzwerkkarte verfügen über Shadow Buffers, die interne Sende- und Empfangspuffer abbilden.
Sekundärspeicher wie eine Festplatte verfügt ebenfalls über einen eigenen Shadow Buffer, um die dort gespeicherten Daten zu markieren und zu verfolgen. Auch wenn Dateizugriffe bei einer Systemanalyse in manchen Fällen bedeutungslos sind, bleibt dieser Shadow Buffer wichtig, weil durch den Auslagerungsspeicher auch Daten aus dem Arbeitsspeicher dort landen können. Tritt dieser Fall ein, muss Decaf auch die Taint-Markierungen zu den betroffenen Daten in den Shadow Buffer jener Platte kopieren. Das gilt auch umgekehrt: wandern die Daten vom ausgelagerten Speicher zurück ins RAM, muss Decaf auch hier die Taint-Markierungen in das Shadow Memory zurückkopieren.
Stetig zunehmende Rechnergeschwindigkeiten und wachsende Ressourcen erlauben auch immer komplexere Software-Analysen. Die Verfügbarkeit freier Tools für diesen Zweck gibt Forschern und Entwicklern einen großen Vorteil im Kampf gegen Malware und bei der Entwicklung sicherer Software.
Infos