skip to main content
research-article
Public Access

Amandroid: A Precise and General Inter-component Data Flow Analysis Framework for Security Vetting of Android Apps

Published:16 April 2018Publication History
Skip Abstract Section

Abstract

We present a new approach to static analysis for security vetting of Android apps and a general framework called Amandroid. Amandroid determines points-to information for all objects in an Android app component in a flow and context-sensitive (user-configurable) way and performs data flow and data dependence analysis for the component. Amandroid also tracks inter-component communication activities. It can stitch the component-level information into the app-level information to perform intra-app or inter-app analysis. In this article, (a) we show that the aforementioned type of comprehensive app analysis is completely feasible in terms of computing resources with modern hardware, (b) we demonstrate that one can easily leverage the results from this general analysis to build various types of specialized security analyses—in many cases the amount of additional coding needed is around 100 lines of code, and (c) the result of those specialized analyses leveraging Amandroid is at least on par and often exceeds prior works designed for the specific problems, which we demonstrate by comparing Amandroid’s results with those of prior works whenever we can obtain the executable of those tools. Since Amandroid’s analysis directly handles inter-component control and data flows, it can be used to address security problems that result from interactions among multiple components from either the same or different apps. Amandroid’s analysis is sound in that it can provide assurance of the absence of the specified security problems in an app with well-specified and reasonable assumptions on Android runtime system and its library.

