Code Obfuscation im Test

Master Studiengang Information Security

Erzeugung von Testdaten mittels LLVM zum Analysieren, Trainieren und Auswerten von Software zur Erkennung von Obfuscation

Dipl.-Ing. Michael Kraftl, BSc

Betreuer: FH-Prof. Dipl.-Ing. Dr. Sebastian Schrittwieser, Bakk.

Ausgangslage

Werden von Entwicklerinnen und Entwicklern Techniken wie Lizenz-Checks oder Anti-Cheat Engines eingesetzt, um Software zu schützen, soll es mit vertretbarem Aufwand nicht möglich sein, diese zu umgehen. Um den Aufwand der Analyse zu erhöhen, können in der Phase der Übersetzung von Quellcode in Binärcode mehrere Verschleierungstechniken angewendet werden. Die Verschleierung von Binärcode wird auch Code Obfuscation genannt.

Code Obfuscation wird jedoch nicht nur für Applikationen, sondern auch für Malware eingesetzt, um die Analyse deren Schadfunktion zu erschweren. Um verschleierte Software automatisch zu erkennen, werden an der FH Sankt Pölten Algorithmen und Verfahren mittels Statistik und maschinellem Lernen entwickelt. Zum Testen dieser Verfahren werden Testdaten in ausreichender Anzahl benötigt. 

Ziel

Ziel der Arbeit ist es, eine geeignete Methode zur Erzeugung solcher Testdaten zu finden und praktisch umzusetzen. Dabei sollen die Daten aus realem und nicht aus synthetischem Quellcode erzeugt werden. Um bei der automatischen Erkennung von Code Obfuscation unterschiedliche Techniken identifizieren zu können, ist es erforderlich, auch die Testdaten in möglichst vielen Variationen zu erstellen.

Da die Verfahren zur Erkennung auf Statistik und maschinellem Lernen beruhen, ist es erforderlich, Testdaten in großem Umfang zur Verfügung zu haben.

Ergebnis

Nach der Recherche wurde die auf dem Compiler LLVM basierende Verschleierungs-Suite namens „Hikari“ ausgewählt. Diese Suite bietet in der freien Version acht verschiedene Verschleierungstechniken an. Um realen und keinen synthetisch erzeugten Quellcode zu benutzen, werden die Quellpakete einer Linux Distribution verwendet. Diese werden mit den verschiedenen Obfuscation-Techniken von „Hikari“ übersetzt. Dadurch entstehen Binärdateien in unverschleierter Form und in den verschiedenen Verschleierungstechniken. Diese finden dann in der automatischen Obfuscation Erkennung als Test- und Referenzdaten Verwendung.

Ausblick

Seit kurzem wird die Verschleierungs-Suite „Hikari“ auch in einer kommerziellen Version angeboten. Bei dieser stehen weitere Obfuscation-Techniken zur Verfügung, welche für die Erzeugung der Testdaten eingesetzt werden können. Dadurch kann die automatische Erkennung von Code-Obfuscation für noch mehr Techniken trainiert und getestet werden.