Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Apposcopy: Semantics-Based Detection of Android Malware Through Static Analysis

论文下载

Abstract

本文设计并实现了Apposcopy,一种基于静态语义分析的Android恶意程序检测工具。主要的工作有两个:

  1. 设计了一种高层次的语言,该语言可以对描述恶意程序的特征进行描述。
  2. 使用静态分析技术,通过比对待检测应用程序是否符合恶意程序的特征来检测恶意程序。静态分析工作主要使用了静态污点分析和一种新的应用程序表现形式——ICCG(Inter-Component Call Graph)。

Introduction

之所以选择使用基于语义的方法来检测恶意程序,是因为基于底层指令特征的恶意程序检测技术很容易通过使用混淆技术来绕过。而基于高层次语义信息的恶意程序检测技术则不存在这一问题。本文中使用的静态分析技术同时考虑了控制流和数据流的分析,ICCG可以很好的反映程序的控制流特征,而静态污点分析技术则可以反应程序的数据流特征。

Motivating Example

本文选取的恶意程序样本为GoldDream。下图是对该恶意程序家族特征的描述:

Fig

3-7行描述了GoldDream恶意程序的特征,receiver®和service(s)表示恶意程序中使用到了receiver和service这两种Android系统组件。icc代表的是控制流特征,icc(SYSTEM, r, e, _)表示系统会在事件e发生的时候调用组件e,icc*(r, s)则表示组件r会直接调用组件s。flow代表的是数据流的特征,flow(s, DevideId, s, Internet)表示存在一条从组件s中的source DevideId流向s中Sink Internet的数据流。

通过以上这样的方式,可以对恶意程序的行为进行清晰的描述,接下来就是通过ICCG和静态污点分析从待检测应用程序中提取相应的语义信息,GoldDream的部分ICCG如下:

Fig

首先在整张图的最上方可以发现有一条从Android System到com.sjgo.client.zjReceiver的箭头,条件是SMS_RECEIVER。同时还存在从com.sjgo.client.zjReceiver到com.sjgo.client.zjService的箭头。从这里可以得出以下的语义特征: receiver( r), icc(SYSTEM, r, e, _), GDEvent(e), Service(s), icc*(r,s)

通过静态污点分析可以有以下结果:

Fig

  • 可以推出如下的语义特征:

flow(s, DeviceId, s, Internet), flow(s, SubscriberId, s, Internet)

Malware Spec Language

该语言是基于Datalog设计的,这一章里有详细的设计,这里就不展开了,可以自行查阅。

Static Analyses

描述了ICCG的制作,先进行pointer分析,然后再做callgraph construction。ICCG的每一个节点都是待分析应用程序的一个组件,每一条边都是两个节点之间的关系。具体的规则就不展开说了,可以自行查阅。

静态污点分析就是很普通的污点分析,没有什么特点。

Implementation & Evaluation

整个工具有3w行java代码,使用了soot和bddbddb。soot被用来将apk变成java中间语言jimple。bddbddb是Datalog的一个实现,用来进行后期的特征对比。

Evaluation先是检测了已知的恶意软件,结果如下:

Fig

之后还做了针对Google Play上应用的检测,11215个应用中检测出16个恶意程序,每个应用平均耗时346s,每个应用平均26786行dalvik bytecode。 最后做了针对混淆后恶意程序的检测,和其他商业恶意程序检测工具进行了横向对比:

Fig

最后也和学术恶意程序检测工具Kirin进行了对比,结果当然是完爆。

Related Work

针对污点分析和基于特征的恶意程序检测两个方向的相关工作进行了介绍,有兴趣可以看。最后讨论了0day恶意程序的检测,现在有一些基于机器学习的检测技术。

Limitations

这种基于特征的检测技术可以通过使用有针对性的混淆算法来绕过。同时因为是深度的静态分析,所以不太适用于对恶意程序的即时检测。

Conclusion And Future Work

增强效率和准确性,开发自动化的de-obfuscate技术,自动化提取恶意程序特征。