作者: Shuaike Dong, Menghao Li, Wenrui Diao, Xiangyu Liu, Jian Liu, Zhou Li, Fenghao Xu, Kai Chen, XiaoFeng Wang, Kehuan Zhang
单位: The Chinese University of Hong Kong, Chinese Academy of Sciences, Jinan University, Alibaba Inc,
Indiana University Bloomington
出处: SecureComm 2018
资料: Paper
Abstract
在Android程序中,由于Java程序具有易于逆向的特性,所以其代码保护尤为重要。代码混淆技术被常规的应用程序开发人员和恶意软件作者广泛使用,为逆向分析增加了许多难度。尽管在混淆技术上已经有很多研究,但是对现实世界开发人员如何使用混淆技术的了解仍然有限。在本文中,作者通过大规模的野外调查来展现真实世界中Android混淆技术的使用情况。在文中作者重点关注4种流行的混淆方法:标识符重命名,字符串加密,Java反射和加壳。作者的APK数据集来自于Google Play,多个第三方市场和恶意软件数据库中。作者发现恶意软件作者更频繁地使用字符串加密,而加壳技术的应用在第三方市场中比Google Play更普遍。
截止2017年三月,仅仅在Google Play上已经有2.8m个app可供用户下载。同样混淆技术也无处不在,合法的软件公司使用混淆技术防止程序被轻易逆向或者被抄袭代码,恶意软件作者使用混淆技术规避杀软和自动化分析。有许多混淆器被开发并公开,有些混淆器的作者声称他们的工具被超过30万的app所使用。这一现象吸引了大量研究人员分析app混淆技术,但是到目前为止,所有研究的关注点在于使用了什么样的混淆技术,某种混淆的具体实现是什么,这种混淆如何抵御最先进的分析工具,以及如何自动化地反混淆这种混淆技术。然而本文作者的重点在于消除混淆技术分析领域存在的gap:这些混淆技术在现实世界中是如何被众多的开发者所使用的。
作者认为了解混淆技术的使用可以更好地帮助设计代码分析工具,并优先处理最需要解决的挑战。
作者的主要贡献如下:
- 系统研究: 系统地研究了应用程序开发人员使用的当前主流Android混淆技术。
- 新技术:作者提出了几种准确检测不同混淆技术的技术,如基于n-gram的重命名检测模型和基于反向切片的反射检测算法。
- 大规模评估: 作者进行了大规模的实验,从三个不同来源收集的超过10万的APK文件。 并根据分析结果对混淆代码的深入分析提供了解释。
Read more
作者: Le Guan, Shijie Jia, Bo Chen, Fengwei Zhang, Bo Luo…
单位: Pennsylvania State University, Data Assurance and Communication Security Research Center, Michigan Technological University
出处: ACSAC 2017
资料: Paper
ABSTRACT
随着针对移动设备的网络犯罪数量的激增,对于移动恶意软件分析平台有很大的需求。因为许多恶意软件都包含出虚拟机检测能力,所以大多数情况下都直接采用真机作为分析平台。然而现有的工作的关注点主要在如何能够通过真机分析提取恶意软件的行为。但是当恶意应用分析结束之后,能够把真机恢复到分析恶意软件之前也很重要。然而对于移动平台现有的最佳的解决方案只能恢复硬盘存储空间,并且需要花费时间重启。另外先有的工作还需要在分析平台中依赖一部分组件才能完成恢复工作。因此,有些kernel-level级别的恶意软件仍然能够检测到这些组件的存在。
作者提出了Bolt这样一个透明的恢复机制在不需要重启的情况下把移动分析平台恢复到恶意软件分析之前的状态。 Bolt这种不需要重启的恢复机制能够同时对disk和memory制作快照。内存快照是通过存在于ARM TrustZone的一个独立的操作系统(BoltOS)去实现的。而disk的快照是通过一块固件经过定制(BoltFTl)的闪存设备去实现的。因为BoltOS和BoltFTL都独立于guestOS(论文中为了方便,作者把所有直接运行恶意软件的操作系统统一称为guestOS),所以就算是kernel-level的恶意软件也不会影响恢复行为。而且,Bolt不需要对guestOS进行任何的修改。因此,Bolt是第一个做到能够高效,独立,并且隐蔽地从被恶意软件感染之后的状态恢复。
Read more