基于改进决策树分类的Android恶意软件检测

2017-04-14 10:34鲍美英
软件 2017年2期
关键词:决策树应用程序分类器

鲍美英

基于改进决策树分类的Android恶意软件检测

鲍美英

(山西大同大学数学与计算机科学学院,山西大同 037009)

针对目前Android手机恶意软件越来越多的问题,本文在现有研究的基础上,设计了一个Android恶意软件检测框架。该框架通过提取Android应用程序的特征属性,结合Fisher Score、信息增益和卡方检验三种特征选择方法,对属性特征进行预处理,然后利用恶意检测模块中的改进决策树算法对软件进行分类。通过实验仿真,结果表明使用该检测框架检测恶意软件具有较低的误报率和较高的精确度。

Android系统;恶意软件;检测;决策树

0 引言

Android系统是基于Linux内核的开源系统[1],是目前市场占有量最大的智能手机平台。对Android手机恶意软件[2]的检测研究是目前的热点问题。检测的方法有多种:静态、动态和混合检测,刘伟[3]等研究了Android平台恶意软件的行为模式,并总结了恶意软件的攻击意图和攻击手段。文献[4]采用多种分类算法检测恶意软件,但所考虑的权限不能很好反映Android软件的特性。文献[5]中提到一个Andromaly框架,该框架通过分类器、特征选择和特征数量三方面考虑Android平台的异常检测方法,但当时没有足够的可以测试的恶意软件样本。文献[6]研究的Amandroid系统,采用静态分析方法,从数据流和控制流确定对象的指向信息,可生成多种安全分析。文献[7]通过静态分析提取上下文中权重较大的API(Application Programming Interface,应用程序接口),通过有向图解决恶意软件变种问题。谢丽霞[8]提出了基于良性样本的检测模型,该模型在客户端采集样本训练信息,在服务器端检测判断出恶意软件。

本文实现了基于改进决策树分类算法的Android恶意软件检测的框架,该检测框架是静态检测,经过对属性特征的选择,然后利用分类算法对应用程序进行分类。该框架中属性特征选择后还通过Fisher Score、信息增益和卡方检验三种分类方法对这些特征进行预处理,去掉那些对后期分类影响不大的冗余特征,提高分类的精确度。分类器中的分类算法采用决策树,但是传统的决策树分类算法不能满足框架的需求,所以本文对决策树分类算法进行了改进,改进后的算法可以达到较好的分类效果。

1 Android恶意软件行为

近年来出现了许多Android恶意软件,安全工作人员对这些软件的恶意行为进行了总结,主要以恶意扣费、资费消耗、恶意传播、远程控制[9]、隐私窃取[10]、流氓、诱骗欺诈等行为为主。恶意行为的发生,主要是通过用户安装、触发以及恶意载荷等方式进行的。Android操作系统是基于Linux内核的[11],不管是哪种恶意方式,在运行时都会涉及到系统调用,也即Android通过应用程序接口API来调用内核操作。

Android应用程序由四大组件Activity、Broadcast Receiver、Service和Content Provider组成,应用程序进行操作的相应权限申请都写在AndroidManifest. xml配置文件中,而应用程序在进行系统调用时的API都在它的源代码中,表1列出了部分恶意行为所需的权限和涉及到的系统调用API。

表1 部分恶意行为所需权限及系统调用APITab.1 the required permissions and system calls API of malicious behavior

2 恶意软件检测模型

2.1系统整体框架

恶意软件检测框架如图1所示,该框架包括:输入、特征提取、数据预处理、恶意性判定和输出五部分,其中各部分详细描述如下。

图1 基于改进决策树的恶意软件检测框架Fig.1 malware detection framework based on improved decision tree

特征提取:从配置文件AndroidManifest.xml中提取出权限特征,从程序源代码中提取出危险系统调用API,本文共整理出235种危险API。

数据预处理:对特征数据去除冗余,去除对后期分类影响不大的特征,可以提高后期分类的效率。本文采用三种方法Fisher Score、卡方检验和信息增益进行特征选择,其中Fisher Score评价特征对数据结构的保持能力,它可以使类别相同的样本数据投影到特征的近距离处。卡方检验是对假设值的验证,它可以去除关联性较大的特征值,降低各属性之间的相关度。信息增益进行全局特征的选择,提取对后期分类具有明显作用的属性特征。

