APP下载

安卓恶意软件的计算机免疫检测模型

2018-01-03王新新谭成予梁意文

计算机应用与软件 2017年12期
关键词:安卓抗原静态

王新新 谭成予 梁意文

(武汉大学计算机学院 湖北 武汉 430072)

安卓恶意软件的计算机免疫检测模型

王新新 谭成予 梁意文

(武汉大学计算机学院 湖北 武汉 430072)

安卓系统因其开放性的特点导致恶意软件泛滥,现有方法多考虑静态或动态单方面特征,判别算法多依赖于学习样本,且准确率有一定的限制。为解决上述问题,提出结合安卓软件的静态权限特征与动态行为特征的计算机免疫恶意软件检测模型。结合静态权限特征与动态行为特征,构建安卓软件的特征体系,经预处理后映射为树突状细胞算法DCA(Dendritic Cell Algorithm)的各类信号,使用无需样本学习的轻量级算法DCA进行恶意软件检测。实验证明该模型可以有效检测恶意软件。

安卓恶意软件 静态特征 动态特征 DCA

0 引 言

根据试产研究机构发布的《智能操作系统市场调研报告》的相关统计,2015年国内智能机市场Android份额达到81.36%[1],市场份额有绝对优势。与WinPhone、iPhone的封闭模式不同的是,任何人都可以将自己编写的软件上传至应用商店供用户下载安装。这种开源模式也导致了安卓恶意软件的泛滥,安卓手机安全受到巨大威胁[2]。

目前已有的安卓恶意软件检测方法,多通过抽取软件静态或动态特征,使用聚类、分类、数理统计或机器学习相关算法,对软件进行判别。

根据所使用的特征不同,可以将检测算法静态检测和动态检测两类[3]。特征抽取方面,静态检测方法多选择安卓软件权限、系统调用敏感函数、APK中相关组件使用统计数据等特征;动态检测中,多将软件置于沙箱中进行运行监控,获取软件动态行为,例如系统调用情况、CPU占用率、恶意行为等,并将这些作为软件动态行为特征。静态特征获取较为简单,但对恶意软件的描述不足,识别恶意软件准确率有限。动态分析和静态分析相比,更多利用应用程序的行为特征,更容易发现恶意行为,但是它只能对符合选定的特定测试案例进行检查[4]。因此,如何结合软件的动态及静态行为特征,抽取能够代表恶意软件特点的特征,成为决定检测方法准确率的关键。

检测算法中,目前使用较多的为各种较为成熟的分类、机器学习相关算法。其中,Borja等[5]根据应用程序申请的权限,采用机器学习相关算法对程序进行分类进而判别应用程序是否为恶意软件。杨欢等[6]根据抽取的相关特征,采用三层分类算法对恶意软件进行检测,提高了恶意软件的检测率。程际桥[7]通过对安卓源代码的分析抽取相关静态特征,使用决策向量机对恶意软件进行检测。Shabtai等[8]提出恶意软件检测系统Andromaly,基于行为获取CPU消耗、进程数、按键及应用程序启动特征等,并应用Logistic回归分析和贝叶斯网络来对应用程序进行分类。然而,机器学习及相关分类算法,需要大量的样本进行学习,判别结果与学习样本的选取关系较大。如何使用轻量级且无需学习的算法进行恶意软件识别,也是决定检测方法好坏的关键。

Green Smith等[9]根据免疫系统中树突状细胞的行为特征及分化过程,提出树突状细胞算法(DCA)并将其运用于网络异常检测。DCA是基于先天免疫,它通过模拟机体中树突状细胞的自我免疫过程,实现对机体正常状态与异常状态的判断。该方法无需动态学习,检测过程中也不需要进行模式匹配。将DCA用于分类及机器学习时,不仅有较高的准确率,和其他的系统相比可以减少误报率[10]。文献[11]中,将DCA用于机器学习,使用文献[12]中的数据集,比对其他分类算法,DCA的准确率可以达到99%。文献[13]中,将DCA用于图像的分类,选取图像纹理特征等抽象为抗原及相关信号,有效提高了图像分类的准确率,同时减少了算法的运行时间。虽然目前已有很多研究将DCA应用于各个领域,但是针对DCA的各类信号的选取及处理,仍然是使用DCA的一个难点[14]。基于DCA的无需动态学习且分类的高准确率,本文考虑将DCA用于安卓恶意软件的检测,降低检测所需学习样本,同时提高检测准确率。

