Binary Deobfuscation - Automatic Attacks against Virtualization-based Obfuscatio

Master-Studiengang Information Security

Stefan Schweighofer, BSc

Betreuer: Dipl.-Ing. Patrick Kochberger, BSc

Ausgangslage

Schadhafte Programme stellen eine Bedrohung für Unternehmen und Privatpersonen da, was zur Folge hat, dass diese kontinuierlich analysiert werden müssen, um gegen neue Bedrohungen dieser Art gewappnet zu sein. Jedoch erschwert Obfuskation diesen Analyse Vorgang, da diese Methode von Schadsoftware Autorinnen und Autoren genutzt wird, um Funktionalitäten in einem Programm zu schützen. Das Ziel von Obfuskation ist, die Analyse eines Programmes möglichst schwierig und zeitaufwändig zu gestalten. Die virtualisierungsbasierte Obfuskierung ist dabei eine fortgeschrittene Art der Obfuskierung und eine Analyse dieser Obfuskierung ist mit einem hohen Zeitaufwand verbunden. Deshalb wurden über die letzten Jahre einige Ansätze und Programme entwickelt, die diese Art der Obfuskierung rückgängig machen können. Damit kann eine Analyse dieser obfuskierten Programme wesentlich leichter durchgeführt werden. Deobfuskation beschreibt dabei die Auflösung der Obfuskierung in einem Programm. Des Weiteren wurden bereits automatisierte Programme entwickelt, welche im Stande sind, eine virtualisierungsbasierte Obfuskierung rückgängig zu machen.

Diese Arbeit fokussiert sich auf vier dieser automatisierten Deobfuskierungsprogramme für virtualisierungsbasierte Obfuskierung und evaluiert diese in einer definierten Testumgebung.

Ziel

Das Ziel dieser Arbeit ist es vier unterschiedliche Programme zu evaluieren, welche eine automatisierte Analyse von virtualisierungsbasierter Obfuskierung ermöglichen. Dabei werden die Deobfuskierungsprogramme in verschiedenen Testszenarien mit unterschiedlichen Formen der virtualisierungsbasierten Obfuskierung getestet. Diese Arbeit beschreibt den Testvorgang und die gewonnen Resultate aus der Evaluierung, um einen Einblick auf die Anwendbarkeit der Deobfuskierungsprogramme zu geben.

Ergebnis

Durch die Evaluierung hat sich gezeigt, dass es in bestimmten Testszenarien möglich ist eine automatisierte Deobfuskierung mit den evaluierten Programmen durchzuführen. Jedoch ging aus den Ergebnissen hervor, dass es noch Herausforderungen gibt, welche gelöst werden müssen, um die Deobfuskierungsprogramme resistenter gegen unterschiedliche Formen der virtualisierungsbasierten Obfuskierung zu machen.