Heaps'n leaks: how heap snapshots improve Android taint analysis
Manuel Benz, Erik Krogh Kristensen, Linghui Luo, Nataniel P. Borges, Eric Bodden, Andreas Zeller
Abstract
The assessment of information flows is an essential part of analyzing Android apps, and is frequently supported by static taint analysis. Its precision, however, can suffer from the analysis not being able to precisely determine what elements a pointer can (and cannot) point to. Recent advances in static analysis suggest that incorporating dynamic heap snapshots, taken at one point at runtime, can significantly improve general static analysis. In this paper, we investigate to what extent this also holds for taint analysis, and how various design decisions, such as when and how many snapshots are collected during execution, and how exactly they are used, impact soundness and precision. We have extended FlowDroid to incorporate heap snapshots, yielding our prototype Heapster, and evaluated it on DroidMacroBench, a novel benchmark comprising real-world Android apps that we also make available as an artifact. The results show (1) the use of heap snapshots lowers analysis time and memory consumption while increasing precision; (2) a very good trade-off between precision and recall is achieved by a mixed mode in which the analysis falls back to static points-to relations for objects for which no dynamic data was recorded; and (3) while a single heap snapshot (ideally taken at the end of the execution) suffices to improve performance and precision, a better trade-off can be obtained by using multiple snapshots. CCS CONCEPTS • Software and its engineering → Software testing and debugging;
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext c11cf5ca-1ed5-4b7d-9ce2-6a44a4f3c3fdCited by top-tier papers6
- Improving Java Deserialization Gadget Chain Mining via Overriding-Guided Object GenerationSicong Cao, Xiaobing Sun, Xiaoxue Wu, Lili Bo et al.ICSE 2023 · 24 citations
- RESIN: A Holistic Service for Dealing with Memory Leaks in Production Cloud InfrastructureChang Lou, Cong Chen, Peng Huang, Yingnong Dang et al.OSDI 2022 · 18 citations
- Reducing the Memory Footprint of IFDS-Based Data-Flow Analyses using Fine-Grained Garbage CollectionDongjie He, Yujiang Gui, Yaoqing Gao, Jingling XueISSTA 2023 · 6 citations
- Merge-Replay: Efficient IFDS-Based Taint Analysis by Consolidating Equivalent Value FlowsYujiang Gui, Dongjie He, Jingling XueASE 2023 · 6 citations
- Fast and Precise Application Code Analysis using a Partial LibraryAkshay Utture, Jens PalsbergICSE 2022 · 4 citations
Builds on2
- IntelliDroid: A Targeted Input Generator for the Dynamic Analysis of Android MalwareMichelle Y. Wong, David LieNDSS 2016 · 253 citations
- Harvesting Runtime Values in Android Applications That Feature Anti-Analysis TechniquesSiegfried Rasthofer, Steven Arzt, Marc Miltenberger, Eric BoddenNDSS 2016 · 157 citations
Related papers
- The impact of tool configuration spaces on the evaluation of configurable taint analysis for AndroidAustin Mordahl, Shiyi WeiISSTA 2021 · 13 citations
- PacDroid: A Pointer-Analysis-Centric Framework for Security Vulnerabilities in Android AppsMenglong Chen, Tian Tan, Minxue Pan, Yue LiICSE 2025 · 1 citation
- Boosting the Performance of Alias-Aware IFDS Analysis with CFL-Based Environment TransformersHaofeng Li, Chenghang Shi, Jie Lu, Lian Li et al.OOPSLA 2024 · 6 citations
- ViaLin: Path-Aware Dynamic Taint Analysis for AndroidKhaled Ahmed, Yingying Wang, Mieszko Lis, Julia RubinFSE 2023 · 7 citations
- ConDySTA: Context-Aware Dynamic Supplement to Static Taint AnalysisXueling Zhang, Xiaoyin Wang, Rocky Slavin, Jianwei NiuS&P 2021 · 22 citations