本文针对上述部分提到的特征选取及检测算法的不足,提出一种结合静态及动态行为特征的人工免疫DCA安卓恶意软件检测模型。该模型提取安卓程序的动静多个特征,将特征进行降维处理后,抽象为DCA的抗原信号、危险信号及安全信号,采用DCA进行恶意软件判别。实验证明此类方法能有效检测恶意软件,兼顾软件的静态特征与动态特征,提高了恶意软件的检测率。

本文主要创新及贡献如下:

1) 结合静态特征及软件动态行为特征,既弥补了静态特征无法检测运行时权限提升、加载恶意代码的缺陷,也将静态特征作为动态特征的补充,提高了检测的效率。

2) 提取软件的多个静态特征及动态特征,可充分反映软件的相关行为,特征经过处理后可以降维为算法的固定多个输入信号。可以根据识别软件的不同类型进行扩展,具有较高的扩展性。

3) 将抽取的静态特征及动态行为特征映射为DCA的相关信号病原体分子模式(PAMP)、安全信号(SS)和危险信号(DS)。实验中选择一定数量的恶意软件,抽取特征,使用DCA进行恶意软件检测,证明了该算法的有效性。

1 框架概述

在安卓系统中,一个应用所拥有的所有权限在安装时都需要获得用户的许可,只有用户在选择接受该应用获得这些权限才能安装软件。这种基于权限的方式,能够在一定程度上保护安卓系统的安全性,限制软件访问未声明或关系系统安全的权限。在Android官网中,将安卓系统的所有权限划分为四类:normal、dangerous、signature和signatureorSystem。目前市场中的恶意软件,常包括窃取用户隐私信息、后台发送扣费短信、私自打开蓝牙发送数据、拨打电话、获取用户地理位置信息等相关行为。这些行为对于安卓用户来说,都需要一定的权限。文献[15]中,通过对比正常软件与恶意软件的权限使用情况,发现恶意软件更倾向于使用开机自启动、更改WiFi状态等相关权限。因此,系恶意软件与正常软件在权限的使用情况和类别组合中,有较大的不同,可以将权限作为识别恶意软件的一个特征。

对于一些在启动后动态加载恶意代码的软件,权限特征无法识别。为了弥补静态权限特征的不足,考虑将软件启动后的动态行为作为识别恶意软件的特征。我们一些获取用户信息或消耗用户手机资费的行为定义为敏感行为。正常软件可能也会有一定的敏感行为,但是恶意软件在敏感性为的数量和频率上,与正常软件会有较大的不同。因此,可以将动态软件行为作为区分恶意软件的重要特征。

在获取这些特征之后,如何通过有效的方法识别恶意软件与正常软件,提高恶意软件识别的正确率并降低误判率与漏判率,是决定恶意软件检测模型质量的关键。

DCA是Green Smith根据人体免疫系统中的树突状细胞的分化过程提出的抗原提呈算法。DC捕获抗原,收集当前PAMP、DS、SS的浓度作为输入。根据权值矩阵融合之后,输出协同刺激分子(CSM),半成熟信号(SEMI)和成熟信号(MAT)并进行相关累加操作。到达迁移阈值之后,DC比对累加的半成熟信号与成熟信号,判断机体当前状态并激活机体的相关免疫反应。DCA不依赖于样本学习,在检测的过程中也不需要进行模式匹配,自动根据当前状态进行判别。在文献[16]中,将DCA作为一个二值分类算法,对比其他算法有较好的效果。

考虑DCA的轻量性及在分类中的有效性,本文将上述抽象的静态特征与动态特征,并定义相关预处理函数,处理后将相关特征映射为DCA中的PAMP、DS和SS,实现恶意软件识别。

