基于决策树的恶意应用软件检测方法

2021-05-24 09:55龚华堂
电脑知识与技术 2021年12期
关键词:Android系统决策树

龚华堂

摘要: 为了能够更精准检测恶意应用软件,保证计算机或个人移动中终端的数据安全以及个人财产安全,需要对传统的恶意应用软件检测方法进行改良,因此基于决策树对恶意应用软件检测方法进行研究。研究基本的决策树算法,分析得到决策树算法在恶意应用软件检测过程中的两种应用方式,并分别阐述CART决策树生成算法与CART决策树剪枝算法的应用原理。提取数据集中的样本特征、构建相应的样本特征数据集,基于决策树进行相应的样本特征筛选,并研究该算法的训练方法。最后设计实验,验证基于决策树的恶意应用软件检测方法达成了研究目的,具备算法的优越性和实用性。

关键词:决策树;恶意应用软件;Android系统

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2021)12-0049-02

人们在使用手机和电脑时,必然离不开对应用软件的操作,因此由应用软件衍生而来的恶意软件就成了当前互联网和计算机最重要的威胁。如果放任恶意软件在计算机中运行,很有可能对计算机系统本身造成威胁[1]。因此想要保证互联网环境的安全性,就需要首先确保个人设备中不会混入恶意应用程序,这就需要相关研发人员对于能够检测恶意应用软件的系统进行研究。因此本文使用决策树对恶意应用软件检测方法进行研究。

1 决策树算法研究

本文的决策树主要用于检测恶意应用软件,因此使用CART决策树作为本文的算法。CART决策树是一个树状的结构,通过基尼指数的检验,测试特征的不同,通过根节点逐一分裂,如此在分裂的过程中收集性状特征,逐渐达到子节点[2]。

在检测恶意应用软件时,需要两种对于CART决策树的应用方式,其一便是在遍历恶意软件时的CART决策树生成算法,CART决策树生成算法是CART回归树中最简单的特征划分算法,使用了最小平方化的原则,以完成二叉树的构建[3]。首先输入训练集,终止所有已知条件,输出CART决策回归树[f(x)],此时应通过以下公式选择最优切分变量:

其中[j]表示所求的最优切分变量;[s]表示待切分点;通过将所有最优切分变量遍历,得到所有能够切分点子树树枝,并得到公式(1)中数值最小的切分插入点[(j,s)]。

需要将已经选定的[(j,s)]点划分出相应的区域,并输出切分点的最优变量值,此时得到的只是区域最优变量,若想要计算出全局最优解,还需要不断重复以上两个步骤的递归程序,直至满足性状特征条件。设定每一个性状特征都是一个子树树叶,就能够得到如下所示的决策树生成表达式:

式中,[M]表示输入空间的总个数,即该决策树将空间划分为[M]个不相交的区域[R1,R2,R3,…,RM];[m]则表示每个区域的一个子树叶片,且满足[x∈Rm]。

CART决策树的应用方式是在检测到恶意应用软件删除以上过程中生成数据时所需要的CART决策树剪枝算法,剪枝的过程实际上就是一个将算法简化的过程,检测恶意应用软件的目的达成以后,就需要删除一些已经不需要的底端子树,因此需要在CART决策应用树中先后进行两步操作[4]。决策树的剪枝操作需要从底端开始,逐步操作至根节点,就能够获得经过修剪的决策树[{T0,T1,T2,…,Tn}]。可以通過验证法,交叉验证独立集合中的决策树,对其进行测试,选择一条最优的子树[5]。

2 恶意应用软件检测方法研究

2.1 特征向量的提取和构建

在研究检测方法时,为了方便设计算法以及验证算法的准确性,均需要首先构建数据集,在本文中,构建数据集时需要大量的良性应用软件和恶意应用软件,使良性应用软件和恶意应用软件达到1:1的比例。在数据集中提取特征向量并构建基于决策树的类别特征。

在得到了.txt的数据集集合后,就能够对该数据集中的所有文件名称进行操作,通过读取和去重,能够获得数据及样本的特征向量,并与数据集中的每一个样本比对。若存在与之相仿的文件则标注为1,若不存在与之相对应的文件则标注为0,以1和0作为样本特征的标签,并以此构建样本的特征向量集合。获得标签后,还需要再次处理已经集结为集合的特征文件,以便之后的样本训练。假设特征数据集中共有N个样本,可以设计样本总体特征与样本单体特征的对比函数关系式,获取了特征向量的维度分析结果之后,需要首先对该特征向量维度进行压缩操作,之后再进行特征的判别。

2.2 基于决策树的特征筛选

在上文计算得到特征向量之后,还需要基于决策树对这些向量进行特征的筛选,以寻找到混杂在良性应用软件之中的恶意应用软件,本文使用特征重要度的度量进行特征筛选。对于上文中构建的数据集,假设其中共有y个样本,其中恶意应用软件在样本集中的比例为[p2],则此时可以使用基尼指数进行样本集中CART决策树的生成操作。由此,对样本特征数据集所得到相应的特征进行评分,以评分进行筛选,其筛选过程如下所示:

其中,[F1,F2,…,FN]表示数据特征集合;[FS1,FS2,…,FSk]表示这些数据集合中各项数据所对应的评分。此时应设置一个特征阈值,若超过阈值,则可以将其筛选出来。其中[FSk]就表示第k个被筛选出来的特征。

2.3 算法训练集成方法研究

将以上特征的提取与筛选进行整合之后,就可以设计该恶意应用软件的检测方法如图1所示。

如上图所示,将上文中的样本特征集合分别进行训练并将其分类,通过对样本的划分,可以得到整个算法的训练集,将这些训练集统一测试,得到Roting的结果,经过投票处理之后,对各个子结果统一合并,才能得到最终的结果。将最终的结果输出,就可以将此作为一个数据集中恶意应用软件和良性应用软件的评判结果。

3 实验设计

为了确定本文研究的基于决策树的恶意应用软件检测方法是否能够达成研究目的,在检测精度、检测过后的算法冗余度、检测效率等方面的综合成绩优于传统的几种算法,设计对比实验进行验证。

3.1 实验环境设置

本实验在设置实验环境时应分为计算机的测试环境与移动通信设备的测试环境,基本的环境参数如下所示:计算机设备包括Intel Core -2440(八核)i7-4230 5.1GHz 的CPU、8GB运行内存、MS SQL Server 2012恶意软件样本数据库;个人移动端包括Core i7-2550 CPU(八核)4.20 GHz处理器、8GB运行内存、Weka3.8软件环境。使用Python软件将上文中研究的检测方法编写出来,装载于计算机设备中,再利用Weka软件将以上程序导入个人移动终端中,作为实验中的惡意应用软件检测程序。设置恶意应用软件样本数据集,收集2000个软件样本作为样本数据,其中200个为恶意应用软件。将这500个软件样本分为数量不一的10组,每组的良性应用软件和恶意应用软件数量不一,分组将这些应用软件装载进计算机设备和个人移动终端中。分别使用本文研究的基于决策树的恶意应用软件检测方法、传统的基于随机森林算法的恶意应用软件方法、基于机器学习的恶意应用软件方法这三种方法对以上的恶意应用软件进行检测。通过对检测精度以及检测过后的算法冗余度进行检测,判断其算法的实用性及优越性。

3.2 实验结果分析

通过以上四个公式的计算,可以得到四组对于恶意应用软件检测算法实用性的衡量数据,使用Matlab软件对其进行分析整理。

通过统计能够得到如表1所示的实验结果。

通过表1可以得知,在以上10次测试的精度检测中,基于决策树的恶意应用软件检测方法高于基于随机森林算法的恶意应用软件检测方法,却与基于机器学习的恶意应用软件检测方法精度相仿;在算法冗余度的测试中,本文研究的算法与基于随机森林算法的恶意应用软件检测方法相差不大,却远高于基于机器学习的恶意应用软件检测方法。基于综合考虑,本文研究的算法拥有较高的检测精度,在检测过后算法冗余度的计算中也冗余量较少,因此相较于其他两种算法具备更好的实用性和优越性。

4 结束语

本文为了解决原始的恶意应用软件检测方法应用效果不理想的问题,提出了一种基于决策树的恶意应用软件检测方法,对决策树算法进行了简要的分析,并将这种算法带入到了恶意应用软件检测方法中。对比实验中通过对样本数据的检测对比分析,验证了该种恶意应用软件检测方法的实用性和优越性。

参考文献:

[1] 冯垚,王金双,张雪涛.基于特征生成方法的Android恶意软件检测方法[J].信息技术与网络安全,2020,39(11):8-13.

[2] 管峻,刘慧英,毛保磊,等.基于API配对的Android恶意应用检测[J].西北工业大学学报,2020,38(5):965-970.

[3] 超凡,杨智,杜学绘,等.基于深度神经网络的Android恶意软件检测方法[J].网络与信息安全学报,2020,6(5):67-79.

[4] 陈怡,唐迪,邹维.基于深度学习的Android恶意软件检测:成果与挑战[J].电子与信息学报,2020,42(9):2082-2094.

[5] 庞梦洋,索中英,郑万泽,等.基于RS-CART决策树的航空发动机小样本故障诊断[J].航空动力学报,2020,35(7):1559-1568.

【通联编辑:张薇】

猜你喜欢
Android系统决策树
一种针对不均衡数据集的SVM决策树算法
决策树和随机森林方法在管理决策中的应用
基于改进决策树的故障诊断方法研究
Android系统上的移动互联网集成平台开发机制
基于决策树的出租车乘客出行目的识别
基于决策树的复杂电网多谐波源监管
基于肺癌CT的决策树模型在肺癌诊断中的应用