08.10.2025, 15:00 Uhr
Universität Wien
Besprechungsraum 4.34
Währinger Str. 29
1090 Wien
Titel: A Modular Approach to Compile-Time Obfuscation Using
Sequential Transform Passes
Kurzfassung:
Softwareprodukte, die in binärer Form verteilt und auf nicht vertrauenswürdigen Hosts
ausgeführt werden, können sensible Informationen enthalten, die nicht an Dritte weitergegeben
werden sollten. Dazu zählen proprietäre Algorithmen, kryptographische Schlüssel,
Zugangsdaten, Abhängigkeiten, sowie die Programmarchitektur selbst. Angreifer
können diverse Reverse Engineering-Techniken nutzen, um Daten offenzulegen und Sicherheitslücken
zu identifizieren, was zu Diebstahl geistigen Eigentums oder missbräuchlicher
Nutzung der Software führen kann.
Der Begriff Code-Obfuscation beschreibe Methoden, die darauf abzielen, das Verhalten
von Programmen zu verschleiern und die statische Analyse von Binärdateien zu erschweren.
Während der Code-Kompilierung und -Optimierung transformieren Obfuscation-Techniken
den Code ohne dabei seine Semantik zu verändern, indem sie unter anderem den Kontrollund
Datenfluss verändern, Variablennamen umbenennen und irrelevante Codefragmente
einfügen. Derzeit existiert kein gut etabliertes, frei verfügbares Obfuscationtool für
Programme, die in traditionellen Programmiersprachen wie C, C++ oder Java geschrieben
sind.
In dieser Arbeit werden mehrere traditionelle statische Obfuscation-Techniken als modulare
LLVM-Transformation-Passes implementiert. Dazu gehören Control Flow Flattening,
erweitert durch einen unabhängigen Mechanismus für Bogus Control Flow, Function
Merging sowie Instruction Substitution auf Basis benutzerdefinierter Mixed Boolean-
Arithmetic (MBA)-Ausdrücke. Die Passes nutzen ein annotierungsbasiertes System, das
selektive Obfuscation ermöglicht, indem nur explizit im Quellcode markierte Funktionen
betroffen sind. Die implementierten Obfuscation-Techniken werden hinsichtlich ihrer
Semantikerhaltung validiert und durch Messung der Ausführungszeit sowie Erhebung von
Softwaremetriken über eine Benchmark-Suite von 47 Programmen bewertet. Die Resultate
der Evaluierung in dieser Arbeit zeigen, dass bestimmte Obfuscation-Techniken die Komplexitätskennzahlen
der Software verdoppeln können, während sich die Ausführungszeit
der geschützten Binärdateien nicht signifikant erhöht.
