APP下载

基于改进ID3算法的恶意软件检测策略

2023-09-25谢维

计算机时代 2023年9期

谢维

摘  要: 当前机器学习算法应用于iOS平台恶意软件检测的研究较少、公开样本数据集获取难、静态检测误报率高。因此提出一种改进的ID3信息增益算法的动态恶意软件检测方法。首先创建数据集,使用改进的ID3信息增益算法选取前40個API调用序列组成特征向量并构建决策树,然后构建测评指标对实验进行分析和验证。实验结果表明,本文方法具有较好的检测率,与改进前的算法相比准确率提高了2.5%,可有效地对恶意软件进行动态识别。

关键词: iOS平台; 恶意软件检测; ID3算法; 动态检测; 创建数据集

中图分类号:TP181;TP309;TP311.5          文献标识码:A      文章编号:1006-8228(2023)09-32-05

Malware detection strategy based on improved ID3 algorithm

Xie Wei

(School of Information Science and Technology, Zhejiang Sci-Tech University, Hangzhou, Zhejiang 310018, China)

Abstract: Currently, malware detection on iOS platform suffers from few researches on applying machine learning algorithms, difficulty in acquiring public sample datasets, and high false alarm rate of static detection. Therefore, a dynamic malware detection method based on improved ID3 information gain algorithm is proposed. Firstly, a data set is created, and the top 40 API call sequences are selected by the improved ID3 information gain algorithm to form the feature vector and construct the decision tree. Then, evaluation indexes are constructed to analyze and verify the experiment. Experimental results show that the proposed method has a good detection performance, and the accuracy rate is increased by 2.5% compared with the original algorithm. It can effectively identify malware dynamically.

Key words: iOS system; malware detection; ID3 algorithm; dynamic detection; create data set

0 引言

一直以来,有关iOS系统恶意软件检测的研究较少,因为iOS是闭源系统,分析应用的行为必然会用到逆向以及插桩技术,这大大增加了研究的难度。根据Skycure 2022年移动安全报告显示,iOS的漏洞数量近年呈逐渐上升趋势,因此对于iOS恶意软件检测的研究有很大价值。

机器学习作为通用数据处理技术,在各个领域都得到了广泛的应用。其中监督式学习采用分类和回归技术对模型进行开发和预测,在恶意软件检测领域研究中取得显著成效。例如 Moon Dami[1]等人使用良性和恶意文件的标记数据集进行监督学习,并不断调整特征哈希向量的大小,不仅减少了70%的内存空间,而且提高了检测精度。 Urmila T.S.[2]采用机器学习和行为特征技术,通过使用多个权限,将特征合并到预测模型中,将研究分成四个阶段执行检测恶意软件的相关程序。Tejaswini Ghate[3]等人建议结合两种主要的分类算法来对恶意软件的存在进行分类,同时探索满足实验需求的数据集,在同一数据集上执行逻辑回归,并加入XG-Boost以提高性能,来达到最好的分类效果。

本文在现有研究基础上,结合iOS系统运行时的特点即方法及属性类型的确定是在运行时候绑定,提出一种基于改进的ID3信息增益算法[4]的动态恶意软件检测方法,检测效果显著。

1 动态监测系统

1.1 iOS的安全机制

图1是iOS系统安全架构模型图,归纳起来主要有安全启动策略,代码签名,沙盒机制,数据加密,地址布局空间随机化[5]等几个部分,在安全性能上,iOS系统使用了大量的密码学理论和计算机加密技术[6],这些措施增加了iOS系统的稳定性。

越狱,是用户为了获取iOS系统最高权限的一种技术手段,并且可对其权限进行更改。常见的一些脱壳技术包括dump-decrypted,Clutch等。本文设计的动态监测系统也应用了越狱技术。

1.2 系统的设计

要对iOS系统进行动态分析,就要设计一个动态监测系统来实时获取程序的运行情况。在越狱的手机上我们可以使用GDB,CYCRIPT等工具来调试[7]。本监测系统不仅可以应用在越狱手机也可以用在非越狱手机上。

本检测框架基于Frida,它是基于Phython以及JavaScript语言的能够对iOS系统进行Hook的一款强大的调试框架,在非越狱的手机上插入FridaGadget.dylib即可对设备进行动态监测。越狱手机在cydia上运行该检测框架即可。

