[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3368089.3409745acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Borrowing your enemy’s arrows: the case of code reuse in Android via direct inter-app code invocation

Published: 08 November 2020 Publication History

Abstract

The Android ecosystem offers different facilities to enable communication among app components and across apps to ensure that rich services can be composed through functionality reuse. At the heart of this system is the Inter-component communication (ICC) scheme, which has been largely studied in the literature. Less known in the community is another powerful mechanism that allows for direct inter-app code invocation which opens up for different reuse scenarios, both legitimate or malicious. This paper exposes the general workflow for this mechanism, which beyond ICCs, enables app developers to access and invoke functionalities (either entire Java classes, methods or object fields) implemented in other apps using official Android APIs. We experimentally showcase how this reuse mechanism can be leveraged to “plagiarize" supposedly-protected functionalities. Typically, we were able to leverage this mechanism to bypass security guards that a popular video broadcaster has placed for preventing access to its video database from outside its provided app. We further contribute with a static analysis toolkit, named DICIDer, for detecting direct inter-app code invocations in apps. An empirical analysis of the usage prevalence of this reuse mechanism is then conducted. Finally, we discuss the usage contexts as well as the implications of this studied reuse mechanism.

Supplementary Material

Auxiliary Teaser Video (fse20main-p577-p-teaser.mp4)
This is the presentation video of my talk at FSE 2020 conference. The paper is published on the research track of this conference in which the main contribution is: 1) disclosed a less known mechanism which can let developers to invoke the code of other apps, 2) proved its feasibility by showcasing 2 concrete apps of DICI, 3) developed a tool to detect the use of DICI in Android apps, 4) did a large scale empirical study and answered 3 research questions about DICI, 5) also proposed 2 countermeasures from both the Android framework point of view and developer point of view.
Auxiliary Presentation Video (fse20main-p577-p-video.mp4)
This is the presentation video of my talk at FSE 2020 conference. The paper is published on the research track of this conference in which the main contribution is: 1) disclosed a less known mechanism which can let developers to invoke the code of other apps, 2) proved its feasibility by showcasing 2 concrete apps of DICI, 3) developed a tool to detect the use of DICI in Android apps, 4) did a large scale empirical study and answered 3 research questions about DICI, 5) also proposed 2 countermeasures from both the Android framework point of view and developer point of view.

References

