返回
The Dark Side of Native Code on Android
DOI:10.1145/3712308.png)
摘要
En 中文
从一个小型研究实验到军事武器库的关键组成部分,恶意软件在三十多年间持续增长和演变。另一方面,从微不足道的市场份额起步,Android操作系统如今已成为最广泛使用的移动操作系统,成为大规模恶意软件分发的一个理想目标。尽管科学文献已跟踪这一趋势,但一个方面研究不足:原生代码在恶意Android应用中的作用。Android应用使用高级语言编写,但借助Java Native Interface(JNI),Android也支持调用原生(C/C++)库函数。虽然允许Android应用使用原生代码从性能角度看有显著积极影响,但它极大地增加了分析难度,因为字节码和原生代码需要不同的抽象和分析算法,因而带来不同的挑战和限制。因此,这些困难常被(滥用)以隐藏恶意载荷。在本工作中,我们提出了一种新颖的方法论用于Android应用逆向工程,聚焦于与原生组件相关的可疑模式,即需要进一步审查的隐秘代码。我们基于此方法论实现了一个静态分析工具,能够连接Java和原生世界,并对负责可疑行为的代码块进行深入分析。这些标签有助于执行逆向工程任务的人员:它们清晰标示出代码中应重点关注以查找恶意代码的部分。随后,我们对过去十年的Android恶意软件进行了纵向分析,并将近期恶意样本与Google Play商店的实际热门应用进行了比较。我们的工作描绘了现代恶意软件的典型行为、其演变过程以及如何滥用原生层来增加分析难度,特别是在动态代码加载和新型反分析技术方面。最后,我们展示了可疑标签的一个用例:我们训练并测试了一个用于二元分类任务的机器学习算法。尽管可疑并不直接意味着恶意,但我们的分类器达到了0.97的显著F1分数,表明我们的方法论对人类和机器均具有帮助。
Keyword:
Android security
Android malware
Android JNI
Android native code
Android malware detection
期刊
A
IF:
2.8
论文数:
293
被引数:
770
机构
引用论文
Compositional Taint Analysis of Native Codes for Security Vetting of Android Applications原生代码的复合污点分析:用于Android应用程序的安全审查