References

  1. Google. 2017. Android documentation: Intent and intent filter. Retrieved from http://developer.android.com/guide/components/intents-filters.html.Google ScholarGoogle Scholar
  2. akka. 2016. Actors. Retrieved from http://wala.sourceforge.net/wiki/index.php/UserGuide:CallGraph.Google ScholarGoogle Scholar
  3. Kevin Allix, Tegawendé F. Bissyandé, Jacques Klein, and Yves Le Traon. 2016. AndroZoo: Collecting millions of android apps for the research community. In Proceedings of the MSR. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Andrew W. Appel. 1998. Modern Compiler Implementation in Java. Cambridge University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Steven Arzt and Eric Bodden. 2016. StubDroid: Automatic inference of precise data-flow summaries for the android framework. In Proceedings of the IEEE ICSE. 725--735. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ACM PLDI. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Kathy Wain Yee Au, Yi Fan Zhou, Zhen Huang, and David Lie. 2012. PScout: Analyzing the android permission specification. In Proceedings of the ACM CCS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Vitalii Avdiienko, Konstantin Kuznetsov, Alessandra Gorla, Andreas Zeller, Steven Arzt, Siegfried Rasthofer, and Eric Bodden. 2015. Mining apps for abnormal usage of sensitive data. In Proceedings of the IEEE ICSE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Michael Backes, Sven Bugiel, and Erik Derr. 2016. Reliable third-party library detection in Android and its security applications. In Proceedings of the ACM CCS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Ravi Bhoraskar, Seungyeop Han, Jinseong Jeon, Tanzirul Azim, Shuo Chen, Jaeyeon Jung, Suman Nath, Rui Wang, and David Wetherall. 2014. Brahmastra: Driving apps to test the security of third-party components. In Proceedings of the 23rd USENIX CSS. 1021--1036. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Hiroshi Lockheimer. 2012. Android and Security. Retrieved from http://googlemobile.blogspot.com/2012/02/android-and-security.html.Google ScholarGoogle Scholar
  12. Erika Chin, Adrienne Porter Felt, Kate Greenwood, and David Wagner. 2011. Analyzing inter-application communication in Android. In Proceedings of the ACM Mobisys. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Aske Christensen, Anders Møller, and Michael Schwartzbach. 2003. Precise analysis of string expressions. Static Analysis (2003), 1076--1076. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Cisco. 2014. Cisco 2014 Annual security report. Retrieved from http://www.cisco.com/web/offer/gist_ty2_asset/Cisco_2014_ASR.pdf.Google ScholarGoogle Scholar
  15. M. Conti, B. Crispo, E. Fernandes, and Y. Zhauniarovich. 2012. CRePE: A system for enforcing fine-grained context-related policies on android. IEEE Trans. Info. Forens. Secur. 7, 5 (2012), 1426--1438. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. DroidBench. 2015. DroidBench 2.0. Retrieved from https://github.com/secure-software-engineering/DroidBench.Google ScholarGoogle Scholar
  17. Matthew B. Dwyer, John Hatcliff, Matthew Hoosier, Venkatesh Ranganath, Robby, and Todd Wallentine. 2006. Evaluating the effectiveness of slicing for model reduction of concurrent object-oriented programs. In Proceedings of the TACAS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Manuel Egele, David Brumley, Yanick Fratantonio, and Christopher Kruegel. 2013. An empirical study of cryptographic misuse in Android applications. In Proceedings of the ACM CCS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. William Enck, Peter Gilbert, Byung-Gon Chun, Landon P. Cox, Jaeyeon Jung, Patrick McDaniel, and Anmol Sheth. 2010. TaintDroid: An information-flow tracking system for realtime privacy monitoring on smartphones. In Proceedings of the USENIX OSDI. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. William Enck, Peter Gilbert, Byung-Gon Chun, Landon P. Cox, Jaeyeon Jung, Patrick McDaniel, and Anmol N. Sheth. 2014. TaintDroid: An information flow tracking system for real-time privacy monitoring on smartphones. Commun. ACM 57, 3 (2014), 99--106. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Sascha Fahl, Marian Harbach, Thomas Muders, Lars Baumgärtner, Bernd Freisleben, and Matthew Smith. 2012. Why eve and mallory love android: An analysis of android SSL (in) security. In Proceedings of the ACM CCS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Adrienne Porter Felt, Matthew Finifter, Erika Chin, Steve Hanna, and David Wagner. 2011. A survey of mobile malware in the wild. In Proceedings of the ACM SPSM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Stephen Fink and Julian Dolby. 2012. WALA--The TJ watson libraries for analysis. Retrieved from http://wala.sf.net/.Google ScholarGoogle Scholar
  24. Christian Fritz, Steven Arzt, Siegfried Rasthofer, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel. 2013. Highly Precise Taint Analysis for Android Application. Technical Report. EC SPRIDE.Google ScholarGoogle Scholar
  25. Clint Gibler, Jonathan Crussell, Jeremy Erickson, and Hao Chen. 2012. AndroidLeaks: Automatically detecting potential privacy leaks in android applications on a large scale. In Proceedings of the TRUST. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Michael I. Gordon, Deokhwan Kim, Jeff H. Perkins, Limei Gilham, Nguyen Nguyen, and Martin C. Rinard. 2015. Information flow analysis of android applications in droidsafe. In Proceedings of the NDSS. Citeseer.Google ScholarGoogle Scholar
  27. Michael Grace, Yajin Zhou, Zhi Wang, and Xuxian Jiang. 2012. Systematic detection of capability leaks in stock android smartphones. In Proceedings of the NDSS.Google ScholarGoogle Scholar
  28. Michael C. Grace, Wu Zhou, Xuxian Jiang, and Ahmad Reza Sadeghi. 2012. Unsafe exposure analysis of mobile in-app advertisements. In Proceedings of the ACM WiSec. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. John Hatcliff, Patrice Chalin, Jason Belt, and others. 2013. Explicating symbolic execution (xSymExe): An evidence-based verification framework. In Proceedings of the IEEE ICSE. 222--231. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. ICC-Bench. 2017. Retrieved from https://github.com/fgwei/ICC-Bench.Google ScholarGoogle Scholar
  31. 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 SOAP. 1--6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Ondřej Lhoták and Laurie Hendren. 2003. Scaling java points-to analysis using spark. In Proceedings of the Compiler Construction. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Ding Li, Yingjun Lyu, Mian Wan, and William G. J. Halfond. 2015. String analysis for java and android applications. In Proceedings of the ACM FSE. 661--672. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Li Li, Alexandre Bartel, Tegawendé F. Bissyandé, Jacques Klein, Yves Le Traon, Steven Arzt, Siegfried Rasthofer, Eric Bodden, Damien Octeau, and Patrick Mcdaniel. 2015. IccTA: Detecting inter-component privacy leaks in android apps. In Proceedings of the IEEE ICSE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Li Li, Tegawendé F. Bissyandé, Damien Octeau, and Jacques Klein. 2016. Droidra: Taming reflection to support whole-program analysis of android apps. In Proceedings of the ACM ISSTA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Menghao Li, Wei Wang, Pei Wang, Shuai Wang, Dinghao Wu, Jian Liu, Rui Xue, and Wei Huo. 2017. Libd: Scalable and precise third-party library detection in Android markets. In Proceedings of the IEEE ICSE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Long Lu, Zhichun Li, Zhenyu Wu, Wenke Lee, and Guofei Jiang. 2012. CHEX: Statically vetting Android apps for component hijacking vulnerabilities. In Proceedings of the ACM CCS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Ziang Ma, Haoyu Wang, Yao Guo, and Xiangqun Chen. 2016. LibRadar: Fast and accurate detection of third-party libraries in Android apps. In Proceedings of the IEEE ICSE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. McAfee. 2017. Trojans, ghosts, and more mean bumps ahead for mobile and connected things. Retrieved from https://www.mcafee.com/us/resources/reports/rp-mobile-threat-report-2017.pdf.Google ScholarGoogle Scholar
  40. Flemming Nielson, Hanne R. Nielson, and Chris Hankin. 1999. Principles of Program Analysis. Springer. Google ScholarGoogle Scholar
  41. Damien Octeau, Somesh Jha, Matthew Dering, Patrick McDaniel, Alexandre Bartel, Li Li, Jacques Klein, and Yves Le Traon. 2016. Combining static analysis with probabilistic models to enable market-scale android inter-component analysis. In Proceedings of the ACM POPL, Vol. 51. 469--484. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Damien Octeau, Daniel Luchaup, Matthew Dering, Somesh Jha, and Patrick McDaniel. 2015. Composite constant propagation: Application to android inter-component communication analysis. In Proceedings of the IEEE ICSE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Damien Octeau, Patrick McDaniel, Somesh Jha, Alexandre Bartel, Eric Bodden, Jacques Klein, and Yves Le Traon. 2013. Effective inter-component communication mapping in android with epicc: An essential step towards holistic security analysis. In Proceedings of the USENIX Security Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Machigar Ongtang, Stephen McLaughlin, William Enck, and Patrick McDaniel. 2012. Semantically rich application-centric security in Android. Secur. Commun. Networks 5, 6 (2012), 658--673. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Nicholas J. Percoco and Sean Schulte. 2012. Adventures in bouncerland. Black Hat USA.Google ScholarGoogle Scholar
  46. Sebastian Poeplau, Yanick Fratantonio, Antonio Bianchi, Christopher Kruegel, and Giovanni Vigna. 2014. Execute this! Analyzing unsafe and malicious dynamic code loading in Android applications. In Proceedings of the NDSS. 23--26.Google ScholarGoogle ScholarCross RefCross Ref
  47. Siegfried Rasthofer, Steven Arzt, Marc Miltenberger, and Eric Bodden. 2016. Harvesting runtime values in android applications that feature anti-analysis techniques. In Proceedings of the NDSS.Google ScholarGoogle ScholarCross RefCross Ref
  48. Thomas Reps, Susan Horwitz, and Mooly Sagiv. 1995. Precise interprocedural dataflow analysis via graph reachability. In Proceedings of the ACM POPL. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Mooly Sagiv, Thomas Reps, and Susan Horwitz. 1996. Precise interprocedural dataflow analysis with applications to constant propagation. Theoret. Comput. Sci. 167, 1 (1996), 131--170. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Stephen Smalley and Robert Craig. 2013. Security enhanced (SE) Android: Bringing flexible MAC to Android. In Proceedings of the NDSS.Google ScholarGoogle Scholar
  51. David Sounthiraraj, Justin Sahs, Garret Greenwood, Zhiqiang Lin, and Latifur Khan. 2014. SMV-HUNTER: Large scale, automated detection of SSL/TLS man-in-the-middle vulnerabilities in android apps. In Proceedings of the NDSS.Google ScholarGoogle ScholarCross RefCross Ref
  52. Symantec. 2017. Internet security threat report. Retrieved from https://www.symantec.com/content/dam/symantec/docs/reports/istr-22-2017-en.pdf.Google ScholarGoogle Scholar
  53. Kimberly Tam, Salahuddin J. Khan, Aristide Fattori, and Lorenzo Cavallaro. 2015. CopperDroid: Automatic reconstruction of android malware behaviors. In Proceedings of the NDSS.Google ScholarGoogle ScholarCross RefCross Ref
  54. Hariharan Thiagarajan, John Hatcliff, Jason Belt, and others. 2012. Bakar alir: Supporting developers in construction of information flow contracts in SPARK. In Proceedings of the IEEE SCAM. 132--137. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. TrendMicro. 2017. In review: 2016’s mobile threat landscape brings diversity, scale, and scope. Retrieved from https://blog.trendmicro.com/trendlabs-security-intelligence/2016-mobile-threat-landscape/.Google ScholarGoogle Scholar
  56. Yutaka Tsutano, Shakthi Bachala, Witawas Srisa-an, Gregg Rothermel, and Jackson Dinh. 2017. An efficient, robust, and scalable approach for analyzing interacting android apps. In Proceedings of the IEEE ICSE. 324--334. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Raja Vallée-Rai, Etienne Gagnon, Laurie Hendren, Patrick Lam, Patrice Pominville, and Vijay Sundaresan. 2000. Optimizing java bytecode using the soot framework: Is it feasible? In Proceedings of the Compiler Construction. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Timothy Vidas, Jiaqi Tan, Jay Nahata, Chaur Lih Tan, Nicolas Christin, and Patrick Tague. 2014. A5: Automated analysis of adversarial android applications. In Proceedings of the SPSM. 39--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. WALA. 2014. UserGuide:CallGraph. http://wala.sourceforge.net/wiki/index.php/UserGuide:CallGraph.Google ScholarGoogle Scholar
  60. Rui Wang, Luyi Xing, Xiao Feng Wang, and Shuo Chen. 2013. Unauthorized origin crossing on mobile platforms: Threats and mitigation. In Proceedings of the ACM CCS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Fengguo Wei, Yuping Li, Sankardas Roy, Xinming Ou, and Wu Zhou. 2017. Deep ground truth analysis of current android malware. In Proceedings of the DIMVA. Springer, Bonn, Germany.Google ScholarGoogle ScholarCross RefCross Ref
  62. Fengguo Wei, Sankardas Roy, Xinming Ou, and Robby. 2014. Amandroid: A precise and general inter-component data flow analysis framework for security vetting of android apps. In Proceedings of the ACM CCS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Wikipedia. 2016. Actor model. Retrieved from https://en.wikipedia.org/wiki/Actor_model. (2016).Google ScholarGoogle Scholar
  64. Rubin Xu, Hassen Saïdi, and Ross Anderson. 2012. Aurasium: Practical policy enforcement for android applications. In Proceedings of the USENIX Security Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Lok-Kwong Yan and Heng Yin. 2012. DroidScope: Seamlessly reconstructing the OS and dalvik semantic views for dynamic android malware analysis. In Proceedings of the USENIX Security Symposium. 569--584. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Yajin Zhou and Xuxian Jiang. 2012. Dissecting android malware: Characterization and evolution. In Proceedings of the IEEE SP. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Yajin Zhou, Zhi Wang, Wu Zhou, and Xuxian Jiang. 2012. Hey, you, get off of my market: Detecting malicious apps in official and alternative android markets. In Proceedings of the NDSS.Google ScholarGoogle Scholar

Index Terms

  1. Amandroid: A Precise and General Inter-component Data Flow Analysis Framework for Security Vetting of Android Apps

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Transactions on Privacy and Security
      ACM Transactions on Privacy and Security  Volume 21, Issue 3
      August 2018
      157 pages
      ISSN:2471-2566
      EISSN:2471-2574
      DOI:10.1145/3208360
      Issue’s Table of Contents

      Copyright © 2018 ACM

      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: 16 April 2018
      • Accepted: 1 January 2018
      • Revised: 1 November 2017
      • Received: 1 May 2017
      Published in tops Volume 21, Issue 3

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader