skip to main content
10.1145/3578527.3578545acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisecConference Proceedingsconference-collections
short-paper

Variational Study of the Impact of Call Graphs on Precision of Android Taint Analysis

Published: 23 February 2023 Publication History

Abstract

With the growing advent and usage of Android applications, security of sensitive user information remains to be of paramount concern. A popular way to identify security leaks in Android applications is by performing taint analysis that tries to enlist possible paths in the program through which sources of critical information may get connected to potential sinks that may propagate leaks. Notably, the precision of such “taint information” is heavily dependent on the elements that are responsible for constructing an interprocedural path in a program – primarily, the call graph. This paper is a step towards a larger study to identify the common patterns through which information gets tainted in Android applications, aiming to suggest points in the program analysis space that could lead to their detection in a precise yet efficient manner.
To begin with, we invoke FlowDroid (a popular taint-analysis tool) to analyze Android apps from a variety of domains, and measure the impact of varying the underlying call graph on the computed taint information. We observe that taint information depends significantly on the used call graph, and that certain spurious leaks can be mapped to particular causes of removable imprecision. We further classify the identified leaks into various kinds, and hope to extend this study to identify exact parts of the program that popularly leak out particular kinds of information. Our final goal is to help security analysts select the right interprocedural analysis toolset for identifying bugs in Android apps, as well as to frame app-design guidelines for helping developers first-hand avoid common sources of information leaks from their future artifacts.

References

[1]
Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel. 2014. FlowDroid: Precise Context, Flow, Field, Object-Sensitive and Lifecycle-Aware Taint Analysis for Android Apps. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (Edinburgh, United Kingdom) (PLDI ’14). Association for Computing Machinery, New York, NY, USA, 259–269. https://doi.org/10.1145/2594291.2594299
[2]
David F. Bacon and Peter F. Sweeney. 1996. Fast Static Analysis of C++ Virtual Function Calls. In Proceedings of the 11th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (San Jose, California, USA) (OOPSLA ’96). Association for Computing Machinery, New York, NY, USA, 324–341. https://doi.org/10.1145/236337.236371
[3]
Jeffrey Dean, David Grove, and Craig Chambers. 1995. Optimization of Object-Oriented Programs using Static Class Hierarchy Analysis. Springer-Verlag, 77–101.
[4]
Inspeckage. 2022. Android Package Inspectoror dynamic analysis of Android applications.Retrieved August 31, 2022 from https://github.com/ac-pm/Inspeckage
[5]
William Klieber, Lori Flynn, Amar Bhosale, Limin Jia, and Lujo Bauer. 2014. Android Taint Flow Analysis for App Sets. In Proceedings of the 3rd ACM SIGPLAN International Workshop on the State of the Art in Java Program Analysis (Edinburgh, United Kingdom) (SOAP ’14). Association for Computing Machinery, New York, NY, USA, 1–6. https://doi.org/10.1145/2614628.2614633
[6]
Ondrej Lhoták. 2007. Comparing Call Graphs. In Proceedings of the 7th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (San Diego, California, USA) (PASTE ’07). Association for Computing Machinery, New York, NY, USA, 37–42. https://doi.org/10.1145/1251535.1251542
[7]
Ondrej Lhoták and Laurie Hendren. 2003. Scaling Java Points-to Analysis Using SPARK. In Proceedings of the 12th International Conference on Compiler Construction (Warsaw, Poland) (CC’03). Springer-Verlag, Berlin, Heidelberg, 153–169.
[8]
Yue Li, Tian Tan, Anders Møller, and Yannis Smaragdakis. 2018. Scalability-First Pointer Analysis with Self-Tuning Context-Sensitivity. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Lake Buena Vista, FL, USA) (ESEC/FSE 2018). Association for Computing Machinery, New York, NY, USA, 129–140. https://doi.org/10.1145/3236024.3236041
[9]
Linghui Luo, Eric Bodden, and Johannes Späth. 2019. A Qualitative Analysis of Android Taint-Analysis Results. In Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering (San Diego, California) (ASE ’19). IEEE Press, 102–114. https://doi.org/10.1109/ASE.2019.00020
[10]
Ana Milanova, Atanas Rountev, and Barbara G. Ryder. 2005. Parameterized Object Sensitivity for Points-to Analysis for Java. ACM Trans. Softw. Eng. Methodol. 14, 1 (Jan. 2005), 1–41. https://doi.org/10.1145/1044834.1044835
[11]
Shriya Natesan, Megha Rajeev Gupta, Lakshmi Natesan Iyer, and Deepak Sharma. 2020. Detection of Data Leaks from Android Applications. In 2020 Second International Conference on Inventive Research in Computing Applications (ICIRCA). 326–332. https://doi.org/10.1109/ICIRCA48905.2020.9183066
[12]
Felix Pauck and Heike Wehrheim. 2019. Together Strong: Cooperative Android App Analysis(ESEC/FSE 2019). Association for Computing Machinery, New York, NY, USA, 374–384. https://doi.org/10.1145/3338906.3338915
[13]
Lina Qiu, Yingying Wang, and Julia Rubin. 2018. Analyzing the Analyzers: FlowDroid/IccTA, AmanDroid, and DroidSafe. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis(Amsterdam, Netherlands) (ISSTA 2018). Association for Computing Machinery, New York, NY, USA, 176–186. https://doi.org/10.1145/3213846.3213873
[14]
Vijay Sundaresan, Laurie Hendren, Chrislain Razafimahefa, Raja Vallée-Rai, Patrick Lam, Etienne Gagnon, and Charles Godin. 2000. Practical Virtual Method Call Resolution for Java. In Proceedings of the 15th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications(Minneapolis, Minnesota, USA) (OOPSLA ’00). Association for Computing Machinery, New York, NY, USA, 264–280. https://doi.org/10.1145/353171.353189
[15]
Manas Thakur. 2020. How (Not) to Write Java Pointer Analyses after 2020. In Proceedings of the 2020 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Virtual, USA) (Onward! 2020). Association for Computing Machinery, New York, NY, USA, 134–145. https://doi.org/10.1145/3426428.3426923
[16]
Raja Vallée-Rai, Phong Co, Etienne Gagnon, Laurie Hendren, Patrick Lam, and Vijay Sundaresan. 1999. Soot - a Java Bytecode Optimization Framework. In Proceedings of the 1999 Conference of the Centre for Advanced Studies on Collaborative Research (Mississauga, Ontario, Canada) (CASCON ’99). IBM Press, 13.
[17]
Xiao Xiao and Charles Zhang. 2011. Geometric Encoding: Forging the High Performance Context Sensitive Points-to Analysis for Java. In Proceedings of the 2011 International Symposium on Software Testing and Analysis (Toronto, Ontario, Canada) (ISSTA ’11). Association for Computing Machinery, New York, NY, USA, 188–198. https://doi.org/10.1145/2001420.2001443

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ISEC '23: Proceedings of the 16th Innovations in Software Engineering Conference
February 2023
193 pages
ISBN:9798400700644
DOI:10.1145/3578527
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 February 2023

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Short-paper
  • Research
  • Refereed limited

Conference

ISEC 2023

Acceptance Rates

Overall Acceptance Rate 76 of 315 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 88
    Total Downloads
  • Downloads (Last 12 months)28
  • Downloads (Last 6 weeks)5
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media