[1]
William B Frakes and Kyo Kang. Software reuse research: Status and future. IEEE transactions on Software Engineering, 31 ( 7 ): 529-536, 2005.
[2]
Israel J Mojica Ruiz, Meiyappan Nagappan, Bram Adams, and Ahmed E Hassan. Understanding reuse in the android market. In 2012 20th IEEE International Conference on Program Comprehension (ICPC), pages 113-122. IEEE, 2012.
[3]
Li Li, Tegawendé F Bissyandé, and Jacques Klein. Rebooting research on detecting repackaged android apps: Literature review and benchmark. IEEE Transactions on Software Engineering, 2019.
[4]
Li Li, Daoyuan Li, Tegawendé F Bissyandé, Jacques Klein, Yves Le Traon, David Lo, and Lorenzo Cavallaro. Understanding android app piggybacking: A systematic study of malicious code grafting. IEEE Transactions on Information Forensics and Security, 12 ( 6 ): 1269-1284, 2017.
[5]
Li Li, Tegawendé F Bissyandé, and Jacques Klein. Simidroid: Identifying and explaining similarities in android apps. In The 16th IEEE International Conference On Trust, Security And Privacy In Computing And Communications (TrustCom 2017 ), 2017.
[6]
Jin-Hyuk Jung, Ju Young Kim, Hyeong-Chan Lee, and Jeong Hyun Yi. Repackaging attack on android banking applications and its countermeasures. Wireless Personal Communications, 73 ( 4 ): 1421-1437, 2013.
[7]
Wu Zhou, Xinwen Zhang, and Xuxian Jiang. Appink: watermarking android apps for repackaging deterrence. In Proceedings of the 8th ACM SIGSAC symposium on Information, computer and communications security, pages 1-12, 2013.
[8]
Mu Zhang and Heng Yin. Appsealer: Automatic generation of vulnerabilityspecific patches for preventing component hijacking attacks in android applications. In NDSS, 2014.
[9]
Long Lu, Zhichun Li, Zhenyu Wu, Wenke Lee, and Guofei Jiang. Chex: statically vetting android apps for component hijacking vulnerabilities. In Proceedings of the 2012 ACM conference on Computer and communications security, pages 229-240, 2012.
[10]
Damien Octeau, Somesh Jha, Matthew Dering, Patrick Mcdaniel, Alexandre Bartel, Li Li, Jacques Klein, and Yves Le Traon. Combining static analysis with probabilistic models to enable market-scale android inter-component analysis. In Proceedings of the 43th Symposium on Principles of Programming Languages (POPL 2016 ), 2016.
[11]
Damien Octeau, Patrick McDaniel, Somesh Jha, Alexandre Bartel, Eric Bodden, Jacques Klein, and Yves Le Traon. Efective inter-component communication mapping in android: An essential step towards holistic security analysis. In Presented as part of the 22nd USENIX Security Symposium (USENIX Security 13), pages 543-558, Washington, D.C., 2013. USENIX.
[12]
Damien Octeau, Patrick McDaniel, Somesh Jha, Alexandre Bartel, Eric Bodden, Jacques Klein, and Yves Le Traon. Efective inter-component communication mapping in android: An essential step towards holistic security analysis. In Presented as part of the 22nd {USENIX} Security Symposium ({USENIX} Security 13), pages 543-558, 2013.
[13]
L. Li, A. Bartel, T. F. Bissyandé, J. Klein, Y. Le Traon, S. Arzt, S. Rasthofer, E. Bodden, D. Octeau, and P. McDaniel. Iccta : Detecting inter-component privacy leaks in android apps. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, volume 1, pages 280-291, May 2015.
[14]
Jonathan Burket, Lori Flynn, William Klieber, Jonathan Lim, Wei Shen, and William Snavely. Making didfail succeed: Enhancing the cert static taint analyzer for android app sets. Technical report, CARNEGIE-MELLON UNIV PITTSBURGH PA PITTSBURGH United States, 2015.
[15]
Adam P Fuchs, Avik Chaudhuri, and Jefrey S Foster. Scandroid: Automated security certification of android. Technical report, 2009.
[16]
Lei Wu, Michael Grace, Yajin Zhou, Chiachih Wu, and Xuxian Jiang. The impact of vendor customizations on android security. In Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security, pages 623-634, 2013.
[17]
Adrienne Porter Felt, Helen J Wang, Alexander Moshchuk, Steve Hanna, and Erika Chin. Permission re-delegation: Attacks and defenses. In USENIX Security Symposium, volume 30, page 88, 2011.
[18]
Tristan Ravitch, E Rogan Creswick, Aaron Tomb, Adam Foltzer, Trevor Elliott, and Ledah Casburn. Multi-app security analysis with fuse: Statically detecting android app collusion. In Proceedings of the 4th Program Protection and Reverse Engineering Workshop, pages 1-10, 2014.
[19]
Amiangshu Bosu, Fang Liu, Danfeng Yao, and Gang Wang. Collusive data leak and more: Large-scale threat analysis of inter-app communications. In Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security, pages 71-85, 2017.
[20]
Kevin Allix, Tegawendé F. Bissyandé, Jacques Klein, and Yves Le Traon. Androzoo: Collecting millions of android apps for the research community. In Proceedings of the 13th International Conference on Mining Software Repositories, MSR '16, pages 468-471, New York, NY, USA, 2016. ACM.
[21]
Karim O Elish, Haipeng Cai, Daniel Barton, Danfeng Yao, and Barbara G Ryder. Identifying mobile inter-app communication risks. IEEE Transactions on Mobile Computing, 19 ( 1 ): 90-102, 2018.
[22]
Shweta Bhandari, Wafa Ben Jaballah, Vineeta Jain, Vijay Laxmi, Akka Zemmari, Manoj Singh Gaur, Mohamed Mosbah, and Mauro Conti. Android inter-app communication threats and detection techniques. Computers & Security, 70 : 392-421, 2017.
[23]
Li Li, Alexandre Bartel, Tegawendé F Bissyandé, Jacques Klein, and Yves Le Traon. Apkcombiner: Combining multiple android apps to support inter-app analysis. In IFIP International Information Security and Privacy Conference, pages 513-527. Springer, 2015.
[24]
TikTok. Web site: https://www.tiktok.com.
[25]
Jinyung Kim, Yongho Yoon, Kwangkeun Yi, Junbum Shin, and SWRD Center. Scandal: Static analyzer for detecting privacy leaks in android applications. MoST, 12 ( 110 ): 1, 2012.
[26]
Christopher Mann and Artem Starostin. A framework for static detection of privacy leaks in android applications. In Proceedings of the 27th annual ACM symposium on applied computing, pages 1457-1462, 2012.
[27]
Siddharth Prakash Rao, Silke Holtmanns, Ian Oliver, and Tuomas Aura. Unblocking stolen mobile devices using ss7-map vulnerabilities: Exploiting the relationship between imei and imsi for eir access. In 2015 IEEE Trustcom/BigDataSE/ISPA, volume 1, pages 1171-1176. IEEE, 2015.
[28]
Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel. Flowdroid: Precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps. SIGPLAN Not., 49 ( 6 ): 259-269, June 2014.
[29]
Siegfried Rasthofer, Steven Arzt, and Eric Bodden. A machine-learning approach for classifying and categorizing android sources and sinks. In NDSS, volume 14, page 1125. Citeseer, 2014.
[30]
Li Li, Tegawendé F. Bissyandé, Damien Octeau, and Jacques Klein. Droidra: Taming reflection to support whole-program analysis of android apps. In Proceedings of the 25th International Symposium on Software Testing and Analysis, ISSTA 2016, page 318-329, New York, NY, USA, 2016. Association for Computing Machinery.
[31]
P. Calciati and A. Gorla. How do apps evolve in their permission requests? a preliminary study. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR), pages 37-41, May 2017.
[32]
Xuetao Wei, Lorenzo Gomez, Iulian Neamtiu, and Michalis Faloutsos. Permission evolution in the android ecosystem. In Proceedings of the 28th Annual Computer Security Applications Conference, ACSAC ' 12, pages 31-40, New York, NY, USA, 2012. Association for Computing Machinery.
[33]
Patrick Lam, Eric Bodden, Ondrej Lhoták, and Laurie Hendren. The soot framework for java program analysis: a retrospective. In Cetus Users and Compiler Infastructure Workshop (CETUS 2011 ), volume 15, page 35, 2011.
[34]
Li Li, Jun Gao, Médéric Hurier, Pingfan Kong, Tegawendé F. Bissyandé, Alexandre Bartel, Jacques Klein, and Yves Le Traon. Androzoo++: Collecting millions of android apps and their metadata for the research community, 2017.
[35]
Haoyu Wang, Zhe Liu, Jingyue Liang, Narseo Vallina-Rodriguez, Yao Guo, Li Li, Juan Tapiador, Jingcun Cao, and Guoai Xu. Beyond google play: A large-scale comparative study of chinese android app markets. In The 2018 Internet Measurement Conference (IMC 2018 ), 2018.
[36]
VirusTotal. Web site: https://www.virustotal.com/.
[37]
J. Gao, L. Li, P. Kong, T. F. Bissyandé, and J. Klein. Understanding the evolution of android app vulnerabilities. IEEE Transactions on Reliability, pages 1-19, 2019.
[38]
Francesco Mercaldo, Vittoria Nardone, Antonella Santone, and Corrado Aaron Visaggio. Download malware? no, thanks: how formal methods can block update attacks. In Proceedings of the 4th FME Workshop on Formal Methods in Software Engineering, pages 22-28, 2016.
[39]
David Barrera, Jeremy Clark, Daniel McCarney, and Paul C Van Oorschot. Understanding and improving app installation security mechanisms through empirical analysis of android. In Proceedings of the second ACM workshop on Security and privacy in smartphones and mobile devices, pages 81-92, 2012.
[40]
Li Li, Tegawendé F Bissyandé, and Jacques Klein. Moonlightbox: Mining android api histories for uncovering release-time inconsistencies. In The 29th IEEE International Symposium on Software Reliability Engineering (ISSRE 2018 ), 2018.
[41]
Li Li, Tegawendé F Bissyandé, Mike Papadakis, Siegfried Rasthofer, Alexandre Bartel, Damien Octeau, Jacques Klein, and Yves Le Traon. Static analysis of android apps: A systematic literature review. Information and Software Technology, 2017.
[42]
Li Li, Tegawendé F Bissyandé, Damien Octeau, and Jacques Klein. Droidra: Taming reflection to support whole-program analysis of android apps. In The 2016 International Symposium on Software Testing and Analysis (ISSTA 2016 ), 2016.
[43]
Tianming Liu, Haoyu Wang, Li Li, Xiapu Luo, Feng Dong, Yao Guo, Liu Wang, Tegawendé F Bissyandé, and Jacques Klein. Maddroid: Characterising and detecting devious ad content for android apps. In The Web Conference 2020 (WWW 2020 ), 2020.
[44]
Feng Dong, Haoyu Wang, Li Li, Yao Guo, Tegawendé F Bissyandé, Tianming Liu, Guoai Xu, and Jacques Klein. Frauddroid: Automated ad fraud detection for android apps. In The 26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018), 2018.
[45]
Feng Dong, Haoyu Wang, Li Li, Yao Guo, Guoai Xu, and Shaodong Zhang. How do mobile apps violate the behavioral policy of advertisement libraries? In The 19th Workshop on Mobile Computing Systems and Applications (HotMobile 2018 ), 2018.
[46]
Li Li, Kevin Allix, Daoyuan Li, Alexandre Bartel, Tegawendé F Bissyandé, and Jacques Klein. Potential Component Leaks in Android Apps: An Investigation into a new Feature Set for Malware Detection. In The 2015 IEEE International Conference on Software Quality, Reliability & Security (QRS), 2015.
[47]
Michael Grace, Yajin Zhou, Qiang Zhang, Shihong Zou, and Xuxian Jiang. Riskranker: scalable and accurate zero-day android malware detection. In Proceedings of the 10th international conference on Mobile systems, applications, and services, pages 281-294, 2012.
[48]
Dong-Jie Wu, Ching-Hao Mao, Te-En Wei, Hahn-Ming Lee, and Kuo-Ping Wu. Droidmat: Android malware detection through manifest and api calls tracing. In 2012 Seventh Asia Joint Conference on Information Security, pages 62-69. IEEE, 2012.
[49]
Haowei Wu, Shengqian Yang, and Atanas Rountev. Static detection of energy defect patterns in android applications. In Proceedings of the 25th International Conference on Compiler Construction, pages 185-195, 2016.
[50]
Luis Cruz, Rui Abreu, John Grundy, Li Li, and Xin Xia. Do energy-oriented changes hinder maintainability? In The 35th IEEE International Conference on Software Maintenance and Evolution (ICSME 2019 ), 2019.
[51]
Pingfan Kong, Li Li, Jun Gao, Tegawendé F Bissyandé, and Jacques Klein. Mining android crash fixes in the absence of issue-and change-tracking systems. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, pages 78-89, 2019.
[52]
Shin Hwei Tan, Zhen Dong, Xiang Gao, and Abhik Roychoudhury. Repairing crashes in android apps. In 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE), pages 187-198. IEEE, 2018.
[53]
Pingfan Kong, Li Li, Jun Gao, Kui Liu, Tegawendé F Bissyandé, and Jacques Klein. Automated testing of android apps: A systematic literature review. IEEE Transactions on Reliability, 68 ( 1 ): 45-66, 2018.
[54]
Ke Mao, Mark Harman, and Yue Jia. Sapienz: Multi-objective automated testing for android applications. In Proceedings of the 25th International Symposium on Software Testing and Analysis, pages 94-105, 2016.
[55]
Hailong Zhang, Haowei Wu, and Atanas Rountev. Automated test generation for detection of leaks in android applications. In Proceedings of the 11th International Workshop on Automation of Software Test, pages 64-70, 2016.
[56]
Ting Su, Guozhu Meng, Yuting Chen, Ke Wu, Weiming Yang, Yao Yao, Geguang Pu, Yang Liu, and Zhendong Su. Guided, stochastic model-based gui testing of android apps. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, pages 245-256, 2017.
[57]
Dragos Sbîrlea, Michael G Burke, Salvatore Guarnieri, Marco Pistoia, and Vivek Sarkar. Automatic detection of inter-application permission leaks in android applications. IBM Journal of Research and Development, 57 ( 6 ): 10-1, 2013.
[58]
Roee Hay, Omer Tripp, and Marco Pistoia. Dynamic detection of inter-application communication vulnerabilities in android. In Proceedings of the 2015 International Symposium on Software Testing and Analysis, pages 118-128, 2015.

