Tool Selection and Configurations
Tool Selection
Besides using FlowDroid, Amandroid, and DroidSafe, we performed a systematic literature review identifying relevant papers published between January 2016 and December 2020. We identified 41 papers related to static taint analysis. The availability and applicability are listed in the following table. The tool we included (DroidRA) is highlighted in blue.
ID | Year | Title | Included/Excluded? | Reason |
---|---|---|---|---|
1 | 2020 | DroidRista: a highly precise static data flow analysis framework for android applications | Excluded | We contacted the authors for source code but there was no response. |
2 | 2020 | Borrowing your enemy's arrows: the case of code reuse in Android via direct inter-app code invocation | Excluded | This tool is designed for detecting IAC flows only. |
3 | 2020 | FIRMSCOPE: Automatic Uncovering of Privilege-Escalation Vulnerabilities in Pre-Installed Apps in Android Firmware | Excluded | We contacted the authors for source code but there was no response. |
4 | 2020 | Broadening Horizons of Multilingual Static Analysis: Semantic Summary Extraction from C Code for JNI Program Analysis | Excluded | This tool is designed for performaing native code analysis. |
5 | 2020 | Compositional Taint Analysis of Native Codes for Security Vetting of Android Applications | Excluded | This tool is designed for performaing native code analysis. |
6 | 2020 | Improving Taint Analysis of Android Applications Using Finite State Machines | Excluded | The authors explicitly informed us that the tool is not open-source. |
7 | 2020 | Inter-Language Static Analysis for Android Application Security | Excluded | This tool is designed for performaing native code analysis. |
8 | 2019 | IIFA: modular inter-app intent information flow analysis of android applications | Excluded | The authors explicitly informed us that the tool is not open-source. |
9 | 2019 | Specifying callback control flow of mobile apps using Finite Automata | Excluded | We contacted the authors for source code but there was no response. |
10 | 2019 | Performance-boosting sparsification of the IFDS algorithm with applications to taint analysis | Excluded | The authors explicitly informed us that the tool is not open-source. |
11 | 2019 | FastDroid: efficient taint analysis for Android applications | Excluded | The authors explicitly informed us that the tool is not open-source. |
12 | 2019 | A scalable, flow-and-context-sensitive taint analysis of android applications | Excluded | The authors explicitly informed us that the tool is not open-source. |
13 | 2019 | PILDroid: A System for Detecting the Leakage of Privacy Information using the JNI | Excluded | This tool is designed for performaing native code analysis. |
14 | 2019 | A Static Detection of Inter-Component Communication Vulnerability in Android Application | Excluded | The authors explicitly informed us that the tool is not open-source. |
15 | 2019 | APPLADroid: Automaton Based Inter-app Privacy Leak Analysis for Android | Excluded | This tool is designed for detecting IAC flows only. |
16 | 2018 | Jn-saf: Precise and efficient ndk/jni-aware inter-language static analysis framework for security vetting of android applications with native code | Excluded | This tool is designed for performaing native code analysis. |
17 | 2018 | Ripple: Reflection analysis for Android apps in incomplete information environments | Excluded | This tool is built on top of a nightly build of FlowDroid between version 1.0 and 1.5 in 2016, which is not supported by the authors of FlowDroid anymore. We contacted the authors of Ripple to check if they can provide a latest solution with newer FlowDroid but we did not have their response. |
18 | 2018 | Identifying mobile inter-app communication risks | Excluded | This tool is designed for detecting IAC flows only. |
19 | 2018 | Lifting inter-app data-flow analysis to large app sets | Excluded | This tool is designed for detecting IAC flows only. |
20 | 2018 | SDLI: static detection of leaks across intents | Excluded | This tool is designed for detecting IAC flows only. |
21 | 2018 | Detecting privacy leaks in Android apps using inter-component information flow control analysis | Excluded | We contacted the authors for source code but there was no response. |
22 | 2018 | Practical precise taint-flow static analysis for android app sets | Excluded | This tool is designed for detecting IAC flows only. |
23 | 2018 | A Static Analysis Model for Implicit Information Leakage in Android Application | Excluded | This tool is designed for detecting implicit flows. |
24 | 2017 | Collusive data leak and more: Large-scale threat analysis of inter-app communications | Excluded | This tool is designed for detecting IAC flows only. |
25 | 2017 | Precisely and scalably vetting javascript bridge in android hybrid apps | Excluded | This tool is for detecting flows between Java and JavaScript. |
26 | 2017 | Detecting Inter-App Information Leakage Paths | Excluded | This tool is designed for detecting IAC flows only. |
27 | 2017 | Sneakleak: Detecting multipartite leakage paths in android apps | Excluded | This tool is designed for detecting IAC flows only. |
28 | 2017 | Sniffdroid: Detection of inter-app privacy leaks in android | Excluded | This tool is designed for detecting IAC flows only. |
29 | 2017 | SEALANT: A detection and visualization tool for inter-app security vulnerabilities in androic | Excluded | This tool is designed for detecting IAC flows only. |
30 | 2017 | Contextual approach for identifying malicious Inter-Component privacy leaks in Android apps | Excluded | We contacted the authors for source code but there was no response. |
31 | 2017 | Linkflow: Efficient large-scale inter-app privacy leakage detection | Excluded | This tool is designed for detecting IAC flows only. |
32 | 2017 | Improving Leakage Path Coverage in Android Apps | Excluded | This tool is designed for detecting IAC flows only. |
33 | 2017 | An Improved Android Collusion Attack Detection Method Based on Program Slicing | Excluded | This tool is designed for detecting IAC flows only. |
34 | 2016 | Droidra: Taming reflection to support whole-program analysis of android apps | Included | |
35 | 2016 | HybriDroid: static analysis framework for Android hybrid applications | Excluded | This tool is for detecting flows between Java and JavaScript. |
36 | 2016 | HornDroid: Practical and sound static analysis of Android applications by SMT solving | Excluded | This tool only reports sinks for each flow and it requires extra engineering efforts to match sources to sinks to form complete flows. |
37 | 2016 | Dexteroid: Detecting malicious behaviors in android apps using reverse-engineered life cycle models | Excluded | We contacted the authors for source code but there was no response. |
38 | 2016 | R-droid: Leveraging android app analysis with static slice optimization | Excluded | We contacted the authors for source code but there was no response. |
39 | 2016 | Android security analysis based on inter-application relationships | Excluded | This tool is designed for detecting IAC flows only. |
40 | 2016 | DAPA: degradation-aware privacy analysis of android apps | Excluded | Confirmed by the authors, this tool is not able to handle Java and Android library methods unless the users manual analyze and replace library methods in the source code of the apps to the format the tool understands. It is impractical to manually replace all methods in the large numbers of benchmark apps and complicated real apps. |
41 | 2016 | Data Flow Analysis on Android Platform with Fragment Lifecycle Modeling | Excluded | We contacted the authors for source code but there was no response. |
Tool Configurations
We described how we chose the tool configurations for each tool in detail in Section 3.2 of our paper.
We also provided the list of sources and sinks for benchmarks and Google Play apps.