AndroLog: Android Instrumentation and Code Coverage Analysis (2404.11223v1)
Abstract: Dynamic analysis has emerged as a pivotal technique for testing Android apps, enabling the detection of bugs, malicious code, and vulnerabilities. A key metric in evaluating the efficacy of tools employed by both research and practitioner communities for this purpose is code coverage. Obtaining code coverage typically requires planting probes within apps to gather coverage data during runtime. Due to the general unavailability of source code to analysts, there is a necessity for instrumenting apps to insert these probes in black-box environments. However, the tools available for such instrumentation are limited in their reliability and require intrusive changes interfering with apps' functionalities. This paper introduces AndroLog a novel tool developed on top of the Soot framework, designed to provide fine-grained coverage information at multiple levels, including class, methods, statements, and Android components. In contrast to existing tools, AndroLog leaves the responsibility to test apps to analysts, and its motto is simplicity. As demonstrated in this paper, AndroLog can instrument up to 98% of recent Android apps compared to existing tools with 79% and 48% respectively for COSMO and ACVTool. AndroLog also stands out for its potential for future enhancements to increase granularity on demand. We make AndroLog available to the community and provide a video demonstration of AndroLog (see section 8).
- GroddDroid: a gorilla for triggering malicious behaviors. In 2015 10th International Conference on Malicious and Unwanted Software (MALWARE). 119–127. https://doi.org/10.1109/MALWARE.2015.7413692
- AndroZoo: Collecting Millions of Android Apps for the Research Community. In Proceedings of the 13th International Conference on Mining Software Repositories (Austin, Texas) (MSR ’16). ACM, New York, NY, USA, 468–471. https://doi.org/10.1145/2901739.2903508
- DroidMate-2: a platform for Android test generation. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (Montpellier, France) (ASE ’18). Association for Computing Machinery, New York, NY, USA, 916–919. https://doi.org/10.1145/3238147.3240479
- DroidHook: a novel API-hook based Android malware dynamic analysis sandbox. Automated Software Engineering 30, 1 (24 Feb 2023), 10. https://doi.org/10.1007/s10515-023-00378-w
- DexRay: A Simple, yet Effective Deep Learning Approach to Android Malware Detection Based on Image Representation of Bytecode. In Deployable Machine Learning for Security Defense, Gang Wang, Arridhana Ciptadi, and Ali Ahmadzadeh (Eds.). Springer International Publishing, Cham, 81–106.
- Emma. 2024. Emma: a free Java code coverage tool.http://emma.sourceforge.net. Accessed January 2024.
- ANASTASIA: ANdroid mAlware detection using STatic analySIs of Applications. In 2016 8th IFIP International Conference on New Technologies, Mobility and Security (NTMS). 1–5. https://doi.org/10.1109/NTMS.2016.7792435
- Google. 2023. Google Play Protectionhttps://developers.google.com/android/play-protect/cloud-based-protections. Accessed November 2023.
- PUMA: Programmable UI-Automation for Large-Scale Dynamic Analysis of Mobile Apps. In Proceedings of the 12th Annual International Conference on Mobile Systems, Applications, and Services (Bretton Woods, New Hampshire, USA) (MobiSys ’14). Association for Computing Machinery, New York, NY, USA, 204–217. https://doi.org/10.1145/2594368.2594390
- Code Coverage Measurement for Android Dynamic Analysis Tools. In 2015 IEEE International Conference on Mobile Services. 209–216. https://doi.org/10.1109/MobServ.2015.38
- JaCoCO. 2024. JaCoCo repositoryhttps://www.eclemma.org/jacoco/. Accessed January 2024.
- Detecting and Classifying Android Malware Using Static Analysis along with Creator Information. International Journal of Distributed Sensor Networks 11, 6 (2015), 479174. https://doi.org/10.1155/2015/479174 arXiv:https://doi.org/10.1155/2015/479174
- InsDal: A safe and extensible instrumentation tool on Dalvik byte-code for Android applications. In 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER). 502–506. https://doi.org/10.1109/SANER.2017.7884662
- Dynodroid: An Input Generation System for Android Apps. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering (Saint Petersburg, Russia) (ESEC/FSE 2013). Association for Computing Machinery, New York, NY, USA, 224–234. https://doi.org/10.1145/2491411.2491450
- N. Peiravian and X. Zhu. 2013. Machine Learning for Android Malware Detection Using Permission and API Calls. In 2013 IEEE 25th International Conference on Tools with Artificial Intelligence. 300–305. https://doi.org/10.1109/ICTAI.2013.53
- Rage against the Virtual Machine: Hindering Dynamic Analysis of Android Malware. In Proceedings of the Seventh European Workshop on System Security (Amsterdam, The Netherlands) (EuroSec ’14). Association for Computing Machinery, New York, NY, USA, Article 5, 6 pages. https://doi.org/10.1145/2592791.2592796
- Fine-Grained Code Coverage Measurement in Automated Black-Box Android Testing. ACM Trans. Softw. Eng. Methodol. 29, 4, Article 23 (jul 2020), 35 pages. https://doi.org/10.1145/3395042
- COSMO: Code Coverage Made Easier for Android. In 2021 14th IEEE Conference on Software Testing, Verification and Validation (ICST). 417–423. https://doi.org/10.1109/ICST49551.2021.00053
- J. Sahs and L. Khan. 2012. A Machine Learning Approach to Android Malware Detection. In 2012 European Intelligence and Security Informatics Conference. 141–147. https://doi.org/10.1109/EISIC.2012.34
- JuCify: A Step Towards Android Code Unification for Enhanced Static Analysis. In 2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE). IEEE Computer Society, Los Alamitos, CA, USA, 1232–1244. https://doi.org/10.1145/3510003.3512766
- Demystifying Hidden Sensitive Operations in Android apps. In ACM Transactions on Software Engineering and Methodology.
- Mustafa M Tikir and Jeffrey K Hollingsworth. 2002. Efficient instrumentation for code coverage testing. ACM SIGSOFT Software Engineering Notes 27, 4 (2002), 86–96.
- 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.
- Raja Vallee-Rai and Laurie J Hendren. 1998. Jimple: Simplifying Java bytecode for analyses and transformations. no (1998).
- Dynamic analysis of android malware. Internet & Web Technology Master thesis, VU University Amsterdam (2013).
- Testing Apps With Real-World Inputs. In Proceedings of the IEEE/ACM 1st International Conference on Automation of Software Test (Seoul, Republic of Korea) (AST ’20). Association for Computing Machinery, New York, NY, USA, 1–10. https://doi.org/10.1145/3387903.3389310
- A grey-box approach for automated GUI-model generation of mobile applications. In International Conference on Fundamental Approaches to Software Engineering. Springer, 250–265.
- Chao-Chun Yeh and Shih-Kun Huang. 2015. CovDroid: A Black-Box Testing Coverage System for Android. In 2015 IEEE 39th Annual Computer Software and Applications Conference, Vol. 3. 447–452. https://doi.org/10.1109/COMPSAC.2015.125
- Towards Black Box Testing of Android Apps. In 2015 10th International Conference on Availability, Reliability and Security. 501–510. https://doi.org/10.1109/ARES.2015.70
- Jordan Samhi (17 papers)
- Andreas Zeller (29 papers)