恶意性判定:该部分是一个分类器,其中采用的是改进的决策树分类算法。对样本的属性特征进行评估,判断恶意性概率和正常概率的值。

输入和输出:输入是从数据库中取出一部分Android应用程序;输出是把对应用程序的分类结果输出到界面,告诉用户。

上面是对检测框架各部分功能的描述,下面再给出Android恶意程序检测方案的流程,见图2。

图2 检测方案流程图Fig.2 flowchart of the detection schemes

首先对于Android应用程序通过反编译工具apktool进行解压缩,得到配置文件AndroidManifest. xml和应用程序的源代码,对配置文件中的权限申请和源代码中的系统调用API进行特征提取,然后利用特征选择方法对特征数据进行预处理,最后利用特征集以及改进的决策树分类算法建立恶意软件的检测模型,通过判断,输出检测的结果。

2.2改进的决策树分类算法

传统的决策树分类算法把数据样本分成训练集和测试集两部分,利用训练集生成决策树,采用测试集测试决策树的精确度,而决策树分类的精确度取决于样本的质量,这种通过一批训练样本生成的决策树,精确度很难达到最优。本文对传统决策树分类算法进行改进,初始状态时,不对数据样本分类,训练集是通过多次随机抽取获得,每次都构建决策树,并把剩余样本作为测试集测试决策树精度,然后进行比较,并且根据它们之间的误差调整训练集中的样本,经过反复多次迭代测试,选取精确度最高的作为最终决策树。该改进算法的具体描述步骤如下:

(1)假定有样本数N个,每个样本都包含M个特征属性;

(2)从N个样本中随机抽取N1个作为训练集,剩余的N-N1个样本作为测试集,样本迭代计数器n=0,决策树精确度初始值S0=q;

(3)根据样本训练集N1生成决策树T,样本迭代计数器n=n+1;

(4)对决策树T计算其精确度Si,若Si>Si-1,则Si-1=Si;

(5)判断决策树两次迭代结果的精确度的差是否满足误差要求,若满足,则输出决策树;否则,转步骤(6);

(6)判断样本迭代次数n是否小于最大迭代次数C,若小于转步骤(7),否则输出决策树;

(7)对样本训练集N1中的样本进行筛选,找出其特征属性不能很好用于后期分类的样本,把这些样本用等量的测试集中的样本进行替换,这些样本放回测试集,由此形成新的训练集和测试集,测试集赋值给N1,转步骤(3)。

3 实验结果

样本数据包括恶意软件和正常软件两大类,样本均来自实际的网络环境,正常软件主要来自官方软件市场Google Play,恶意软件主要来自Virus Share,这是一个恶意软件的在线仓库。

对于本文提出的检测系统模型,通过对大量的恶意软件和正常软件样本进行处理,其中的一部分用于训练分类器,剩余的样本数据作为测试分类器的数据,本文中True positives(TP)表示正常软件被正确分类的数目;True negatives(TN)表示恶意软件被正确分类的数目;False positives(FP)表示正常软件被分类器错误分类为恶意软件的数目;False negatives(FN)表示恶意软件被错误分类为正常软件的数目。结合分类器的性能评估指标,给出如下计算公式。

上面的公式中,Accuracy表示正常软件与恶意软件被分类器正确分类的比例,称为分类正确率;Precision是分类精度,指所有被分类器判定为恶意软件的,其中确实为恶意软件的比例,这是分类器性能中的重要指标;FPR表示误报率,即所有正常软件中被错误分类为恶意软件的比例;TPR是所有正常软件能被正确分类的比例,评估分类器能够判定出正常软件的能力。

3.1数据是否预处理对分类结果的影响

通过图3柱状图可以看出,将Fisher Score-卡方检验-信息增益方法相结合进行数据预处理,剔除冗余数据,可以提高分类模型的正确率和精确度,并有效降低了误报率。

图3 不同预处理方式实验结果Fig.3 The experimental results of different pretreatment methods

3.2传统决策树与改进决策树的比较

为了进一步提高决策树分类算法分类的性能,本文对决策树分类算法进行了改进,从图4可以看出,对决策树分类算法进行改进之后,比传统的决策树树分类算法在正确率、分类精度和正常样本的检出率都有了大幅度提高,而在正常软件被误报为恶意软件的比率也有所下降,说明本文对算法的改进是有效的。

