Title (de)
Code Obfuscation im Test
Subtitle (de)
Erzeugung von Testdaten mittels LLVM zum Analysieren, Trainieren und Auswerten von Software zur Erkennung von Obfuscation
Language
German
Description (de)
Masterarbeit, Fachhochschule St. Pölten, Masterstudiengang Information Security, 2019
Description (de)
Wenn es nicht gerade um Open-Source-Software geht, wollen Autoren von Computerprogrammen oft ihren Code schützen. Da Software in den meisten Ländern nicht patentierbar ist, greifen die Programmierer zu anderen technischen Methoden. Code-Obfuscation ist eine gebräuchliche Methode, um Code mittelfristig vor ungewollter Analyse zu schützen. Diese Technik verwenden Programme, wie zum Beispiel der VoIP Client Skype, aber auch Malware versucht deren Funktion so zu verstecken. Um zu erkennen ob eine Software verschleiert ist, werden aktuell verschiedene Techniken, wie statistische Methoden, aber auch maschinelles Lernen getestet. Dafür werden Testdaten in größerem Umfang benötigt. Diese Arbeit sucht Wege, um diese Testdaten einfach und effizient zu erzeugen. Dazu werden vorhandene Tools für Verschleierung evaluiert und getestet. Dabei werden die, auf der Compiler-Suite LLVM basierenden Verschleierung-Suites „Obfuscator-LLVM“ und „Hikari“ genauer betrachtet. Als Quelle für die Eingangsdaten werden die Quellpakete einer Linux Distribution verwendet. Nach der Übersetzung dieser Pakete ist es erforderlich, eine Nachverarbeitung der entstandenen binären Dateien vorzunehmen. Als Ergebnis dieser Arbeit stehen rund 700 aus Quellpaketen kompilierte Programme in verschiedenen Verschleierungstechniken zur Verfügung. Diese werden für die Entwicklung von Software für die Erkennung von Code Obfuscation eingesetzt.
Description (en)
When it comes to open source software, computer program authors often want to protect their code. Since software is not patentable in most countries, the programmers use other technical methods. Code obfuscation is a common way to protect code from unwanted analysis in the medium term. This technique is used by programs, such as the VoIP client Skype, but also malware tries to hide their functionality by this technique. In order to detect whether a software is obfuscated or not, currently various techniques, such as statistical methods or machine learning are under evaluation. Therefore, test data is needed on a larger scale. This work tries to find ways to generate test data easy and efficient. Therefore, existing tools for obfuscation are evaluated and tested. It looks more closely to "obfuscator-LLVM" and "Hikari" obfuscator suites based on the LLVM compiler suite. The sources of a Linux distribution are taken as input data for the obfuscator suites. After the translation of these packages, it was necessary to post process the resulting binary files. As a result of this work, around 700 programs in various obfuscation techniques are available. These are used for the development of software to detect code obfuscation.
Keywords (de)
Computersicherheit; Softwareentwicklung; Programmanalyse
AC-Number
AC15493314
Author of the digital object
Michael Kraftl
Date
01.01.2019
Adviser
Sebastian Schrittwieser
Date
01.01.2019
Licence Selected
Type of publication
Master's Dissertation
Date of approbation period
2019
University of Applied Sciences St. Pölten | Campus-Platz 1 | A-3100 St. Pölten | T +43/2742/313 228-234