综上:安卓恶意软件检测框架结构如图1所示。

图1 安卓恶意软件检测系统框架图

2 安卓恶意软件检测关键技术

本节主要描述了安卓恶意软件检测模型的关键技术,包括程序静态权限特征的提取,程序动态敏感行为特征的提取,各类信号的预处理及映射和DCA处理流程。这些相关技术及算法是构成基于权限及行为特征的安卓恶意软件计算机免疫检测模型的关键。

2.1 静态特征提取

安卓应用中如果申请了能进行敏感行为的权限,同时这些权限目前市场中大部分应用不会申请的,该应用就会具有较大的危险性。根据文献[17]中对恶意安卓应用的单个恶意权限及组合恶意权限的描述,综合恶意软件常见窃取信息及消耗资费的行为相关权限,本文选取以下相关对手机安全性有较大影响的权限及权限组合。具体内容见表1。

表1 权限及权限组合表

续表1

上述权限及权限组合中,既有获取用户隐私信息、后台安装其他应用等单个权限,也有后台发送扣费短信,记录用户通话内容,获取用户联系人并发送至指定服务器的组合权限。安卓应用一旦获取了这些敏感权限,很有可能进行相关恶意行为,造成用户的损失。

安卓应用在根目录中有一个名为AndroidManifest.xml的程序清单文件,该文件中定义了该应用需要获取的所有权限、应用所需AndroidAPI的最低版本以及所需要调用的开发库定义。因此,通过反编译相关技术,可以获取安卓应用获取的所有权限。本文中,通过相关反编译工具,对安卓应用进行反编译,获取每个安卓应用对应的权限,并采用自动化脚本进行相关统计。

2.2 动态特征提取

针对部分恶意软件在运行后绕过安卓系统自身的权限机制进行权限提升[18],从而进行一系列获取用户信息或消耗资费的行为。本文中选择监控应用部分动态行为作为动态特征,具体选取的特征及原因如下:

1) 权限提升行为(RU):对于恶意软件来说,伪装成正常软件诱导用户安装,之后绕过安卓的权限机制进行权限提升,从而可以进行一系列破坏手机安全性、泄漏用户隐私或消耗资费的行为。因此,应用是否进行权限提升,可以作为区别恶意软件与正常软件的重要动态特征。

2) 流量特征(FS):根据流量的流入方向,我们将应用使用的流量分为上行流量及下行流量。对于大部分用户浏览及阅读为主的应用,是下行流量远大于上行流量。对于窃取用户隐私行为的相关应用,因为需要将用户的信息发送至指定服务器,则会导致上行流量大于下行流量。因此,可以将应用在一定时间内的流量特征作为应用动态特征。

3) 敏感数据读写(IW):对于手机中用户的一些关键信息和隐私信息,普通应用并不会进行访问,只有窃取用户隐私信息的相关应用才会读取。读取之后,利用这些敏感信息,结合社会工程学相关方法,可以对用户造成较大的人身安全及财产安全的损失。因此,可以将是否访问敏感数据作为安卓软件的动态行为特征。在安卓应用中,常见的几个敏感数据主要见表2。

表2 关键路径表

4) 恶意吸费(BM):在相关的统计中,有超过半数的应用都存在发送短信、拨打特定的电话等相关恶意吸费行为,造成用户的财产损失。因此,可以将应用是否调用拨号或短信功能发送短信、拨打电话给非运营商的特殊号码作为应用的动态行为特征。

5) 获取定位信息(GL):用户的定位信息是私人信息,一般应用不会要求获取。恶意软件为窃取用户相关信息,会进行获取定位信息的行为,然后将相关信息发送至指定服务器,结合其他信息进行相关猜测,造成不好的结果。因此,可以将应用是否获取定位相关信息作为动态行为特征之一。

