TU Darmstadt / ULB / TUbiblio

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
Dissertation, Erstveröffentlichung

Kurzbeschreibung (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.

Typ des Eintrags: Dissertation
Erschienen: 2017
Autor(en): Rasthofer, Siegfried
Art des Eintrags: Erstveröffentlichung
Titel: Improving Mobile-Malware Investigations with Static and Dynamic Code Analysis Techniques
Sprache: Englisch
Referenten: Bodden, Prof. Dr. Eric ; Zeller, Prof. Dr. Andreas ; Mezini, Prof. Dr. Mira
Publikationsjahr: 2017
Ort: Darmstadt
Datum der mündlichen Prüfung: 22 Dezember 2016
URL / URN: http://tuprints.ulb.tu-darmstadt.de/5911
Kurzbeschreibung (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.

Alternatives oder übersetztes Abstract:
Alternatives AbstractSprache

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.

Deutsch
URN: urn:nbn:de:tuda-tuprints-59117
Sachgruppe der Dewey Dezimalklassifikatin (DDC): 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik > EC SPRIDE > Secure Software Engineering
20 Fachbereich Informatik > EC SPRIDE
20 Fachbereich Informatik
Hinterlegungsdatum: 29 Jan 2017 20:55
Letzte Änderung: 29 Jan 2017 20:55
PPN:
Referenten: Bodden, Prof. Dr. Eric ; Zeller, Prof. Dr. Andreas ; Mezini, Prof. Dr. Mira
Datum der mündlichen Prüfung / Verteidigung / mdl. Prüfung: 22 Dezember 2016
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen