TU Darmstadt / ULB / TUprints

Improving Mobile-Malware Investigations with Static and Dynamic Code Analysis Techniques

Rasthofer, Siegfried (2017)
Improving Mobile-Malware Investigations with Static and Dynamic Code Analysis Techniques.
Technische Universität Darmstadt
Ph.D. Thesis, Primary publication

[img]
Preview
Text
Phd-Thesis-Rasthofer.pdf
Copyright Information: CC BY-ND 4.0 International - Creative Commons, Attribution NoDerivs.

Download (3MB) | Preview
Item Type: Ph.D. Thesis
Type of entry: Primary publication
Title: Improving Mobile-Malware Investigations with Static and Dynamic Code Analysis Techniques
Language: English
Referees: Bodden, Prof. Dr. Eric ; Zeller, Prof. Dr. Andreas ; Mezini, Prof. Dr. Mira
Date: 2017
Place of Publication: Darmstadt
Date of oral examination: 22 December 2016
Abstract:

Similar to the PC world, the abundance of mobile malware has become a serious threat to smartphone users. Thousands of new apps or app versions are uploaded to popular app stores every day. All of them need to be analyzed against violations of the app store's content policy. In particular, one wishes to detect whether an application contains malicious behavior. Similarly, antivirus companies check thousands of apps every day to determine whether or not they are malicious. Both app store operators and antivirus vendors face the same problem: it is generally challenging to tell apart malware from benign applications. This is because malware developers aim to hide their applications' malicious behavior as long as possible from being detected by applying different obfuscation techniques. The raising sophistication with which such measures are implemented pose a serious problem not just to automated malware detection approaches but also to the manual analysis of potential malware by human experts.

In this dissertation, we propose a novel reverse engineering framework that includes different approaches for automatically extracting insights of the behavior of an Android application. In particular, we propose a novel approach, based on machine-learning, to automatically identify sensitive source and sink API methods. Furthermore, we propose an approach to automatically extract concrete runtime values, such as SMS messages or URLs, at any code location. The approach combines static and dynamic code analysis techniques in such a way that it is resistant against common obfuscation techniques. A further contribution is an approach that extracts concrete environment conditions that need to be fulfilled in order to reach a certain code location. This approach is based on code fuzzing that gets supported by static and dynamic code analysis techniques. All these approaches provide different insights into the analyzed application, in particular how and under which circumstances the application communicates with its environment.

The reliable extraction of these insights requires novel solutions that address fundamental limitations of current static and dynamic code analysis approaches. We, therefore, also contribute new code analysis techniques that reduce well-known limitations of code analysis, such as reflective method calls or inter-component communications, resulting in incomplete callgraphs, or complex path conditions that result in reachability problems.

All the insights that are extracted by our proposed approaches help human experts in speeding up their malware investigations. Manual malware investigations benefit from the automatic extraction of precise insights of the behavior of an application, which otherwise requires a time-consuming, manual analysis. On the other hand, existing automated code analysis approaches that are used during malware investigations benefit from our new techniques by reducing well-known limitations. This improves the detection rate of these approaches.

Alternative Abstract:
Alternative AbstractLanguage

Die Häufigkeit von mobiler Schadsoftware ist, ähnlich zur PC-Welt, ein großes Problem für Smartphone Benutzer geworden. Tausende von neuen Applikationen oder neuen Versionen von Applikationen werden täglich auf bekannte App Stores hochgeladen. All diese Applikationen müssen auf Verletzungen der App Store Richtlinien hin untersucht werden. Speziell werden hierbei Applikationen auf schadhaftes Verhalten untersucht. Ähnliches gilt bei Antiviren-Firmen, die täglich mehrere tausend Anwendungen auf schadhaftes Verhalten untersuchen müssen. Beide Parteien haben im Prinzip ein ähnliches Problem: es ist generell schwer zwischen gutartigen und schadhaften Applikationen zu unterscheiden. Gründe hierfür sind Entwickler von schadhaften Applikationen, die ihre Applikationen so programmieren, dass das schadhafte Verhalten so lange wie möglich unentdeckt bleibt. Dies wird durch unterschiedliche Verschleierungstechniken erreicht. Die Art der Verfahren wird jedoch immer komplexer und stellt somit nicht nur automatische Verfahren zur Erkennung von schadhaften Verhalten vor großen Herausforderungen, sondern auch manuelle Untersuchungen durch Experten.

In dieser Dissertation stellen wir ein neues Reverse Engineering Framework vor, welches unterschiedliche Verfahren zur automatischen Extraktion von sicherheitsrelevanten Informationen aus Android Applikationen beinhaltet. Konkret stellen wir in dieser Arbeit ein Verfahren zur automatischen Extraktion von sicherheitsrelevanten Quellen- und Senken-APIs vor, welches auf Techniken des maschinellen Lernens beruht. Des Weiteren wird ein Verfahren vorgestellt, welches vollautomatisch Laufzeitwerte an beliebigen Codestellen extrahiert. Dies könnten zum Beispiel konkrete SMS Nachrichten oder URLs sein. Das Verfahren kombiniert statische und dynamische Codeanalyse-Techniken so miteinander, dass es resistent gegen gängige Verschleierungstechniken ist. Ein weiteres Verfahren extrahiert konkrete Umgebungsbedingungen, die erfüllt sein müssen, um eine bestimmte Codestelle zu erreichen. Dieses Verfahren basiert auf Code-Fuzzing und verwendet statische und dynamische Codeanalyse Techniken. All diese unterschiedlichen Verfahren extrahieren unterschiedliche, sicherheitsrelevante Informationen aus einer Applikation, die Aufschluss darüber geben, wie und unter welchen Bedingungen eine Applikation mit der Umgebung interagiert.

Das Extrahieren dieser sicherheitsrelevanten Informationen bedurfte neuartiger Lösungen, die fundamentale Limitierungen von statischen und dynamischen Analysen lösten. Aus diesem Grund sind in dieser Dissertation neue Techniken beschrieben, die diese fundamentalen Limitierungen reduzieren. Dies beinhaltet neue Verfahren zur Verbesserung der Konstruktion von Aufrufgraphen, welche durch reflektive Aufrufe oder der Abbildung von Komponenten-Kommunikationen in Android erschwert wurden. Des Weiteren liefert diese Arbeit neue Techniken die sich mit dem Thema der Erreichbarkeit von Codestellen beschäftigt und neue Lösungsvorschläge aufzeigt.

Die in dieser Dissertation vorgestellten, neuartigen Verfahren helfen Analysten bei ihrer täglichen Arbeit in der Identifizierung von schadhaften Applikationen. Durch die automatische Extraktion von detaillierteren, sicherheitsrelevanten Informationen einer Applikation wird die manuelle Analysezeit einer Applikation essenziell reduziert. Bereits bestehende Werkzeuge, die von Analysten benutzt werden, profitieren ebenfalls von den in dieser Arbeit vorgestellten Verfahren. Dies ist auf die Reduzierung von statischen und dynamischen Limitierungen zurückzuführen. Somit können dem Analysten präzisere Ergebnisse vorgelegt werden, welche ebenfalls die Analysezeit reduzieren.

German
URN: urn:nbn:de:tuda-tuprints-59117
Classification DDC: 000 Generalities, computers, information > 004 Computer science
Divisions: 20 Department of Computer Science > EC SPRIDE > Secure Software Engineering
Date Deposited: 26 Jan 2017 10:49
Last Modified: 09 Jul 2020 01:30
URI: https://tuprints.ulb.tu-darmstadt.de/id/eprint/5911
PPN: 399008462
Export:
Actions (login required)
View Item View Item