Cuckoo Sandbox ist ein Malware Analyse System das im Rahmen des iTES-Projekt zum Einsatz kommt. Es stellt einen wichtigen Faktor im Blick auf automatisierte Malware-Tests in gesicherter Umgebung dar. Wir benutzen die Cuckoo-Sandbox daher um eine Testumgebung für unsere Sensoren zu realisieren. Um dieses Ziel zu erreichen mussten wir einige Anpassungen an Cuckoo vornehmen. Als erstes mussten wir ein System entwickeln, welches uns ermöglicht, Cuckoo-Sandbox auf verschiedenen Servern zu betreiben. Alle Instanzen werden dazu auf einen globalen Pool mit Jobs zugreifen und eine globale Ergebnissdatenbank verwenden.
Hierfür entwarfen wir das Hermes Analyse System. Parallel dazu, wurde ein Sensor-Interface entworfen, welches uns ermöglichen soll, ein möglichst breites Spektrum an Sensoren zu entwerfen, die möglichst unbeschränkt Aufzeichnen können. Des weiteren konzeptionierten und realisierten wir eine Erweiterung für die Cuckoo-Sandbox, welche uns ermöglicht die Windows Virtual Machines zu rebooten.
Cuckoo-Reboot:
Wir erweiterten die Cuckoo-Sandbox um eine Neustart-Funktion (Reboot-Funktion). Dies ist wichtig für die Analyse moderner Malware, da sie in mehreren Schritten abläuft um ihr Verhalten zu verschleiern. Als erstes lädt sie zusätzliche Komponenten aus dem Internet (den sogenannten Payload) und trägt sich dann in die Windows Registrierungsdatenbank ein um nach einem Reboot die Virenscanner zu umgehen. Erst nach einem Reboot zeigt die Malware dann ihr schädliches Verhalten. Somit war es erforderlich, dass wir einen Reboot ermöglichen, um Malware vollständig analysieren zu können und false positives und false negatives zu vermeiden. Das Cuckoo System bieten konzeptionell zwei Möglichkeiten einen Reboot zu realisieren. Zum einen ist es mögliche einen Reboot vom Host-System, also dem Linux System, auf dem Windows virtualisiert wird, über eine ACPI-Shutdown zu initieren. Hierfür bedarf es aber eingehender Änderungen in Cuckoo und es muss auch für jeden Hypervisor angepasst werden. Außerdem ist es auch möglich vom Gast Systems, also innerhalb der VM, einen Reboot zu auszulösne. Dies lässt sich z.B. über die Windows-Eingabeauforderung realisieren. Wir haben uns für die zweite Möglichkeit entschieden, da sie nur kleine Änderungen an Cuckoo benötigen und somit keine das Potential für fehler verringert. Bei der Umsätzung unseres Konzeptes war es zunächst wichtig, dass wir einen Reboot-Agent erstellen, der nach dem Neustart des Systems selbstständig wieder Kontakt zum Host-System auf nimmt. Hierfür haben wir eine abgespekte Variante des Cuckoo-Agents in den Windows Autostart kopiert. Der Reboot-Agent startet dann den Reboot-Analyzer, der wiederum eine kleine Variante des Cuckoo-Analyzers ist und alle benötigten Cuckoo-Module wieder startet. Die Überwachung der Malware geschieht wieder durch den Cuckoo-Monitor. Somit ist es nun möglich, ein Malware Sample mit einem Reboot zu testen. Dadurch wird die Verschleierungstaktik die moderne Malware anwendet zu erkennen und somit auch Malware besser zu erkennen.