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.


翻译:本地代码现已成为Android 应用软件包中常见的本地代码。 本地代码通过 Java 本地界面与 Dex 字节代码共同存在并与 Dex 互动, 以提供丰富的应用程序功能。 然而, 最先进的静态分析方法大多忽略了本地代码的存在, 然而, 本地代码可能执行某些关键敏感甚至恶意的部分应用程序行为。 艺术状态的这种限制在一系列的静态分析中严重威胁到有效性, 这些分析没有完整地看到应用程序中的可执行代码。 为了解决这个问题, 我们提议在开发一个统一代码的统一型号的雄心勃勃勃的研究方向上取得新的进展。 本文中介绍的Jucify 方法是朝着这种模式迈出的重要一步, 我们提取和合并了本地代码的调用图图图图图图图图, 使得最终模型在通用的Android分析框架中易于使用: Jucifil 以 Soot 内部演示文则为基础。 我们通过统一的模型进行了实证调查, 我们从本地代码中呼吁的大量 Java 方法是如何“ 无法突破” 。 在内部智能代码中, 我们通过智能解算数据,, 能够在内部解码中, 我们的解算系统解码中,, 能够在内部解码中, 我们的解算系统解码,, 能够在内部解码中, 解码中, 我们的解码, 能够通过内部解码, 我们的解码,, 解码中,,,, 能够在内部解码可以实现。

0
下载
关闭预览

相关内容

多标签学习的新趋势(2020 Survey)
专知会员服务
41+阅读 · 2020年12月6日
专知会员服务
60+阅读 · 2020年3月19日
100+篇《自监督学习(Self-Supervised Learning)》论文最新合集
专知会员服务
164+阅读 · 2020年3月18日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
计算机 | 国际会议信息5条
Call4Papers
3+阅读 · 2019年7月3日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
计算机 | 中低难度国际会议信息6条
Call4Papers
7+阅读 · 2019年5月16日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
已删除
将门创投
5+阅读 · 2018年6月7日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
(OpenCV/Keras)用手势控制的计算器
机器学习研究会
3+阅读 · 2018年3月4日
Adversarial Variational Bayes: Unifying VAE and GAN 代码
CreateAMind
7+阅读 · 2017年10月4日
Deep Learning for 3D Point Clouds: A Survey
Arxiv
3+阅读 · 2019年12月27日
Arxiv
3+阅读 · 2018年9月12日
Arxiv
5+阅读 · 2017年4月12日
VIP会员
相关VIP内容
相关资讯
计算机 | 国际会议信息5条
Call4Papers
3+阅读 · 2019年7月3日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
计算机 | 中低难度国际会议信息6条
Call4Papers
7+阅读 · 2019年5月16日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
已删除
将门创投
5+阅读 · 2018年6月7日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
(OpenCV/Keras)用手势控制的计算器
机器学习研究会
3+阅读 · 2018年3月4日
Adversarial Variational Bayes: Unifying VAE and GAN 代码
CreateAMind
7+阅读 · 2017年10月4日
Top
微信扫码咨询专知VIP会员