本文监测原理是在API调用层和系统层注入一个监控层。监测框架如图2所示。

监测系统本文统一叫做EMS,一部分运行在服务器端,另一部分运行在iOS设备端,使用Phython语言开发。服务器端完成一些基础的信息配置,比如越狱或非越狱,设置自定义脚本等等,在iOS设备端对设备模拟操作来获取应用程序运行时的API调用序列。

2 特征提取

2.1 利用改进ID3算法筛选高危权限

获取相册或者视频等这类的API都可叫做敏感的API,重载的特点很多看似不同的API实质一样,而使用机器学习训练模型时特征个数越多,训练需时间越长,也容易引起特征“维度”灾难,因此需要降低特征向量的维度。

2.2 ID3算法介绍

解决分类问题时,决策树算法是用得最多,范围最广的算法,核心是构建一棵分类准确的决策树[8]。它具有分类快,简单易用的特点。本文通过使用信息增益算法对数据集中的每一个特征进行计算,从而过滤选择出分类能力更强的特征,它的定义如下:

[Ι(S1,S2,…,Sn)=-i=1nP1∙log2(Pi)  (1≤i≤n)] ⑴

式⑴表示样本。其中,p表示某个样本出现的概率,I表示数据集样本的期望信息量。

[Ι(S1,j,S2,j,…,Sn,j)=-i=1nPi,j∙log2(Pi,j)  (1≤j≤k)]  ⑵

式⑵表示某个特征在所有样本中的期望信息量。

[Ε(Α)=i=1kSjS∙Ι(S1,j,S2,j,…,Sn,j)] ⑶

式⑶表示A特征的信息熵。

[Gain(Α)=Ι(S1,j,S2,j,…,Sn,j)-Ε(Α)] ⑷

式⑷表示A特征的信息增益。

虽然该算法优点突出,但也有一处明显不足,即存在多值偏向[9]的问题,会优先测试属性较多的特征,而不是优先选择跟结果有密切联系的特征,基于此,本文对其进行了改进。

2.3 ID3算法的改进

2.3.1 信息增益的修正

针对ID3算法存在多值偏向的问题,本文提出了使用增益率和信息增益两个衡量标准来共同构建ID3决策树算法,改进公式如下:

[GR(Α)=Gain(Α)K] ⑸

其中,分母K表示各个属性的个数,系數作为修正参数,修正了多值偏向对信息增益的影响。但这个公式结果可能会有接近0的情况,即常说的过拟合现象。

2.3.2 属性阈值

为了解决过拟合问题提出阈值的解决方法:

[r=1S1kΕ(Α)] ⑹

其中,r代表阈值,表示数据集中所有属性的平均信息熵,s为数据集中的样本数量,k表示样本中特征的数量,E(A)是式⑶表示的某个特征的信息熵值通过改进的该方法可以访问到数据集中每一个特征属性。

2.3.3 平衡系数

为了修复多值偏向以及信息增益补偿过度的问题,需要引入平衡系数α,该系数规定,当某个特征值信息增益大于它的阈值时,选择信息增益作为最后的结果,当某个特征的信息增益小于阈值时,使用阈值作为结果。平衡系数的计算公式为:

[α=GR(A)×rGR(A)] ⑺

该系数等效于修正后以及属性阈值r共同作用的结果,有效地解决了ID3算法自身的缺陷,优化后的信息增益算法为:

[GR=α×Gain(A)] ⑻

用改进后的信息增益算法选出数据集中属性计算结果最好的前40位特征,作为本数据集的特征向量集。

2.4 提取高危权限特征

特征提取的部分需要用到上述1.2节设计的EMS系统来监控API的调用,获取API调用序列的同时,滤除冗余部分并保存结果,使其成为数据集的一部分。然后使用改进的ID3算法训练数据集,保留前40个信息增益比较大的特征作为最后的特征集,将特征的有无量化为“1”或“0”,“1”代表该特征下的API有调用,“0”则相反,最后敏感API调用频次的动态特征信息描述如下:

[Fdanamic=f1,f2,……,f41(0≤fi<∞)]  ⑼

[f1],[f2]...,[f40]等前40位表示的是调用的一个API序列,最后一位代表该样本是恶意的还是良性,恶意用“0”来表示,良性的用“1”表示。

表1为筛选出的部分敏感API序列。

3 实验结果

3.1 创建数据集

本实验整体架构如图3所示。

