Music, I. (2021). Proof-of-Concept of a static analysis tool for android applications with the goal of detecting potential leaks of private data [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2021.87344
Android ist ein Betriebssystem, welches auf Millionen von Geräten läuft. Die Geräte speichern und verarbeiten private und sensible Daten wie GPS-Daten, Kontakte, Gesundheitsdaten oder Bankdaten. Diese Daten können ohne Zustimmung der Benutzer absichtlich oder unbeabsichtigt an Dritte weitergegeben werden. Dies geschieht durch verschiedene Methoden wie: Kommunikation zwischen Apps (Inter-App Communication), Kommunikation zwischen Komponenten (Inter-Component Communication) und durch Bibliotheken von Drittanbietern. Diese Arbeit untersucht die neuesten Lösungen zur Erkennung von Datenlecks und stellt eine Verbesserung gegenüber einer der vorhandenen Lösungen, FlowDroid, dar.In dieser Arbeit werden zunächst die Sicherheitslücken erörtert, die unter Android zu Datenlecks führen. Die häufigsten Sicherheitslücken werden weiter analysiert, damit sie durch die Proof-of-Concept-Lösung gemindert werden können. Nach den Sicherheitslücken werden die vorhandenen Lösungen und Algorithmen, welche diese Lösungen unterstützen, vorgestellt, die wiederum als Grundlage für die Proof-of-Concept-Lösung dienen. Die Arbeit identifiziert und verbessert die vorhandenen Lösungen. Basierend auf der Forschung des neuesten Stands der Technik wird eine statische Code-Analyse-Lösung entwickelt, die auf zwei vorhandenen Lösungen, DroidRa und FlowDroid, basiert ist, mit dem Ziel, die Funktionen von FlowDroid zur Erkennung von Lecks in dynamisch geladenem Code zu verbessern.Die Endergebnisse zeigen Verbesserungen in Leistung, da die Proof-of-Concept-Lösung durchschnittlich 3-8 Prozent weniger Zeit und durchschnittlich 10-15 Prozent weniger Speicher pro Testfall benötigt. Es wird auch gezeigt, dass nicht nur die Verbesserung der Analyseverfahren wichtig ist, sondern auch die Optimierung der richtigen Eingabedaten, nämlich Quellen und Senken (Sources and Sinks) für die Analyseergebnisse wichtig ist. Die Genauigkeit und die Trefferquote der Lösung können, abhängig von den Eingabedaten, um plus-minus 20-30 Prozent verschoben werden. Die Analyse von echten Apps zeigt auch, dass die Verschleierung für statische Analyselösungen immer noch ein Problem darstellt.
de
data or bank data. This data can be intentionally or unintentionally leaked to third parties without the users’ consent through various methods like Inter-App-Communication, Inter-Component Communication and Third-party library leaks. This thesis researches the state-of-the-art data leak detection solutions and presents an improvement to one of the existing solutions, FlowDroid. This thesis first discusses the vulnerabilities that cause data leaks on Android and selects the most common ones as the target which the solution aims to mitigate. After vulnerabilities, the existing solutions and algorithms that support these solutions are presented, which are in turn used as a basis for the proof-of-concept solution. The thesis tries to identify places for improvement in the existing solutions and iterate on them. The goal is to develop an improved solution, which uses static code analysis. Based on the research of the state-of-the-art a static code analysis solution based on two existing solutions, DroidRa and FlowDroid is developed, with the goal of enhancing FlowDroid's capabilities to detect leaks in dynamically loaded code.The final results show improvements in performance, with the proof-of-concept solution taking around 3-8 percent less time and 10-15 percent less memory on average per test case. We also show that not only improving the analysis is important, providing the right set of sources and sinks on Android is also important. The differences in these input files can shift the precision and recall of the solution plus-minus 20-30 percent. Real-world application analysis also shows that obfuscation is still a problem for static-analysis solutions.