图4 分类算法的实验比较Fig.4 The comparison of classification algorithms

并且,图4中,分类器对应用程序的分类是基于前面对数据进行预处理之后进行的,对比图3和图4,通过数据预处理,再应用本文提出的改进算法,可以大大提高分类效果。

4 结束语

本文提出了基于改进的决策树分类算法的Android恶意软件检测框架,并介绍了其中的核心部分和检测流程。对该恶意软件检测框架进行了仿真实验,通过实验比较发现,基于改进的决策树分类算法的Android恶意软件检测模型能有效提高恶意软件的检测性能,对Android应用程序的分类判定工作具有实用价值。后期主要研究方向包括:实现样本分析的自动化,通过网络实现联合检测,提高检测恶意软件的效率。

[1] 石旭东. 基于Android 平台的NFC 技术的研究与实现[J].软件, 2013, 34(1): 64-68.

[2] 荣艳冬. Android 软件权限系统的设计与实现[J]. 软件, 2014, 35(2): 50-51.

[3] 刘伟, 孙其博. Android平台恶意软件行为模式研究[J]. 软件, 2012, 33(11): 150-155.

[4] BORJA S, IGOR S, CARLOS L, et al. PUMA: Permission Usage to Detect Malware in Android[C]// International Jiont Conference CISIS’12-ICEUTE’12-SOCO’12 Special Sessions. Berlin, Germany: Springer, 2012: 289-298.

[5] SHABTAI A, KANONOV U, ELOVICI Y, et al. “Androma1y”: a Behavioral Malware Detection Framework for Android Devices[J]. Journal of Intelligent Information Systems, 2012, 38(1): 161-190.

[6] WEI F, ROY S, OU X. Amandroid: a precise and general intercomponent data flow analysis framework for security vetting of Android APPS [C]//Proceedings of the 2014 AGM SIGSAC Conference on Computer and Communications Security. New York: ACM, 2014: 1329-1341.

[7] ZHANG M, DUAN Y, YIN H, et al. Semantics-aware Android malware classification using weighted contextual API dependency graphs[C]//Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security. New York: ACM, 2014:1105-1116.

[8] 谢丽霞, 赵彬彬. 基于良性样本的Android系统恶意软件检测[J]. 计算机工程与设计, 2016, 37(5): 1191-1195.

[9] 汪文彬,杨少辉. 基于短信控制的Android手机安全系统的设计与实现[J]. 软件, 2015, 36(6): 21-25.

[10] 李淑民. Android 手机隐私泄露研究[J]. 软件, 2015, 36(2): 69-72.

[11] 李铮山, 林干, 范文浩, 吴帆. Android的应用程序安全评估系统设计[J]. 软件, 2012, 33(12):287-291.

Android Malware Detection Based on Improved Decision Tree Classification

BAO Mei-ying
(School of Mathmatics and Computer Science, Shanxi Datong University, Datong Shanxi, 037009)

At present, the mobile phone for Android is facing more and more malicious threats, this paper designs an Android malware detection framework. A malicious detection framework is implemented which adopts Android application extraction feature, Fisher Score and information gain and chi-square test as the feature selection method. The attributes are pre processed, and then the improved decision tree algorithm is used to classify the software. The simulation results show that the malware detection framework own lower false alarm rate and higher accuracy.

Android system; Malicious software; Detection; Decision trees

TP311

A

10.3969/j.issn.1003-6970.2017.02.008

国家自然科学基金青年科学基金项目(批准号:11301312);山西大同大学大学生创新创业项目(批准号:XDC2016232))

鲍美英,女,(1975-),山西大同人,硕士,副教授,主要研究方向:网格计算,嵌入式

本文著录格式:鲍美英. 基于改进决策树分类的Android恶意软件检测[J]. 软件,2017,38(2):33-36

猜你喜欢
决策树应用程序分类器
一种针对不均衡数据集的SVM决策树算法
删除Win10中自带的应用程序
决策树和随机森林方法在管理决策中的应用
BP-GA光照分类器在车道线识别中的应用
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
基于决策树的出租车乘客出行目的识别
基于肺癌CT的决策树模型在肺癌诊断中的应用
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别
三星电子将开设应用程序下载商店