Cited By

View all
  • (2023)Demystifying Hidden Sensitive Operations in Android AppsACM Transactions on Software Engineering and Methodology10.1145/357415832:2(1-30)Online publication date: 29-Mar-2023
  • (2023)DAISY: Dynamic-Analysis-Induced Source Discovery for Sensitive DataACM Transactions on Software Engineering and Methodology10.1145/356993632:4(1-34)Online publication date: 27-May-2023
  • (2023)IAFDroid: Demystifying Collusion Attacks in Android Ecosystem via Precise Inter-App AnalysisIEEE Transactions on Information Forensics and Security10.1109/TIFS.2023.326766618(2883-2898)Online publication date: 2023
  • Show More Cited By

Index Terms

  1. Borrowing your enemy’s arrows: the case of code reuse in Android via direct inter-app code invocation

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ESEC/FSE 2020: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
    November 2020
    1703 pages
    ISBN:9781450370431
    DOI:10.1145/3368089
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 08 November 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Badges

    Author Tags

    1. Android
    2. DICI
    3. Java Reflection

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    ESEC/FSE '20
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 112 of 543 submissions, 21%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)28
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 12 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Demystifying Hidden Sensitive Operations in Android AppsACM Transactions on Software Engineering and Methodology10.1145/357415832:2(1-30)Online publication date: 29-Mar-2023
    • (2023)DAISY: Dynamic-Analysis-Induced Source Discovery for Sensitive DataACM Transactions on Software Engineering and Methodology10.1145/356993632:4(1-34)Online publication date: 27-May-2023
    • (2023)IAFDroid: Demystifying Collusion Attacks in Android Ecosystem via Precise Inter-App AnalysisIEEE Transactions on Information Forensics and Security10.1109/TIFS.2023.326766618(2883-2898)Online publication date: 2023
    • (2023)Variable-strength combinatorial testing of exported activities based on misexposure predictionJournal of Systems and Software10.1016/j.jss.2023.111773204:COnline publication date: 1-Oct-2023
    • (2022)VenomAttack: automated and adaptive activity hijacking in AndroidFrontiers of Computer Science10.1007/s11704-021-1126-x17:1Online publication date: 8-Aug-2022
    • (2021)A Journey Through Android App Analysis: Solutions and Open ChallengesProceedings of the 2021 International Symposium on Advanced Security on Software and Systems10.1145/3457340.3458298(1-6)Online publication date: 7-Jun-2021
    • (2021)On the Impact of Sample Duplication in Machine-Learning-Based Android Malware DetectionACM Transactions on Software Engineering and Methodology10.1145/344690530:3(1-38)Online publication date: 8-May-2021
    • (2021)Characterizing Sensor Leaks in Android Apps2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE52982.2021.00058(498-509)Online publication date: Oct-2021
    • (2021)Software Reuse Exploits in Node.js Web Apps2021 5th International Conference on System Reliability and Safety (ICSRS)10.1109/ICSRS53853.2021.9660640(190-197)Online publication date: 24-Nov-2021
    • (2020)KnowledgeZooClientProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3417113.3422187(73-78)Online publication date: 21-Sep-2020

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media