为了获取安卓应用的相关行为特征,将应用程序安装至模拟器中进行观察,使用trace、wireshark、mokeyrunner等相关观察工具,记录一定时间内安卓应用的相关行为,并对流量情况、权限提升情况、读取文件情况等进行记录,获取软件的动态行为特征。

2.3 信号预处理及映射

2.3.1 信号预处理

根据2.1节中定义的安卓应用相关权限特征,根据权限特征可以进行的相关敏感行为,对所有权限及权限组合赋予一定的权值。具体权值对应如表3所示。

表3 权限权值表

对于2.2节中定义的软件动态行为特征,考虑这些敏感行为的发生频率,获取一定时间内的行为特征,并定义归一化函数:

(1)

通过定义的归一化函数,可以将收集到的所有动态特征结合时间因素,完成归一化处理。

2.3.2 病原体相关分子模式(PAMP)映射

病原体相关分子模式说明系统整体存在异常,本文主要选取安卓软件的部分静态权限特征作为PAMP信号,具体包括{SMS,BO,WS,RS,CA,CI}。

2.3.3 安全信号(SS)映射

安全信号表明系统整体安全,存在异常的可能性较小,选取的安全信号具体包括{GPS,BL,IN,WI,RU,FS,IW,BM,GL}。

2.3.4 危险信号(DS)映射

危险信号表明系统现在处于即将进入异常的状态,具体选择的指标包括软件的所有动态特征和部分静态特征,具体包括{WS,RS,CA,CI,RU,FS,IW,BM,GL}。

2.4 算法参数定义

考虑相关信号的放大作用,本文加入致炎因子放大PAMP、SS和DS信号,致炎因子的大小定义为0.4。

DC收集组织中的抗原,并针对PAMP、SS和DS三类输入信号进行处理,计算出三类信号:协同刺激信号(CSM)、半成熟信号(SEMI)和成熟信号(MAT)。由输入信号计算各类输出信号时,定义信号矩阵如表4所示。

表4 信号矩阵表

定义计算公式如下:

C[CSM,SEMI,MAT]=

(1+IS)

(2)

其中:CPAMP、CDS、CSS分别代表输入的信号值,WPAMP、WDS、WSS分别代表各类信号的权值,IS代表上文定义的放大信号致炎因子。

2.5 算法处理流程

本文使用的树突状细胞算法描述如下:

输入:抗原信号值PAM、SS、DS。

输出:CSM、成熟DC或未成熟DC。

具体算法流程伪代码如下所示:

初始化抗原池

isNeedInitDC=true;

while isNeedInitDC do

{

初始化DC细胞,设置CSM迁移值Z

while(该DC的CSM

{

随机选取未标记抗原,根据输入信号及权值矩阵计算CSM、SEMI和MAT并累加

}

比较计算标记该DC状态

计算该DC所采集的抗原的判定次数(总次数、异常次数)并累加

If(未被标记的抗原中有达到判定次数的抗原)

{

计算该抗原的MCAV=判定异常次数/判定总次数,比较与异常阈值N的大小。

If MCAV >=N then

抗原标记为异常;

Else

抗原标记为正常;

End

}

If 没有未被标记的抗原

IsNeedInitDC=false

}

3 实验结果与分析

选取一定数量的安卓正常软件与异常软件,通过相关工具进行预处理后,形成数据集共150条,分别映射为PAMP、DS、SS信号,使用Java实现的DCA程序,对数据集进行判别。计算该模型在恶意软件检测中的有效性和准确性,为降低实验的随机性,将实验进行重复并计算各个结果的平均值。同时进行对比实验,将处理后的数据集采用DCA、传统的统计学分类方法及K-means聚类方法进行检测,对比说明该方法的有效性。实验证明该安卓恶意软件检测模型充分考虑软件动态与静态特征,在安卓恶意软件检测中具有较好的效果。

3.1 实验设计

本文设计了检测模型对安卓恶意软件检测实验,实验目的在于验证该计算机免疫检测模型对于安卓恶意软件检测的可行性及有效性。

采用与文献[19]中一样的应用来源,从“Contagio mobile”网站下载恶意软件与正常软件共150个。其中,包含的恶意病毒主要有以下几类:

1) 恶意吸费病毒:例如刷机吸费大盗、伪酷六视频等。这些病毒会向某些特定号码发送扣费信息并删除相关反馈信息,用户在不之情的情况下经济受到损失。

