TU Darmstadt / ULB / TUprints

Static Data Flow Analysis for Android Applications

Arzt, Steven (2017)
Static Data Flow Analysis for Android Applications.
Technische Universität Darmstadt
Ph.D. Thesis, Primary publication

[img]
Preview
Text
Thesis.pdf
Copyright Information: In Copyright.

Download (4MB) | Preview
Item Type: Ph.D. Thesis
Type of entry: Primary publication
Title: Static Data Flow Analysis for Android Applications
Language: English
Referees: Bodden, Prof. Dr. Eric ; Zeller, Prof. Dr. Andreas ; Eugster, Prof. Dr. Patrick
Date: 2017
Place of Publication: Darmstadt
Date of oral examination: 22 December 2016
Abstract:

Mobile phones have become important daily companions for millions of people which help to organize both their private and their professional lives. Having access to data such as the calendar or the address book anywhere, anytime, has become commonplace. Sensor data such as the phone's GPS location and accelerometer help users navigate through the physical world. Users can furthermore extend the functionality of their phone using small programs called apps from various developers and vendors in an open ecosystem. Undoubtedly, having all this data merged on a device that is always-on and always-connected and that can easily be extended with new software greatly improves user convenience. On the other hand, it also poses new questions with regard to privacy and security. Apps may misuse the data stored on the phone or obtained from the sensors to infringe upon the user's privacy. In fact, companies already now use location data and app usage statistics to build user profiles for the purpose of targeted advertisement. The user is oftentimes unaware of these data leaks originating from his phone and has little means for analyzing the actual behavior of a given app with regard to privacy.

Static data flow analysis has been proposed as a means for automatically enumerating the data flows inside a program. Still, either do not support Android's platform-specific semantics or fall short on precision, recall, or scalability. In this thesis, we therefore propose techniques for efficiently and precisely performing static data flow analysis on real-world binary-only Android apps with large code sizes. We present the FlowDroid tool and show that it can detect data leaks in popular apps such as Facebook, Paypal, and LinkedIn. The FlowDroid reports improve the user's digital sovereignty by allowing his to asses the behavior of the app before installing it on his device and thereby entrusting it with his personal data. We allow the user to verify which of his data leaves the device and how. On the DroidBench micro-benchmark suite, we show that FlowDroid achieves a precision of more than 87% and a recall of over 84%, thereby outperforming state-of-the-art tools from academia and industry. Additionally, FlowDroid has already been used as a building-block for many other works in the field.

Alternative Abstract:
Alternative AbstractLanguage

Smartphones sind für Millionen von Menschen zu täglichen Begleitern geworden, mit den sie sowohl ihr privates als auch ihr geschäftliches Leben organisieren. An jedem Ort und zu jeder Zeit Zugriff auf Daten wie den Terminkalender oder das Adressbuch zu haben, gilt heute als selbstverständlich. Sensordaten wie die GPS-Position und der im Gerät verbaute Kompass helfen Benutzern, durch die reale Welt zu navigieren. Mit zusätzlichen Programmen, sogenannten Apps, können Benutzer die Funktionalität ihres Geräts zudem erweitern. Apps werden in einem offenen Ökosystem von verschiedensten Anbietern und Entwicklern vertrieben. Alle Daten an einem Ort zu haben, auf einem Gerät, das immer verfügbar und immer verbunden ist, bietet dem Benutzer zweifellos ein hohes Maß an Komfort. Auf der anderen Seite wirft es jedoch auch neue Fragen zu Datenschutz und Privatsphäre auf. Tatsächlich nutzen Firmen bereits heute Daten von mobilen Endgeräten, um Benutzerprofile für zielgruppenorientierte Werbung zu erzeugen. Der Endnutzer ist sich dieser Datenextraktion von seinem Gerät oftmals nicht bewusst und verfügt auch kaum über Möglichkeiten, sich darüber zu informieren, wie Apps mit seinen Daten tatsächlich umgehen.

Statische Datenflussanalyse ist eine Technik, mithilfe derer automatisiert Datenflüsse in Programmen erkannt werden können. Bisherigen Techniken fehlt jedoch entweder die Unterstützung für die spezifische Semantik der Android-Plattform oder sie liefern keine hinreichenden Ergebnisse in Beziug auf Genauigkeit, Vollständigkeit, Skalierbarkeit oder Geschwindigkeit. In dieser Doktorarbeit stellen wir daher Technken zur statischen Datenflussanalyse vor, mit denen reale Android-Apps mit großen Codemengen effizient analysiert werden können, auch wenn diese nur im Binärcode vorliegen. Wir präsentieren das FlowDroid-Werkzeug, welches präzise und weitestgehend vollständige Datenflüsse aus populären Apps wie Facebook, PayPal und LinkedIn extrahiert. Die Ergebnisberichte von FlowDroid verbessern die digitale Souveränität des Benutzers, da dieser sich nun selbst ein Bild davon machen kann, wie eine App mit seinen Daten umgeht, bevor er die App auf seinem Gerät installiert und ihr somit seine Daten anvertraut. Mit FlowDroid kann der Benutzer nachvollziehen, welche Daten von seinem Gerät erhoben und an Dritte gesendet werden. Auf der DroidBench Micro Benchmark-Suite liefert FlowDroid mehr als 87% aller erwarteten Ergebnisse. 84% aller gemeldeten Ergebnisse sind korrekt. Diese Werte liegen deutlich über den Ergebnissen der bisher aktuellen Analysewerkzeuge, sowohl aus dem akademischen als auch aus dem industriellen Kontext.

German
URN: urn:nbn:de:tuda-tuprints-59371
Classification DDC: 000 Generalities, computers, information > 004 Computer science
Divisions: 20 Department of Computer Science
LOEWE > LOEWE-Zentren > CASED – Center for Advanced Security Research Darmstadt
20 Department of Computer Science > EC SPRIDE > Secure Software Engineering
Date Deposited: 01 Feb 2017 13:20
Last Modified: 09 Jul 2020 01:31
URI: https://tuprints.ulb.tu-darmstadt.de/id/eprint/5937
PPN: 399175644
Export:
Actions (login required)
View Item View Item