JuCify: A Step Towards Android Code Unification for Enhanced Static Analysis

被引:20
|
作者
Samhi, Jordan [1 ]
Gao, Jun [1 ]
Daoudi, Nadia [1 ]
Graux, Pierre [1 ,3 ]
Hoyez, Henri [4 ]
Sun, Xiaoyu [2 ]
Allix, Kevin [1 ]
Bissyande, Tegawende F. [1 ]
Klein, Jacques [1 ]
机构
[1] Univ Luxembourg, SnT, Luxembourg, Luxembourg
[2] Monash Univ, Clayton, Vic, Australia
[3] Univ Lille, Cent Lille, CNRS, UMR 9189 CRIStAL, F-59000 Lille, France
[4] Tech Univ Kaiserslautern, Kaiserslautern, Germany
基金
欧洲研究理事会; 欧盟地平线“2020”;
关键词
DYNAMIC-ANALYSIS; HYBRID ANALYSIS;
D O I
10.1145/3510003.3512766
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Native code is now commonplace within Android app packages where it co-exists and interacts with Dex bytecode through the Java Native Interface to deliver rich app functionalities. Yet, state-of-the-art static analysis approaches have mostly overlooked the presence of such native code, which, however, may implement some key sensitive, or even malicious, parts of the app behavior. This limitation of the state of the art is a severe threat to validity in a large range of static analyses that do not have a complete view of the executable code in apps. To address this issue, we propose a new advance in the ambitious research direction of building a unified model of all code in Android apps. The JuCify approach presented in this paper is a significant step towards such a model, where we extract and merge call graphs of native code and bytecode to make the final model readily-usable by a common Android analysis framework: in our implementation, JuCify builds on the Soot internal intermediate representation. We performed empirical investigations to highlight how, without the unified model, a significant amount of Java methods called from the native code are "unreachable" in apps' call-graphs, both in goodware and malware. Using JuCify, we were able to enable static analyzers to reveal cases where malware relied on native code to hide invocation of payment library code or of other sensitive code in the Android framework. Additionally, JuCify's model enables state-of-the-art tools to achieve better precision and recall in detecting data leaks through native code. Finally, we show that by using JuCify we can find sensitive data leaks that pass through native code.
引用
收藏
页码:1232 / 1244
页数:13
相关论文
共 50 条
  • [1] Towards Bridging the Gap Between Dalvik Bytecode and Native Code During Static Analysis of Android Applications
    Lantz, Patrik
    Johansson, Bjorn
    [J]. 2015 INTERNATIONAL WIRELESS COMMUNICATIONS & MOBILE COMPUTING CONFERENCE (IWCMC), 2015, : 587 - 593
  • [2] Obfuscating Code Vulnerabilities Against Static Analysis in Android Apps
    Pagano, Francesco
    Verderame, Luca
    Merlo, Alessio
    [J]. ICT SYSTEMS SECURITY AND PRIVACY PROTECTION, SEC 2024, 2024, 710 : 381 - 395
  • [3] Boosting Static Analysis of Android Apps through Code Instrumentation
    Li, Li
    [J]. 2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C), 2016, : 819 - 822
  • [4] Towards Multi-Language Static Code Analysis
    Siddiqui, Sanaa
    Metta, Ravindra
    Madhukar, Kumar
    [J]. 2023 IEEE 34TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS, ISSREW, 2023, : 81 - 82
  • [5] Impact of Code Obfuscation on Android Malware Detection based on Static and Dynamic Analysis
    Bacci, Alessandro
    Bartoli, Alberto
    Martinelli, Fabio
    Medvet, Eric
    Mercaldo, Francesco
    Visaggio, Corrado Aaron
    [J]. ICISSP: PROCEEDINGS OF THE 4TH INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS SECURITY AND PRIVACY, 2018, : 379 - 385
  • [6] Towards Understanding the Value of False Positives in Static Code Analysis
    Dimastrogiovanni, Carlo
    Laranjeiro, Nuno
    [J]. 2016 SEVENTH LATIN-AMERICAN SYMPOSIUM ON DEPENDABLE COMPUTING (LADC), 2016, : 119 - 122
  • [7] A small step towards unification of economics and physics
    Bhattacharyya S.
    [J]. Mind & Society, 2021, 20 (1) : 69 - 84
  • [8] Incorporating Android Code Smells into Java']Java Static Code Metrics for Security Risk Prediction of Android Applications
    Gong, Ai
    Zhong, Yi
    Zou, Weiqin
    Shi, Yangyang
    Fang, Chunrong
    [J]. 2020 IEEE 20TH INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY, AND SECURITY (QRS 2020), 2020, : 30 - 40
  • [9] Application security code analysis: A step towards software assurance
    Rawat, Sanjay
    Saxena, Ashutosh
    [J]. International Journal of Information and Computer Security, 2009, 3 (01) : 86 - 110
  • [10] FirmwareDroid: Towards Automated Static Analysis of Pre-Installed Android Apps
    Sutter, Thomas
    Tellenbach, Bernhard
    [J]. 2023 IEEE/ACM 10TH INTERNATIONAL CONFERENCE ON MOBILE SOFTWARE ENGINEERING AND SYSTEMS, MOBILESOFT, 2023, : 12 - 22