2) 隐私信息收集类病毒:例如爱情连陷、伪升级扣费病毒等。这些病毒会收集用户手机号、硬件信息、地理位置信息等并发送至特定服务器。

3) 恶意破坏类病毒:此类病毒会伪装成收集工具,诱导用户下载并安装其他恶意软件,同时干扰杀毒软件的运行,破坏手机的安全性。

使用反编译软件Android Killer对软件进行反编译获取权限定义文件。根据表1定义的权限或权限组合及表3定义的权限权值,如果权限文件中包含该权限,则将该权限或权限组合赋予定义的权值,如果不包含,则将该权限或组合赋值为0。

使用模拟器及模拟器监视工具trace、wireshark、mokeyrunner等获取软件的动态行为特征,包括吸费信息、流量特征、权限提升行为等。同时根据2.3节中定义的相关预处理函数,对行为特征进行归一化预处理,形成DCA算法的相关数据集。

实验设置DC生命周期为10,当DC采集10个抗原之后,若还没有达到迁移阈值,将该DC置为失效,重新初始化DC;CSM迁移阈值为25到40之间的随机数,保证算法一定随机性;抗原判定阈值为10,表示每个抗原最多被判定10次;抗原异常阈值为70%,表示抗原被判定为异常的次数超过总判定次数70%时,判定该抗原为异常。

3.2 实验结果与分析

选取150个抗原进行试验后,测试结果如图2所示。其中,横坐标是标记的抗原ID,纵坐标是每个ID计算之后的MCAVA值。圆形为被正确判定为正常软件的抗原,菱形为正确被判定为恶意软件的应用, 方形为错判漏判的抗原。实验结果表明该方法对于恶意软件的检测,检测率较高。

图2 实验结果图

为避免实验结果随机性的影响,重复实验10次和30次,具体结果如表5、表6所示。

表5 实验结果

表6 与其他检测算法对比

重复试验证明该模型对于恶意软件的检测具有较高的准确率,可以有效检测恶意软件。表 6给出了在上述数据集中分别使用DCA、统计学分类方法及K-means聚类方法进行恶意软件检测的结果。结果证明该计算机免疫检测模型对安卓恶意软件的检测具有更高的准确率。

4 结 语

本文通过分析安卓应用的静态权限特征及动态行为特征,结合DCA在异常检测中较高的准确率,构建了一个安卓恶意软件检测模型。实验证明该模型对于恶意软件的检测具有较高的准确率,具有一定的可行性。然而,如何通过安装应用或修改内核的方式实时观察软件动态运行特征而不是在模拟器中使用各类软件观察,实时获取数据并进行分析促进模型的转化,是下一步工作的方向。如何根据各类软件的不同作用获取不同的特征指标,也是下一步改进的方向。同时,DCA中需要设置的参数较多,如何结合模型的特点改进参数的设置提高系统的准确率也是下一步需要解决的问题。

[1] http://tech.gmw.cn/newspaper/2015-12/23/content_110321682.htm.

[2] Steven M P.Contrary to what you‘ve heard,Android is almost impenetrable to malware[EB/OL].[2014-06-23].http://qz.com /131436/contrary-to-what-you’ve-heard-android-is-almost-impenerable-to-malware/.

[3] Bergeron J,Debbabi M,Desharnais J,et al.Static Detection of Malicious Code in Executable Programs[J].Int.j.of Req.eng,2009.

[4] 秦中元,徐毓青,梁彪,等.一种Android平台恶意软件静态检测方法[J].东南大学学报(自然科学版),2013,43(6):1162-1167.

[5] Sanz B,Santos I,Laorden C,et al.PUMA:Permission Usage to Detect Malware in Android[C]//International Joint Conference CISIS’12-ICEUTE′12-SOCO′12 Special Sessions.Springer Berlin Heidelberg,2013:289-298.

