第13卷第2期 智能系统学报 Vol.13 No.2 2018年4月 CAAI Transactions on Intelligent Systems Apr.2018 D0:10.11992/tis.201609016 网络出版地址:http:/kns.cnki.net/kcms/detail/23.1538.TP.20170317.1937.004.html 依特征频率的安卓恶意软件异常检测的研究 张玉玲,尹传环 (北京交通大学计算机与信息技术学院,北京100044) 摘要:Android系统由于开源性和可移植性等优点,成为市场占有率最高的移动操作系统。针对Android的各种攻 击也层出不穷,面向Android的恶意软件检测已成为近些年移动安全领域非常重要的一个环节。面临的问题包括恶 意软件收集困难.异常样本和正常样本比例不平衡。为了有效应对上述问题,提出了Droid-Saf框架,框架中提出了 一种挖掘数据隐含特征的数据处理方案;把样本特征包含的隐藏信息当作新的特征:建模时将样本特征融入算法当 中,建立动态的松弛变量。应用静态分析方法反编译pk,用改进的svdd单分类器分类,克服了恶意软件检测系统中 非正常软件收集困难的不足,降低了异常检测的漏报率和误判率。实验结果验证了该算法的有效性和适用性。 关键词:安卓系统;恶意软件;数据挖掘:异常检测;svdd:隐含特征;单分类器;特征频率 中图分类号:TP391文献标志码:A 文章编号:1673-4785(2018)02-0168-06 中文引用格式:张玉玲,尹传环.依特征频率的安卓恶意软件异常检测的研究.智能系统学报,2018,13(2:168-173 英文引用格式:ZHANG Yuling,YIN Chuanhuan..Android malware outlier detection based on feature frequency J.CAAI transac- tions on intelligent systems,2018,13(2):168-173. Android malware outlier detection based on feature frequency ZHANG Yuling,YIN Chuanhuan (School of Computer and Information Technology,Beijing Jiaotong University,Beijing 100044,China) Abstract:Due to the advantages of open source and portability,Android has become a mobile OS with the largest mar- ket share.Various attacks toward Android also emerge in endlessly,the Android-oriented detection for malwares has be- come a quite important link recently in the field of mobile safety.The problems to be faced include difficult collection of malicious software,imbalanced proportion of the abnormal samples and normal samples.In order to effectively over- come the above difficulties,Droid-Saf framework was proposed,a data processing scheme revealing the implicit charac- teristics of data was proposed in the framework;the hidden information contained in the sample was treated as a new feature;in modeling,the sample features were integrated into the algorithm and dynamic slack variables were estab- lished.Static analytic method was applied to decompile apk,the improved svdd single classifier was used for classifica- tion,the deficiency of difficult collection of abnormal software in the system for detecting malicious software was over- come,the rate of missing report and the misjudgment rate of abnormal detection were lowered.The Experimental res- ults verified the effectiveness and applicability of the algorithm. Keywords:Android system;malware;data mining;abnormal detection;svdd;implicit characteristics;single classifier; feature frequency 美国信息技术研究和顾问公司Gartner于 长了14.4%。Gartner预计2016年全球手机出货量 2016年2月公布了2015年全球智能手机销售量"。 将达到19.59亿部,高于2015年的19.10亿部,而 2017年将达到19.83亿部。德国网络安全公司 2015年全球智能手机销量达14亿部,较2014年增 GDATA最新公布的调查报告显示,2015年底,An- 收稿日期:2016-09-14.网络出版日期:2017-03-17 基金项目:国家自然科学基金项目(61105056) droid恶意软件文件数量多达230万。Android恶意 通信作者:尹传环.E-mail:chhyin @bitu.edu.cn 软件数量众多,已成为移动安全的重灾区四。移动
DOI: 10.11992/tis.201609016 网络出版地址: http://kns.cnki.net/kcms/detail/23.1538.TP.20170317.1937.004.html 依特征频率的安卓恶意软件异常检测的研究 张玉玲,尹传环 (北京交通大学 计算机与信息技术学院,北京 100044) 摘 要:Android 系统由于开源性和可移植性等优点,成为市场占有率最高的移动操作系统。针对 Android 的各种攻 击也层出不穷,面向 Android 的恶意软件检测已成为近些年移动安全领域非常重要的一个环节。面临的问题包括恶 意软件收集困难,异常样本和正常样本比例不平衡。为了有效应对上述问题,提出了 Droid-Saf 框架,框架中提出了 一种挖掘数据隐含特征的数据处理方案;把样本特征包含的隐藏信息当作新的特征;建模时将样本特征融入算法当 中,建立动态的松弛变量。应用静态分析方法反编译 apk,用改进的 svdd 单分类器分类,克服了恶意软件检测系统中 非正常软件收集困难的不足,降低了异常检测的漏报率和误判率。实验结果验证了该算法的有效性和适用性。 关键词:安卓系统;恶意软件;数据挖掘;异常检测;svdd;隐含特征;单分类器;特征频率 中图分类号:TP391 文献标志码:A 文章编号:1673−4785(2018)02−0168−06 中文引用格式:张玉玲, 尹传环. 依特征频率的安卓恶意软件异常检测的研究[J]. 智能系统学报, 2018, 13(2): 168–173. 英文引用格式:ZHANG Yuling, YIN Chuanhuan. Android malware outlier detection based on feature frequency[J]. CAAI transactions on intelligent systems, 2018, 13(2): 168–173. Android malware outlier detection based on feature frequency ZHANG Yuling,YIN Chuanhuan (School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044, China) Abstract: Due to the advantages of open source and portability, Android has become a mobile OS with the largest market share. Various attacks toward Android also emerge in endlessly, the Android-oriented detection for malwares has become a quite important link recently in the field of mobile safety. The problems to be faced include difficult collection of malicious software, imbalanced proportion of the abnormal samples and normal samples. In order to effectively overcome the above difficulties, Droid-Saf framework was proposed, a data processing scheme revealing the implicit characteristics of data was proposed in the framework; the hidden information contained in the sample was treated as a new feature; in modeling, the sample features were integrated into the algorithm and dynamic slack variables were established. Static analytic method was applied to decompile apk, the improved svdd single classifier was used for classification, the deficiency of difficult collection of abnormal software in the system for detecting malicious software was overcome, the rate of missing report and the misjudgment rate of abnormal detection were lowered. The Experimental results verified the effectiveness and applicability of the algorithm. Keywords: Android system; malware; data mining; abnormal detection; svdd; implicit characteristics; single classifier; feature frequency 美国信息技术研究和顾问公司 Gartne r 于 2016 年 2 月公布了 2015 年全球智能手机销售量[1]。 2015 年全球智能手机销量达 14 亿部,较 2014 年增 长了 14.4%。Gartner 预计 2016 年全球手机出货量 将达到 19.59 亿部,高于 2015 年的 19.10 亿部,而 2017 年将达到 19.83 亿部。德国网络安全公司 GDATA 最新公布的调查报告显示,2015 年底,Android 恶意软件文件数量多达 230 万。Android 恶意 软件数量众多,已成为移动安全的重灾区[2]。移动 收稿日期:2016−09−14. 网络出版日期:2017−03−17. 基金项目:国家自然科学基金项目 (61105056). 通信作者:尹传环. E-mail:chhyin@bjtu.edu.cn. 第 13 卷第 2 期 智 能 系 统 学 报 Vol.13 No.2 2018 年 4 月 CAAI Transactions on Intelligent Systems Apr. 2018
第2期 张玉玲,等:依特征频率的安卓恶意软件异常检测的研究 ·169· 应用安全事件频发,主要有以下问题:简单的应用 DroidAnalyst提出一个新的自动化应用,审查和分 市场安全审查、粗粒度的权限系统、有限的系统级 析恶意软件的框架,集成了静态和动态分析的协同 安全监测,以及鼓励快速传播的应用分派模式)。 作用来提高分析的精度和效率。 传统分类方案虽然实现了恶意软件的检测,但其安 上述方法都是利用现有的正常软件和恶意软件 全性、实时性、性能等方面均存在不足,特别是在移 进行训练和分类,随着恶意软件的不断更新变化, 动端发展迅速的情况下,其检测机制难以满足恶意 应对未知恶意行为又是一道难题,应用异常检测是 软件检测需求,不足以应对不断变化的未知恶意软 目前比较流行的方法。 件和变异问题。Mudflow是目前少有的有关安卓 恶意异常检测的研究,利用单分类支持向量机 2异常检测 (Onc-class SVM)分类,检测正常软件和恶意软件 异常检测是指将正常的习惯行为特征存储在数 的准确率只有83.8%,该方法利用静态污点分析技 据库中,然后将当前的行为特征与特征数据库中的 术,找出正常软件和恶意软件之间的数据流差别来 特征进行比较,如果两者偏差足够大,则说明发生 标记可疑特征,模型的建立并没有脱离恶意软件。 了异常。目前异常检测的研究主要基于无监督学 针对上述问题,本文提出Droid-Saf框架,利用 习框架,因此本文基于单分类算法进行研究。现 轻量级的静态分析,训练集仅包含正常软件的样 本,基于svdd算法建立模型,并对该算法做了改进, 有方法对恶意软件检测困难主要有两个原因:1)恶 融人了隐含特征,以便更好地应对软件的不断变 意软件经常出现在检测方法之前。传统的检测依赖 化。检测恶意软件的误报率从10%降低到0.6%, 已知样本进行训练,不能自动更新规则库,也无法 并且新算法对参数不敏感,更容易找到比较理想的 检测新的恶意行为;2)恶意软件数据收集不完整。 结果。 现实检测任务中异常数据普遍难以采集或者采集代 价过高,往往只有一类数据可供使用,因此对于没 1静态分析与动态分析 有收集到的恶意软件无法辨别。针对恶意软件不断 变化且数据收集不完整的问题,异常检测是比较可 检测恶意软件的方法,大致可分为两种:静态 分析和动态分析。静态分析不运行程序只分析代 行的方法,本文基于SVDD单分类算法进行研究。 码,试图找到表明应用程序的行为的控制流,也被 3SVDD的基本原理及改进方案 用来分析正常软件的代码缺陷和故障,甚至在不运 行应用程序的情况下直接检测其恶意行为。静态检 支持向量数据描述,英文名(support vector data 测优点是速度快,缺点是需要构建并且动态维护恶 description,.SVDD)m,通俗来讲,它是一种单分类 意行为的特征库。动态分析不分析代码而在专有的 模型,假设正常数据服从球形分布,利用核函数把 虚拟环境中运行代码,用自动化工具追踪应用程序 样本空间映射到高维核空间,在核空间找到一个能 的行为,然后再分析它的日志文件或者系统调用序 包含所有样本的超球体,寻求一个最小包含球以包 列等。其缺点是需要进行实时监控,内存和电量的 含正常样本,该方法不需假设原点为异常点,并且 消耗高。 该方法以极小极大化方法求解最小包含球(球心、 近年来,众多研究者提出了很多方案。静态分 半径)。当识别一个新的样本时,如果样本在球体内 析方面,例如PiggyDroid6使用API调用等静态特 部,就认为是正常的,否则就是异常的⑧。 征来做检测:RiskRanker刀检测软件是否利用root漏 SVDD首先通过核函数将输入空间映射到一个 洞和是否发送后台信息等筛选出需要深入研究的软 高维空间,在这个高维空间构造一个包含所有训练 件,但都是靠专家系统检测。DroidAPIMiner把数 样本点的球体;在球面上的样本点即为SVDD所求 据流相关的API作为特征,然后用改进的KNN算 得的支持向量。假设模型x,w)表示一类紧密的 法进行分类,还有研究者提出了一些有效的方法与 有界数据集,SVDD的优化目标就是求一个中心为 框架,例如Droid-Sec9、Shina、Drebin!。动态分 a半径为R的最小球面,而且使训练集X的所有样 析方面,例如Crowdroid框架由客户端和服务器 本都落在此球体内。它的原理和SVM很像,类比 端组成,客户端使用Linux系统的Strace机制监控 于SVM例,定义一个最小化问题: Android系统调用,然后把调用信息发送到服务器 (1) 端处理;CopperDroid!不关注底层动作的调用,而 FRa,)=R+C∑5 是捕捉java代码和本地执行代码发起的行为。 使得这个球面满足:
应用安全事件频发,主要有以下问题:简单的应用 市场安全审查、粗粒度的权限系统、有限的系统级 安全监测,以及鼓励快速传播的应用分派模式[3]。 传统分类方案虽然实现了恶意软件的检测,但其安 全性、实时性、性能等方面均存在不足,特别是在移 动端发展迅速的情况下,其检测机制难以满足恶意 软件检测需求,不足以应对不断变化的未知恶意软 件和变异问题。Mudflow[4]是目前少有的有关安卓 恶意异常检测的研究,利用单分类支持向量机 (One-class SVM)[5]分类,检测正常软件和恶意软件 的准确率只有 83.8%,该方法利用静态污点分析技 术,找出正常软件和恶意软件之间的数据流差别来 标记可疑特征,模型的建立并没有脱离恶意软件。 针对上述问题,本文提出 Droid-Saf 框架,利用 轻量级的静态分析,训练集仅包含正常软件的样 本,基于 svdd 算法建立模型,并对该算法做了改进, 融入了隐含特征,以便更好地应对软件的不断变 化。检测恶意软件的误报率从 10% 降低到 0.6%, 并且新算法对参数不敏感,更容易找到比较理想的 结果。 1 静态分析与动态分析 检测恶意软件的方法,大致可分为两种:静态 分析和动态分析。静态分析不运行程序只分析代 码,试图找到表明应用程序的行为的控制流,也被 用来分析正常软件的代码缺陷和故障,甚至在不运 行应用程序的情况下直接检测其恶意行为。静态检 测优点是速度快,缺点是需要构建并且动态维护恶 意行为的特征库。动态分析不分析代码而在专有的 虚拟环境中运行代码,用自动化工具追踪应用程序 的行为,然后再分析它的日志文件或者系统调用序 列等。其缺点是需要进行实时监控,内存和电量的 消耗高。 近年来,众多研究者提出了很多方案。静态分 析方面,例如 PiggyDroid[6]使用 API 调用等静态特 征来做检测;RiskRanker[7]检测软件是否利用 root 漏 洞和是否发送后台信息等筛选出需要深入研究的软 件,但都是靠专家系统检测。DroidAPIMiner[8]把数 据流相关的 API 作为特征,然后用改进的 KNN 算 法进行分类,还有研究者提出了一些有效的方法与 框架,例如 Droid-Sec[9] 、Shina[10] 、Drebin[11]。动态分 析方面,例如 Crowdroid 框架[12]由客户端和服务器 端组成,客户端使用 Linux 系统的 Strace 机制监控 Android 系统调用,然后把调用信息发送到服务器 端处理;CopperDroid[13]不关注底层动作的调用,而 是捕捉 java 代码和本地执行代码发起的行为。 DroidAnalyst[14]提出一个新的自动化应用,审查和分 析恶意软件的框架,集成了静态和动态分析的协同 作用来提高分析的精度和效率。 上述方法都是利用现有的正常软件和恶意软件 进行训练和分类,随着恶意软件的不断更新变化, 应对未知恶意行为又是一道难题,应用异常检测是 目前比较流行的方法。 2 异常检测 异常检测是指将正常的习惯行为特征存储在数 据库中,然后将当前的行为特征与特征数据库中的 特征进行比较,如果两者偏差足够大,则说明发生 了异常[15]。目前异常检测的研究主要基于无监督学 习框架[16] ,因此本文基于单分类算法进行研究。现 有方法对恶意软件检测困难主要有两个原因:1) 恶 意软件经常出现在检测方法之前。传统的检测依赖 已知样本进行训练,不能自动更新规则库,也无法 检测新的恶意行为;2) 恶意软件数据收集不完整。 现实检测任务中异常数据普遍难以采集或者采集代 价过高,往往只有一类数据可供使用,因此对于没 有收集到的恶意软件无法辨别。针对恶意软件不断 变化且数据收集不完整的问题,异常检测是比较可 行的方法,本文基于 SVDD 单分类算法进行研究。 3 SVDD 的基本原理及改进方案 支持向量数据描述,英文名 (support vector data description,SVDD)[17] ,通俗来讲,它是一种单分类 模型,假设正常数据服从球形分布,利用核函数把 样本空间映射到高维核空间,在核空间找到一个能 包含所有样本的超球体,寻求一个最小包含球以包 含正常样本,该方法不需假设原点为异常点,并且 该方法以极小极大化方法求解最小包含球 (球心、 半径)。当识别一个新的样本时,如果样本在球体内 部,就认为是正常的,否则就是异常的[18]。 SVDD 首先通过核函数将输入空间映射到一个 高维空间,在这个高维空间构造一个包含所有训练 样本点的球体;在球面上的样本点即为 SVDD 所求 得的支持向量。假设模型 f(x; w) 表示一类紧密的 有界数据集,SVDD 的优化目标就是求一个中心为 a 半径为 R 的最小球面,而且使训练集 X 的所有样 本都落在此球体内。它的原理和 SVM 很像,类比 于 SVM[19] ,定义一个最小化问题: F(R, a, ξ) = R 2 +C ∑ i ξi (1) 使得这个球面满足: 第 2 期 张玉玲,等:依特征频率的安卓恶意软件异常检测的研究 ·169·
·170· 智能系统学报 第13卷 (x-a)2≤R2+5 s.t.5≥0,i (2) 式中:n是样本个数,m是特征维数,所有样本的特 征用一个m×n的矩阵P表示;分子指的是第i个样 式中:这里的,是松弛变量;C是调节松弛变量的 本的频率(即样本的非0特征个数,分母指的是全 影响大小。利用Lagrange函数求解上述约束下的 部样本的最大频率)。那么函数的最小化问题变为 最小优化问题,得到: min F(R,a,)=R2+∑c传 L=a,(x:x)+∑aa(xx) ∑a,=1,0≤≤C (3) s.tlx,-al≤R2+忘 (8) S.t. 5≥0,i=1,2,…,n 对上述问题相对α求最大,可以用标准的二次 构造新的Lagrange函数如式(9): 规划算法来解决。这样就可以求得α的最优值,对 (a,R,5a,》=R2+2c-2a[R2+ 于非0的,其对应的样本点是支持向量,位于球面 (9) 上;而a=0则表示对应的样本点位于球体内。a和 (x)+2(ax)-(aa)-5 R可用含a的表达式隐式地表示。判断一个数据点 由此,通过上式调整对应的约束条件: 属于这个类,那么当满足: ∑a=1 (z-a)(z-a)≤R2 (4) 0≤≤C (10) 即判Z属于正常类,否则为异常类。将超球面 s.t.i=1,2,…,n 的中心用支持向量来表示,那么判定新数据是否属 本章主要讲述了将正常样本作为数据源,用轻 于这个类的判定条件就是: 量级静态分析方法提取特征,并在特征库的基础上 -2∑(kx)+∑aacx)≤R (5) 提出了一种挖掘隐形特征的方法,将特征频率作为 新的特征融入到SVDD算法当中,实现降低检测恶 式中:R是任意一个支持向量X到球心a的距离。 意软件的误警率的目标。 当输入空间的样本点不满足球状分布时,可以通过 核技巧把输入空间先映射到高维空间,然后在映射 4实验部分 后的高维空间内求解。如果使用核函数上述判定条 4.1 件改写为 实验流程 8-2ak0+aKRO 实验的流程框架如图1所示。 其中,数据处理用到了FexDroid的降维方法。 常用的核函数有线性核函数、多项式核函数、 4.2 数据提取 RBF核函数等,不同的核函数,对实验结果影响很 把从谷歌商店、安智、应用宝等安卓软件市场 大,用合适的核函数分类才能得到理想的实验结 收集的软件作为正常样本,一共有1976个;从drebin 果。传统的静态分析关注样本申请的权限和API 中随机选取了1952个恶意软件作为负样本;然后 调用等特征,受系统调用序列关注系统调用频率2 用apktool等工具反编译这些APP,运行得到mani- 的启发,上述特征的总和可以体现出恶意软件的行 fest和smali文件,再提取permission、api_call、 为活跃程度。在正常样本中,申请次数多的样本代 activity等特征,共得到8874个特征;再将每个样 表它本身活跃,行为复杂。正常软件中频繁申请权 本的特征长度(也就是样本的行为频率)作为新的 限或者API的样本应该更加得到关注,所以可以从 特征融入svdd算法当中。 这方面入手体现不同软件的共有特性。将频率融入 4.3评价指标 到svdd单分类算法当中,以寻找最适应于本方案的 评价指标是漏报率和误报率,为准确描述这两 超球体,尽可能地将这些样本包含在SVDD的超球 个概念,避免不必要的误会,给出以下计算公式。 体内,达到静态分析特征进而降低单分类检测的误 我们引入4个参数3个评价标准,如表1所示, 警率的目的。 首先如下假设: 将样本频率融入到算法当中:定义正常样本活 FP:将样本判定为正常样本,实际为恶意样本 动频率矩阵c=[ccc3…cJ,n为训练样本个数。 的数量。 P TN:将样本判定为恶意样本,实际为恶意样本 Ci=- max(∑P) (7) 的数量。 l TP:将样本判定为正常样本,实际为正常样本 st.i=1,2,…,n 的数量
(xi − a) 2 ⩽ R 2 +ξi s.t. ξi ⩾ 0, ∀i (2) 式中:这里的 ξi 是松弛变量;C 是调节松弛变量的 影响大小。利用 Lagrange 函数求解上述约束下的 最小优化问题,得到: L = ∑ i αi(xi · xi)+ ∑ i, j αiαj(xi · xj) s.t. ∑ i αi = 1, 0 ⩽ αi ⩽ C (3) 对上述问题相对 α 求最大,可以用标准的二次 规划算法来解决。这样就可以求得 α 的最优值,对 于非 0 的 αi,其对应的样本点是支持向量,位于球面 上;而 αi=0 则表示对应的样本点位于球体内。α 和 R 可用含 α 的表达式隐式地表示。判断一个数据点 属于这个类,那么当满足: (z− a) T (z− a) ⩽ R 2 (4) 即判 Z 属于正常类,否则为异常类。将超球面 的中心用支持向量来表示,那么判定新数据是否属 于这个类的判定条件就是: (z· z)−2 ∑ i αi(z· xi)+ ∑ i, j αiαj(xi · xj) ⩽ R 2 (5) 式中:R 是任意一个支持向量 Xk 到球心 a 的距离。 当输入空间的样本点不满足球状分布时,可以通过 核技巧把输入空间先映射到高维空间,然后在映射 后的高维空间内求解。如果使用核函数上述判定条 件改写为 K(z· z)−2 ∑ i αiK(z· xi)+ ∑ i, j αiαjK(xi · xj) ⩽ R 2 (6) 常用的核函数有线性核函数、多项式核函数、 RBF 核函数等,不同的核函数,对实验结果影响很 大, 用合适的核函数分类才能得到理想的实验结 果。 传统的静态分析关注样本申请的权限和 API 调用等特征,受系统调用序列关注系统调用频率[20] 的启发,上述特征的总和可以体现出恶意软件的行 为活跃程度。在正常样本中,申请次数多的样本代 表它本身活跃,行为复杂。正常软件中频繁申请权 限或者 API 的样本应该更加得到关注,所以可以从 这方面入手体现不同软件的共有特性。将频率融入 到 svdd 单分类算法当中,以寻找最适应于本方案的 超球体,尽可能地将这些样本包含在 SVDD 的超球 体内,达到静态分析特征进而降低单分类检测的误 警率的目的。 ··· 将样本频率融入到算法当中:定义正常样本活 动频率矩阵 c=[c1 c2 c3 cn ],n 为训练样本个数。 ci = ∑m j=1 Pi j max(∑m j=1 Pi j) s.t. i = 1,2,··· ,n (7) 式中:n 是样本个数,m 是特征维数,所有样本的特 征用一个 m×n 的矩阵 P 表示;分子指的是第 i 个样 本的频率 (即样本的非 0 特征个数,分母指的是全 部样本的最大频率)。那么函数的最小化问题变为 min F(R, a, ξ) = R 2 + ∑n i=1 ciξi s.t. ∥xi − a∥ 2 ⩽ R 2 +ξi ξi ⩾ 0,i = 1,2,··· ,n (8) 构造新的 Lagrange 函数如式 (9): L(a,R, ξ,α, γ) = R 2 + ∑n i=1 ciξi− ∑n i=1 ai[R 2 +ξi− (xi · xi)+2(a · xi)−(a · a)]− ∑n i=1 γiξi (9) 由此,通过上式调整对应的约束条件: ∑ i αi = 1 0 ⩽ αi ⩽ ci s.t. i = 1,2,··· ,n (10) 本章主要讲述了将正常样本作为数据源,用轻 量级静态分析方法提取特征,并在特征库的基础上 提出了一种挖掘隐形特征的方法,将特征频率作为 新的特征融入到 SVDD 算法当中,实现降低检测恶 意软件的误警率的目标。 4 实验部分 4.1 实验流程 实验的流程框架如图 1 所示。 其中,数据处理用到了 FexDroid[21]的降维方法。 4.2 数据提取 把从谷歌商店、安智、应用宝等安卓软件市场 收集的软件作为正常样本,一共有 1 976 个;从 drebin 中随机选取了 1 952 个恶意软件作为负样本;然后 用 apktool 等工具反编译这些 APP,运行得到 manifest 和 smali 文件,再提取 permission、api_call、 activity 等特征,共得到 8 874 个特征;再将每个样 本的特征长度 (也就是样本的行为频率) 作为新的 特征融入 svdd 算法当中。 4.3 评价指标 评价指标是漏报率和误报率,为准确描述这两 个概念,避免不必要的误会,给出以下计算公式。 我们引入 4 个参数 3 个评价标准,如表 1 所示, 首先如下假设: FP:将样本判定为正常样本,实际为恶意样本 的数量。 TN:将样本判定为恶意样本,实际为恶意样本 的数量。 TP:将样本判定为正常样本,实际为正常样本 的数量。 ·170· 智 能 系 统 学 报 第 13 卷
第2期 张玉玲,等:依特征频率的安卓恶意软件异常检测的研究 ·171· 预处理阶段 恶意软件检测阶段 特征映射 数据集 SVDD 字符型数据 融入 转化为数字型数据 特征 频率 数据 标准 改进的 归一化 数据集 SVDD 训练阶段 FexDroid分层阶段 高维特征 FexDroid 测试阶段 低维特征 … 训练数据 特征降维 后的数据 数据分高 测试数据 图1异常检测流程框架 Fig.1 The framework of anomaly detection process 表1实验评价指标 1.2d Table 1 The evaluating indicator of experiment 1.0 中料 评价指标 定义 含义 0.8 解 准确率 TN 0.6 TN+FP 恶意软件被正确分类 漏报率 FP 0.4 TN+FP 恶意软件被错误分类 -Driod-Svd 误报率 FN 0. 。-Driod-Saf FN+TP 正常软件被检测为恶意软件 135791113151719212325 FN:将样本判定为恶意样本,实际为正常样本 b 的数量。 图2RBF核函数的实验对比 4.4实验步骤 Fig.2 The experimental comparison of RBF kernel 随机取1000个正样本作为训练集,其他的正 Droid-.Saf对恶意软件检测的正确率基本达到 样本和负样本作为测试集,频率是每个样本包含特 100%,参数c对结果并没有影响,因此对参数不敏 征的个数,把它归一化然后做新特征。分别用最常 感;但是Droid-.Svd的部分漏报率大于0,c越大,误 用的多项式核函数和RBF核函数模型。其中,c是 判率越高,漏报率也越高。为了详细说明细节,表2 svdd的惩罚参数,b是核函数参数:改进算法中频率 特征会取代参数c的作用。为方便描述,模型改进 列出了Droid-Svd的实验情况。 之前的实验称为Driod-svd,改进之后的实验称为 基于多项式核函数的实验结果分别取了Droid: Droid-Saf。两者对比表明改进算法在RBF核函数 Svd和Droid-Saf在多项式核函数下最好的实验结 上取得了明显效果,如图2所示。 果,如图3所示。 如果样本的特征数非常多,使用RBF核将样本 当c=0.05时,参数b对基于多项式核函数的 映射到高维空间,结果较差,使用线性核比较合适高 Droid-.Saf并没有作用,漏报率基本为0,误报率明 维数据。因此下面的实验使用常见的多项式核函数。 显低很多
䃙㏯䭢⃡ ᖢᘻ䒛Тᷬ≷䭢⃡ ᩥ䔇⮰ 47%% ➥ᒭᭌᄰ ႃげಷᢚ 䒘ࡂoႃಷᢚ ᢚ ࡂ̬ᑾ ᢚ䯲 䶰ะ⤲䭢⃡ ᴳ۲ ᢚ䯲 …… 倄㐠➥ᒭ FexDroid Ѻ㐠➥ᒭ …… FexDroidܲᅮ䭢⃡ ➥ᒭ䭹㐠 ऺ⮰ᢚ ᢚܲ⻧ ≷䄁ᢚ 䃙㏯ᢚ SVDD ڑ㲹 ➥ᒭ 䶽⢳ ≷䄁䭢⃡ 图 1 异常检测流程框架 Fig. 1 The framework of anomaly detection process 表 1 实验评价指标 Table 1 The evaluating indicator of experiment 评价指标 定义 含义 准确率 TN TN+FP 恶意软件被正确分类 漏报率 FP TN+FP 恶意软件被错误分类 误报率 FN FN+TP 正常软件被检测为恶意软件 FN:将样本判定为恶意样本,实际为正常样本 的数量。 4.4 实验步骤 随机取 1 000 个正样本作为训练集,其他的正 样本和负样本作为测试集,频率是每个样本包含特 征的个数,把它归一化然后做新特征。分别用最常 用的多项式核函数和 RBF 核函数模型。其中,c 是 svdd 的惩罚参数,b 是核函数参数;改进算法中频率 特征会取代参数 c 的作用。为方便描述,模型改进 之前的实验称为 Driod-svd,改进之后的实验称为 Droid-Saf。两者对比表明改进算法在 RBF 核函数 上取得了明显效果,如图 2 所示。 如果样本的特征数非常多, 使用 RBF 核将样本 映射到高维空间,结果较差,使用线性核比较合适高 维数据。因此下面的实验使用常见的多项式核函数。 1 3 5 7 9 11 13 15 17 19 21 23 25 b 1.2 1.0 0.8 0.6 0.4 0.2 0 䄛៑⢳ Driod-Svd Driod-Saf 图 2 RBF 核函数的实验对比 Fig. 2 The experimental comparison of RBF kernel Droid-Saf 对恶意软件检测的正确率基本达到 100%,参数 c 对结果并没有影响,因此对参数不敏 感;但是 Droid-Svd 的部分漏报率大于 0,c 越大,误 判率越高,漏报率也越高。为了详细说明细节,表 2 列出了 Droid-Svd 的实验情况。 基于多项式核函数的实验结果分别取了 DroidSvd 和 Droid-Saf 在多项式核函数下最好的实验结 果,如图 3 所示。 当 c=0.05 时,参数 b 对基于多项式核函数的 Droid-Saf 并没有作用,漏报率基本为 0,误报率明 显低很多。 第 2 期 张玉玲,等:依特征频率的安卓恶意软件异常检测的研究 ·171·
·172· 智能系统学报 第13卷 表2基于多项式核函数的Droid-Svd实验的平均值 是其安全性、实时性、性能等方面均存在不足,特别 Table 2 The experimental FPR comparison of Polynomial 是在移动端发展迅速的情况下,其检测机制难以满 kernel function 足恶意软件检测需求。本文所提出的框架对以上问 平均误报率 平均漏报率 题给出解决方案,具有应对未知恶意软件和恶意软 0.05 0.110 0.008 0.15 0.265 0.036 件变异的能力。针对静态分析中的特征包含的隐藏 0.10 0.181 0.016 信息,提出一种挖掘数据隐含特征的数据处理方 0.20 0.298 0.025 案,并且将它融入到单分类算法中,进而改进了单 0.30 0.389 0.045 分类算法模型,降低了恶意软件检测的误报率。其 0.40 0.457 0.072 中,多项式核函数的漏报率从11%降低到了0.5%: 0.50 0.550 0.200 0.60 0.676 0.419 RBF核函数的实验也有相应的提高。但是因为静 0.70 0.665 0.365 态分析固有的特性,应对代码混淆需要更好的反编 0.80 0.738 0.534 译技术:另外正常样本往往会不可避免地混人恶意 0.90 0.898 0.831 行为而导致模型偏离现象:这些问题也是以后要研 0.50r Driod-Svd 究的方向。 0.40 -Driod-Saf 号0.30 参考文献: 0.20 [1]微头条.Gartner:2016全球手机出货预计19.59亿部 0.10 [EB/OL].http://www.wtoutiao.com/p/19cnOtt.html 0 5791113151719212325 [2]中文业界资讯站.2015年Android恶意软件样本数量超 230[EB/OL].[2017-05-13].http://www.cnbeta.com/articles/ 图3多项式核函数的实验对比 478843.html. Fig.3 The experimental comparison of Polynomial kernel [3)]杨威,肖旭生,李邓锋,等.移动应用安全解析学:成果与 function 挑战.信息安全学报,2016,1(2):1-14. 4.5实验总结 YANG Wei,XIAO Xusheng,LI Dengfeng,et al.Security 为了直观对比实验的改进效果,表3给出了 analytics for mobile apps:achievements and challenges[J]. Droid-Svd和Droid-.Saf在核函数分别为多项式和 Journal of cyber security,2016,1(2):1-14. RBF的最好结果。多项式核函数的实验结果在图 [4]AVDIIENKO V.KUZNETSOV K.GORLA A.et al.Min- 2中,误报率在c=0.05、b(1-25)不同时总体上差别 ing apps for abnormal usage of sensitive data[C]//Proceed- 不大,b对应25个实验数据,对这25个实验数据先 ings of 37th IEEE International Conference on Software En- 求和再求平均数;RBF核函数的实验结果在图3 gineering.Florence,Italy,2015:426-436. 中,结果在b(1-25)不同时波动较大,因此取了两条 [5]JUSZCZAK P.Learning to recognise:a study on one-class 曲线上结果最好的数据。 classification and active learning[D].TU Delft,the Nether- 表3实验总结的平均结果 lands:Delft University of Technology,2006. Table 3 The summarized average results of the experi- [6]ZHOU W,ZHOU Y,GRACE M,et al.Fast,scalable detec- ments tion of piggybacked mobile applications[C]//Proceedings of 核函数类型 实验方案 漏报率/% 误报率% the third ACM conference on Data and application security Droid-Svd J 0 and privacy.[s.I.],ACM,2013:185-196. RBF核函数 [7]TAX D M J,DUIN R P W.Support vector data description Droid-Saf 2.3 0 [J].Machine learning,2004,54(1):45-66. Droid-Svd 11 0.8 多项式核函数 [8]ZHOU Wu,ZHOU Yajin,GRACE M,et al.Fast,scalable Droid-Saf 0.5 0 detection of"piggybacked"mobile applications[C]//Pro- 表3证明了改进方法的有效性和适用性,改进 ceedings of the Third ACM Conference on Data and Applic- ation Security and Privacy.San Antonio,Texas,USA,2013: 后的算法舍弃了对实验结果影响敏感的参数℃,调 185-196. 参简单。 [9]GRACE M,ZHOU Yajin,ZHANG Qiang,et al.Riskranker: 5结束语 scalable and accurate zero-day Android malware detection[C]//Proceedings of the 10th International Confer- 传统分类方案虽然实现了恶意软件的检测,但 ence on Mobile Systems,Applications,and Services(MO-
表 2 基于多项式核函数的 Droid-Svd 实验的平均值 Table 2 The experimental FPR comparison of Polynomial kernel function c 平均误报率 平均漏报率 0.05 0.110 0.008 0.15 0.265 0.036 0.10 0.181 0.016 0.20 0.298 0.025 0.30 0.389 0.045 0.40 0.457 0.072 0.50 0.550 0.200 0.60 0.676 0.419 0.70 0.665 0.365 0.80 0.738 0.534 0.90 0.898 0.831 1 3 5 7 9 11 13 15 17 19 21 23 25 b 0.50 0.40 0.30 0.20 0.10 0 䄛៑⢳ Driod-Svd Driod-Saf 图 3 多项式核函数的实验对比 Fig. 3 The experimental comparison of Polynomial kernel function 4.5 实验总结 为了直观对比实验的改进效果,表 3 给出了 Droid-Svd 和 Droid-Saf 在核函数分别为多项式和 RBF 的最好结果。多项式核函数的实验结果在图 2 中,误报率在 c=0.05、b(1-25) 不同时总体上差别 不大,b 对应 25 个实验数据,对这 25 个实验数据先 求和再求平均数;RBF 核函数的实验结果在图 3 中,结果在 b(1-25) 不同时波动较大,因此取了两条 曲线上结果最好的数据。 表 3 实验总结的平均结果 Table 3 The summarized average results of the experiments 核函数类型 实验方案 漏报率/% 误报率/% RBF 核函数 Droid-Svd 5 0 Droid-Saf 2.3 0 多项式核函数 Droid-Svd 11 0.8 Droid-Saf 0.5 0 表 3 证明了改进方法的有效性和适用性,改进 后的算法舍弃了对实验结果影响敏感的参数 c,调 参简单。 5 结束语 传统分类方案虽然实现了恶意软件的检测,但 是其安全性、实时性、性能等方面均存在不足,特别 是在移动端发展迅速的情况下,其检测机制难以满 足恶意软件检测需求。本文所提出的框架对以上问 题给出 解决方案,具有应对未知恶意软件和恶意软 件变异的能力。针对静态分析中的特征包含的隐藏 信息,提出一种挖掘数据隐含特征的数据处理方 案,并且将它融入到单分类算法中,进而改进了单 分类算法模型,降低了恶意软件检测的误报率。其 中,多项式核函数的漏报率从 11% 降低到了 0.5%; RBF 核函数的实验也有相应的提高。但是因为静 态分析固有的特性,应对代码混淆需要更好的反编 译技术;另外正常样本往往会不可避免地混入恶意 行为而导致模型偏离现象;这些问题也是以后要研 究的方向。 参考文献: 微头条. Gartner: 2016 全球手机出货预计 19.59 亿部 [EB/OL]. http://www.wtoutiao.com/p/19cnOtt.html. [1] 中文业界资讯站. 2015 年 Android 恶意软件样本数量超 230 万[EB/OL]. [2017-05-13]. http://www.cnbeta.com/articles/ 478843.html. [2] 杨威, 肖旭生, 李邓锋, 等. 移动应用安全解析学: 成果与 挑战[J]. 信息安全学报, 2016, 1(2): 1–14. YANG Wei, XIAO Xusheng, LI Dengfeng, et al. Security analytics for mobile apps: achievements and challenges[J]. Journal of cyber security, 2016, 1(2): 1–14. [3] AVDIIENKO V, KUZNETSOV K, GORLA A, et al. Mining apps for abnormal usage of sensitive data[C]//Proceedings of 37th IEEE International Conference on Software Engineering. Florence, Italy, 2015: 426–436. [4] JUSZCZAK P. Learning to recognise: a study on one-class classification and active learning[D]. TU Delft, the Netherlands: Delft University of Technology, 2006. [5] ZHOU W, ZHOU Y, GRACE M, et al. Fast, scalable detection of piggybacked mobile applications[C]//Proceedings of the third ACM conference on Data and application security and privacy. [s.l.], ACM, 2013: 185–196. [6] TAX D M J, DUIN R P W. Support vector data description [J]. Machine learning, 2004, 54(1): 45–66. [7] ZHOU Wu, ZHOU Yajin, GRACE M, et al. Fast, scalable detection of “piggybacked” mobile applications[C]//Proceedings of the Third ACM Conference on Data and Application Security and Privacy. San Antonio, Texas, USA, 2013: 185–196. [8] GRACE M, ZHOU Yajin, ZHANG Qiang, et al. Riskranker: scalable and accurate zero-day Android malware detection[C]//Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services (MO- [9] ·172· 智 能 系 统 学 报 第 13 卷
第2期 张玉玲,等:依特征频率的安卓恶意软件异常检测的研究 ·173· BISYS).Lake District,UK,2012:281-294. [18]HASTIE T,TIBSHIRANI R,FRIEDMAN J.Unsuper- [10]WU Songyang,WANG Pan,LI Xun,et al.Effective detec- vised learning[M]//HASTIE T,TIBSHIRANI R.FRIED- tion of android malware based on the usage of data flow MAN J.The Elements of Statistical Learning.New York, APIs and machine learning[J].Information and software USA:Springer,2009:485-585. technology,.2016,75:17-25. [I9]CRISTIANINI N,SHAWE-TAYLOR J.支持向量机导论 [11]YUAN Zhenlong,LU Yongqiang,WANG Zhaoguo,et al. [M.李国正,译.北京:电子工业出版社,2004:57-61. Droid-Sec:deep learning in android malware detection[C/ CRISTIANINI N,SHAWE-TAYLOR J.An introduction Proceedings of the 2014 ACM Conference on SIGCOMM. to support vector machines and other kernel-based learn- Chicago,Illinois,USA.2014:371-372. ing methods[M].LI Guozheng,Trans.Beijing:Publishing [12]SHEEN S,ANITHA R,NATARAJAN V.Android based House of Electronics Industry,2004:57-61. malware detection using a multifeature collaborative de- [20罗隽,丁力,潘志松,等.异常检测中频率敏感的单分类 cision fusion approach[J].Neurocomputing,2015,151: 算法研究[).计算机研究与发展,2007,44(Z2):235-239. 905-912. LUO Jun,DING Li,PAN Zhisong,et al.Research on se- [13]TAM K,KHAN S J,FATTORI A,et al.CopperDroid: quence-call-frequency-based one-class algorithm in abnor- automatic reconstruction of android malware behaviors mal detection[J].Journal of computer research and devel- [OL/EB]/.[2016-03-24].https://www.researchgate.net/ opment,.2007,44(Z2:235-239. publication/300925104. [21]张玉玲,尹传环.基于SVM的安卓恶意软件检测).山 [14]BURGUERA L,ZURUTUZA U,NADJM-TEHRANI S. 东大学学报:工学版,2017,471)42-47. Crowdroid:behavior-based malware detection system for ZHANG Yuling,YIN Chuanhuan.Android malware detec- android[C]//Proceedings of the Ist ACM Workshop on Se- tion based on SVM[J].Journal of Shandong university:en- gineering science,2017,47(1):42-47. curity and Privacy in Smartphones and Mobile Devices. Chicago,Illinois,USA,2011:15-26. 作者简介: [15]TAM K,KHAN S J,FATTORI A,et al.CopperDroid: 张玉玲,女,1990年生,硕士研究 Automatic Reconstruction of Android Malware Behaviors[Cl/ 生,主要研究方向为机器学习。 Proceedings of Annual Network and Distributed System Security (NDSS).San Diego,United States,2015. [16]FARUKI P,BHANDARI S,LAXMI V,et al.DroidAna- lyst:synergic app framework for static and dynamic app analysis[M]//ABIELMONA R,FALCON R,ZINCIR- HEYWOOD N,et al.Recent Advances in Computational 尹传环,男,1976年生,副教授, 主要研究方向为网络安全(入侵检 Intelligence in Defense and Security.Cham:Springer, 测)、数据挖掘、机器学习(支持向量 2016:519-552 机)。 [17]TAX M J D,DUIN ROBERT P W.Support vector do- main description[J].Pattern recognition letters,1999, 20(11/12/13):1191-1199
BISYS). Lake District, UK, 2012: 281–294. WU Songyang, WANG Pan, LI Xun, et al. Effective detection of android malware based on the usage of data flow APIs and machine learning[J]. Information and software technology, 2016, 75: 17–25. [10] YUAN Zhenlong, LU Yongqiang, WANG Zhaoguo, et al. Droid-Sec: deep learning in android malware detection[C]// Proceedings of the 2014 ACM Conference on SIGCOMM. Chicago, Illinois, USA, 2014: 371–372. [11] SHEEN S, ANITHA R, NATARAJAN V. Android based malware detection using a multifeature collaborative decision fusion approach[J]. Neurocomputing, 2015, 151: 905–912. [12] TAM K, KHAN S J, FATTORI A, et al. CopperDroid: automatic reconstruction of android malware behaviors [OL/EB]/. [2016-03-24]. https://www.researchgate.net/ publication/300925104. [13] BURGUERA L, ZURUTUZA U, NADJM-TEHRANI S. Crowdroid: behavior-based malware detection system for android[C]//Proceedings of the 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices. Chicago, Illinois, USA, 2011: 15–26. [14] TAM K, KHAN S J, FATTORI A, et al. CopperDroid: Automatic Reconstruction of Android Malware Behaviors[C]// Proceedings of Annual Network and Distributed System Security (NDSS). San Diego, United States, 2015. [15] FARUKI P, BHANDARI S, LAXMI V, et al. DroidAnalyst: synergic app framework for static and dynamic app analysis[M]//ABIELMONA R, FALCON R, ZINCIRHEYWOOD N, et al. Recent Advances in Computational Intelligence in Defense and Security. Cham: Springer, 2016: 519–552. [16] TAX M J D, DUIN ROBERT P W. Support vector domain description[J]. Pattern recognition letters, 1999, 20(11/12/13): 1191–1199. [17] HASTIE T, TIBSHIRANI R, FRIEDMAN J. Unsupervised learning[M]//HASTIE T, TIBSHIRANI R, FRIEDMAN J. The Elements of Statistical Learning. New York, USA: Springer, 2009: 485–585. [18] CRISTIANINI N, SHAWE-TAYLOR J. 支持向量机导论 [M]. 李国正,译. 北京: 电子工业出版社, 2004: 57–61. CRISTIANINI N, SHAWE-TAYLOR J. An introduction to support vector machines and other kernel-based learning methods[M]. LI Guozheng, Trans. Beijing: Publishing House of Electronics Industry, 2004: 57–61. [19] 罗隽, 丁力, 潘志松, 等. 异常检测中频率敏感的单分类 算法研究[J]. 计算机研究与发展, 2007, 44(Z2): 235–239. LUO Jun, DING Li, PAN Zhisong, et al. Research on sequence-call-frequency-based one-class algorithm in abnormal detection[J]. Journal of computer research and development, 2007, 44(Z2): 235–239. [20] 张玉玲, 尹传环. 基于 SVM 的安卓恶意软件检测[J]. 山 东大学学报: 工学版, 2017, 47(1): 42–47. ZHANG Yuling, YIN Chuanhuan. Android malware detection based on SVM[J]. Journal of Shandong university: engineering science, 2017, 47(1): 42–47. [21] 作者简介: 张玉玲,女,1990 年生,硕士研究 生,主要研究方向为机器学习。 尹传环,男,1976 年生,副教授, 主要研究方向为网络安全 (入侵检 测)、数据挖掘、机器学习 (支持向量 机)。 第 2 期 张玉玲,等:依特征频率的安卓恶意软件异常检测的研究 ·173·