Static analysis of android apps: A systematic literature review

被引:178
|
作者
Li, Li [1 ]
Bissyande, Tegawende F. [1 ]
Papadakis, Mike [1 ]
Rasthofer, Siegfried [2 ]
Bartel, Alexandre [1 ,4 ]
Octeau, Damien [3 ]
Klein, Jacques [1 ]
Traon, Le [1 ]
机构
[1] Univ Luxembourg, Interdisciplinary Ctr Secur, Reliabil & Trust SnT, Luxembourg, Luxembourg
[2] Fraunhofer SIT, Darmstadt, Germany
[3] Univ Wisconsin, Dept Comp Sci, 1210 W Dayton St, Madison, WI 53706 USA
[4] Tech Univ Darmstadt, Darmstadt, Germany
关键词
CODE ANALYSIS; SECURITY; PROGRAMS; FLOW;
D O I
10.1016/j.infsof.2017.04.001
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Context: Static analysis exploits techniques that parse program source code or bytecode, often traversing program paths to check some program properties. Static analysis approaches have been proposed for different tasks, including for assessing the security of Android apps, detecting app clones, automating test cases generation, or for uncovering non-functional issues related to performance or energy. The literature thus has proposed a large body of works, each of which attempts to tackle one or more of the several challenges that program analyzers face when dealing with Android apps. Objective: We aim to provide a clear view of the state-of-the-art works that statically analyze Android apps, from which we highlight the trends of static analysis approaches, pinpoint where the focus has been put, and enumerate the key aspects where future researches are still needed. Method: We have performed a systematic literature review (SLR) which involves studying 124 research papers published in software engineering, programming languages and security venues in the last 5 years (January 2011-December 2015). This review is performed mainly in five dimensions: problems targeted by the approach, fundamental techniques used by authors, static analysis sensitivities considered, android characteristics taken into account and the scale of evaluation performed. Results: Our in-depth examination has led to several key findings: 1) Static analysis is largely performed to uncover security and privacy issues; 2) The Soot framework and the Jimple intermediate representation are the most adopted basic support tool and format, respectively; 3) Taint analysis remains the most applied technique in research approaches; 4) Most approaches support several analysis sensitivities, but very few approaches consider path-sensitivity; 5) There is no single work that has been proposed to tackle all challenges of static analysis that are related to Android programming; and 6) Only a small portion of state-of-the-art works have made their artifacts publicly available. Conclusion: The research community is still facing a number of challenges for building approaches that are aware altogether of implicit-Flows, dynamic code loading features, reflective calls, native code and multi-threading, in order to implement sound and highly precise static analyzers. (C) 2017 Elsevier B.V. All rights reserved.
引用
收藏
页码:67 / 95
页数:29
相关论文
共 50 条
  • [31] OASIS: Prioritizing Static Analysis Warnings for Android Apps Based on App User Reviews
    Wei, Lili
    Liu, Yepang
    Cheung, Shing-Chi
    [J]. ESEC/FSE 2017: PROCEEDINGS OF THE 2017 11TH JOINT MEETING ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2017, : 672 - 682
  • [32] A Component-Sensitive Static Analysis Based Approach for Modeling Intents in Android Apps
    Abolhassani, Negarsadat
    Halfond, William G. J.
    [J]. 2023 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION, ICSME, 2023, : 97 - 109
  • [33] Identifying vulnerabilities of SSL/TLS certificate verification in Android apps with static and dynamic analysis
    Wang, Yingjie
    Xu, Guangquan
    Liu, Xing
    Mao, Weixuan
    Si, Chengxiang
    Pedrycz, Witold
    Wang, Wei
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2020, 167
  • [34] Motivational Effects of Gamification Apps in Education: A Systematic Literature Review
    Mohammed, Yakubu Bala
    Ozdamli, Fezile
    [J]. BRAIN-BROAD RESEARCH IN ARTIFICIAL INTELLIGENCE AND NEUROSCIENCE, 2021, 12 (02): : 122 - 138
  • [35] COVID-19 Mobile Apps: A Systematic Review of the Literature
    Kondylakis, Haridimos
    Katehakis, Dimitrios G.
    Kouroubali, Angelina
    Logothetidis, Fokion
    Triantafyllidis, Andreas
    Kalamaras, Ilias
    Votis, Konstantinos
    Tzovaras, Dimitrios
    [J]. JOURNAL OF MEDICAL INTERNET RESEARCH, 2020, 22 (12)
  • [36] SECURITY REQUIREMENTS VALIDATION FOR MOBILE APPS: A SYSTEMATIC LITERATURE REVIEW
    Yusop, Noorrezam
    Kamalrudin, Massila
    Sidek, Safiah
    [J]. JURNAL TEKNOLOGI, 2015, 77 (33): : 123 - 137
  • [37] Empirical Studies on Usability of mHealth Apps: A Systematic Literature Review
    Cruz Zapata, Belen
    Luis Fernandez-Aleman, Jose
    Idri, Ali
    Toval, Ambrosio
    [J]. JOURNAL OF MEDICAL SYSTEMS, 2015, 39 (02) : 1 - 19
  • [38] Empirical Studies on Usability of mHealth Apps: A Systematic Literature Review
    Belén Cruz Zapata
    José Luis Fernández-Alemán
    Ali Idri
    Ambrosio Toval
    [J]. Journal of Medical Systems, 2015, 39
  • [39] A static technique for detecting input validation vulnerabilities in Android apps
    Fang, Zhejun
    Liu, Qixu
    Zhang, Yuqing
    Wang, Kai
    Wang, Zhiqiang
    Wu, Qianru
    [J]. SCIENCE CHINA-INFORMATION SCIENCES, 2017, 60 (05)
  • [40] Static Detection of Event-based Races in Android Apps
    Hu, Yongjian
    Neamtiu, Iulian
    [J]. ACM SIGPLAN NOTICES, 2018, 53 (02) : 257 - 270