[6] 杨欢,张玉清,胡予濮,等.基于多类特征的Android应用恶意行为检测系统[J].计算机学报,2014,37(1):15-27.

[7] 程际桥.基于支持向量机的Android恶意软件检测方法[D].华中科技大学,2014.

[8] Shabtai A,Kanonov U,Elovici Y,et al.“Andromaly”:a behavioral malware detection framework for android devices[J].Journal of Intelligent Information Systems,2012,38(1):161-190.

[9] Greensmith J,Aickelin U,Cayzer S.Introducing Dendritic Cells as a Novel Immune-Inspired Algorithm for Anomaly Detection[M]//Artificial Immune Systems.Springer Berlin Heidelberg,2010:153-167.

[10] Chelly Z,Elouedi Z.A survey of the dendritic cell algorithm[J].Knowledge & Information Systems,2016,48(3):505-535.

[11] Greensmith J,Aickelin U,Tedesco G.Information fusion for anomaly detection with the dendritic cell algorithm[J].Information Fusion,2010,11(1):21-34.

[12] Asuncion A,Newman D.Uci machine learning repository[OL].2007.http://archive.ics.uci.edu/ml/.

[13] 常文萃,秦振吉.树突状细胞算法在图像分类中的应用[J].计算机应用与软件,2014,31(4):250-253.

[14] Ng D V,Hwang J I G.Android malware detection using the dendritic cell algorithm[C]//Machine Learning and Cybernetics (ICMLC),2014 International Conference on.IEEE,2014,1:257-262.

[15] Zhou Y,Jiang X.Dissecting android malware:Characterization and evolution[C]//2012 IEEE Symposium on Security and Privacy.IEEE,2012:95-109.

[16] Chelly Z,Elouedi Z.FDCM:A fuzzy dendritic cell method[M]//Artificial Immune Systems.Springer Berlin Heidelberg,2010:102-115.

[17] 文伟平,梅瑞,宁戈,等.Android恶意软件检测技术分析和应用研究[J].通信学报,2014,35(8):78-85.

[18] 彭国军,李晶雯,孙润康,等.Android恶意软件检测研究与进展[J].武汉大学学报理学版,2015,61(1):21-33.

[19] 蔡志标,彭新光.基于系统调用的Android恶意软件检测[J].计算机工程与设计,2013,34(11):3757-3761.

THEANDROIDMALWAREDETECTIONMODELBASEDONCOMPUTERIMMUNE

Wang Xinxin Tan Chengyu Liang Yiwen

(ComputerSchool,WuhanUniversity,Wuhan430072,Hubei,China)

Android malware flooding is based on the characteristics of its openness, existing solutions are based on static or dynamic unilateral features, discriminant algorithm depends more on learning samples, and the accuracy rate has some restrictions. In order to solve these problems, this paper proposed a computer immune malware detection model which combines the static privilege characteristics and dynamic behavior characteristics of Android software. Combining the characteristics of static privilege and dynamic behavior, the characteristic system of Android software was constructed. After pretreatment, it was mapped to DCA. The software was detected by using the lightweight algorithm DCA without sample learning. The experiment proved that the model could effectively detect malicious software.

Android malware Permissions characteristic Dynamic behavior characteristics Dendritic cell algorithm

2017-01-05。王新新,硕士生,主研领域:计算机免疫。谭成予,副教授。梁意文,教授。

TP301.6

A

10.3969/j.issn.1000-386x.2017.12.058

猜你喜欢

安卓抗原静态
iPhone不卡的秘密曝光:安卓也能享受
最新进展!中老铁路开始静态验收
静态随机存储器在轨自检算法
负载抗原DC联合CIK对肝癌免疫微环境的影响
文物表情包
安卓系统或成智能汽车标配
植物增殖细胞核抗原的结构与功能
关于血型问题的释疑
油罐车静态侧倾稳定角的多体仿真计算
APOBEC-3F和APOBEC-3G与乙肝核心抗原的相互作用研究