paper

FlowDroid: Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware Taint Analysis for Android Apps

  • Authors:

📜 Abstract

Today’s smartphones are a ubiquitous source of private and confidential data. At the same time, smartphone users are plagued by carelessly programmed apps that leak important data by accident, and by malicious apps that exploit their given privileges to copy such data intentionally. While existing static taint-analysis approaches have the potential of detecting such data leaks ahead of time, all approaches for Android use a number of coarse-grain approximations that can yield high numbers of missed leaks and false alarms. In this work we thus present FLOWDROID, a novel and highly precise static taint analysis for Android applications. A precise model of Android’s lifecycle allows the analysis to properly handle callbacks invoked by the Android framework, while context, flow, field and object-sensitivity allows the analysis to reduce the number of false alarms. Novel on-demand algorithms help FLOWDROID maintain high efficiency and precision at the same time. We also propose DROIDBENCH, an open test suite for evaluating the effectiveness and accuracy of taint-analysis tools specifically for Android apps. As we show through a set of experiments using SecuriBench Micro, DROIDBENCH, and a set of well-known Android test applications, FLOWDROID finds a very high fraction of data leaks while keeping the rate of false positives low. On DROIDBENCH, FLOWDROID achieves 93% recall and 86% precision, greatly outperforming the commercial tools IBM AppScan Source and Fortify SCA. FLOWDROID successfully finds leaks in a subset of 500 apps from Google Play and about 1,000 malware apps from the VirusShare project.

✨ Summary

Summary

FlowDroid established a precise static-taint-analysis design for Android by combining lifecycle and callback modeling with context-, flow-, field-, and object-sensitive analysis. Its accompanying DroidBench suite provided a reusable benchmark for evaluating Android taint-analysis tools. The paper was published at PLDI ’14 in 2014. (ris.uni-paderborn.de)

Subsequent research built directly on or evaluated against FlowDroid. IccTA combined FlowDroid with Epicc to analyze inter-component and inter-application data flows, using FlowDroid for lifecycle modeling and taint propagation. (bodden.de) Later tools and studies, including DroidInfer, FastDroid, TaintBench, and ReproDroid, treated FlowDroid as a reference implementation or baseline for Android taint-analysis accuracy, scalability, benchmarking, and reproducibility. (cs.rpi.edu)

The open-source FlowDroid project continues to provide an implementation and library for Android and Java data-flow analysis; its maintainers state that it is used in academic and industrial research. (github.com) Extensions have also used FlowDroid as a foundation for specialized analyses, such as reflection-aware leak detection and sensor-focused privacy analysis. (arxiv.org)