未知软件放入EMS系统,拿到运行数据作为数据集的待测样本,最后分类器输出为“0”或者“1”。由于数据集获取困难,本文从App Store 60款iPhone必备App,人气影视与音乐,人气摄影与视频工具等模块里下载一些常见的App 200款作为白名单,从第三方渠道下载恶意的软件100款作为黑名单,如图4所示。

下载App之前先将手机里所有的非系统软件按照设置→通用→iPhone存储空间→点击需要卸载的软件的步骤一步步操作,防止与后续需要下载的软件产生交互或数据存留造成获取的实验数据不准确。软件下载后即在EMS系统运行,并收集运行的数据。运行App的过程中会产生很多的调用API,有些API明显跟实验分类结果无关,基于此本文设计了过滤算法,即维氏匹配法,该匹配法满足将不相干调用API接口从数据库中滤除。维氏匹配法不仅可以滤除一部分毫不相干的API调用序列,也可以滤除一些冗余序列。之后对App打标为0或1,0代表恶意软件,1代表良性软件,并对模型进行训练。

3.2 评测系统的建立

为了达到恶意软件自动检测的效果,本文设计了一款App应用运行时自动监控以及对API序列进行抓取的EMS监控系统,该监测系统的安装环境为Windows10,被测手机设备为iPhone6s,系统的版本为10.1.2,系统的测评标准如表2所示。

表2中TP表示的是一个恶意软件被预测为恶意样本的数量,FP表示的是一个良性样本的被预测为恶意软件的数目,FN表示的是恶意的样本被预测为良性的App的数量,而TN表示的是一个良性的样本被预测为良性样本的量,TRP代表的是当前的预测样本中真正的恶意样本总数占所有样本的比率。

3.3 实验

本文使用ID3机器学习算法以及改进的ID3机器学习算法分别对自创建的数据集进行实验,数据集分为两个部分,一部分为将要训练的数据集,一部分作为测试集来验证改进算法的效果,实验结果如图5~图8所示(纵轴单位:%;横轴代表样本数,单位:个)。

由图5~图8可知,随着样本数量的增加分类效果的各个指标都稳步上升,如样本数量从60到300后使用改进的ID3算法精确度提升了3%,而使用未改进的算法也提高了3%,除此之外随着算法的改进各个分类的指标也较于未改进有了明显的提升,例如召回率,在使用改进算法之后提高了2%。

最终分类效果对比如表3所示。

由此可见,本改进方法在iOS平台恶意软件检测上有非常好的效果。

4 结论

本实验使用改进的ID3算法进行恶意软件检测,准确率达到了92.7%,与改进前的算法相比提高了2.5%,具有很好检测效果。

当前在iOS平台上的恶意软件检测研究较少且多为静态,误报率高,本文自创数据集并提出动态检测方法,解决了静态检测策略不足的问题。采用了改进ID3算法,提升了特征提取效果,并提升恶意软件检测效率以及准确率。

本文自创的样本数量有限,后续可进一步扩充样本的数量并结合云端分析平台进一步提高恶意软件检测的准确率和效率。

参考文献(References):

[1] Moon Damin and Lee JaeKoo and Yoon MyungKeun.Compact feature hashing for machine learning based malware detection[J]. ICT Express,2022,8(1):124-129.

[2] Urmila T.S.. Machine learning-based malware detection on Android devices using behavioral features[J].Materials Today: Proceedings,2022,62(P7):4659-4664.

[3] Machine Learning Based Malware Detection: a Boosting Methodology[J].International Journal of Innovative Technology and Exploring Engineering,2020,9(4):2241-2245.

[4] 王利軍.决策树ID3算法的优化[J].菏泽学院学报,2020,42(5):15-19,30.

[5] 甄恩浩.基于iOS平台的恶意软件检测机制研究[D].四川:电子科技大学,2015.

[6] 梁泽华.基于iOS平台应用安全检测及防护技术的研究[D].四川:电子科技大学,2017.

[7] 胡亮.iOS应用程序漏洞和恶意行为检测的研究[D].北京:北京邮电大学,2019.

[8] 朱琳,杨杨.ID3算法的优化[J].软件,2016,37(12):89-92.

[9] 谢鑫,张贤勇,杨霁琳.邻域等价关系诱导的改进ID3决策树算法[J].计算机应用研究,2022,39(1):102-105,112.