基于AdaBoost算法的Linux病毒检测探究
2018-02-28李燕萍
李燕萍
摘 要:尽管Linux在设计之初就具有显著的优越性,但在1996年却出现了Linux病毒。基于全面地监测该病毒的目的,文章综合了机器学习的基本理论知识,进而探索出一种高效的检测方法。此方案综合了ELF文件特征,并将BP神经网络作为基分类器,通过AdaBoost实现对所有的基分类器的训练。
关键词:Linux;基分类器;病毒检测;AdaBoost
一、基于AdaBoost的Linux病毒检测方案
本研究综合采用了集成学习的基本原理,对各分类器所带来的检测结果加以整合,进而提升检测精度。最终,所得的Linux病毒检测系统其基本检测流程如下:首先选取待测文件,从中获取各样本特征。其次所有基分类器都各自展开样本检测工作,获得各自的结果。最后将各基分类器所得的结果加以整合,进而得出最终的检测结果。
事实上,本文所设计的检测方案是基于传统方案加以改进所得,二者的区别在于改进后的方案增强了分类器的差异性,这也随之带来了一些问题。此外还需要通过科学的手段对基分类器加以训练,提升整合能力。
二、AdaBoost算法及其改进
1.原AdaBoost算法
基于Adaboost算法,对同一个训练集而言,可以对具有差异化的基分类器展开训练,而后将各分类器进行整合,最终形成强分类器。最初,训练样本对应了相应的初始权值,随着某一基分类器的训练结束,将会以所得的分类结果为依据,进而对样本权值做调整,因此在后续的训练中可以增强基分类器对该类样本的洞察能力。在获得各分类器的判决结果后,对其进行加权处理方可得到最终的强分类器。
2.改进算法分析
基于传统的AdaBoost算法,本文做了如下改进:一是对权重计算方案做了相应调整,将病毒纳入基分类器的权重分配之中。二是对基分类器的整合方式做了相应优化,由曾经传统的权重投票方式优化为基于DS证据理论的整合方式。三是改进了合成规则。对于检测系统而言,若其含有T个基分类器,此时可以引入Dempster正交合成规则,进而对命题所对应的基本概率函数加以整合,而后可以得出系统对某一命题所对应的具体信任度分配情况,如下所示:
M(A)=m1(A)⊕m2(A)⊕...⊕mT(A)
对于某一命题N而言,可以通过上述方法获悉系统对其的信任度,如果所得的值超过预先设定的闪值,那么将会认定该待测文件属于病毒,否则将会认定为正常文件。
显然,引入DS证据理论后,此时检测系统将突破传统“是”与“否”的简单形式,通过可量化的值加以输出。在某些检测敏感度较高的场合,可以將闪值做相应下调,此时将会有更多的可疑文件被系统认定为病毒,高度的灵活性在提升判定能力的同时还可以适用于各类场景中。
由上述内容可知,对AdaBoost算法加以改进后,在进行基分类器的权重计算环节中,综合考虑了病毒(即正样本)对识别能力的影响,因此该算法对病毒检测而言具有高度可行性。当出现分类错误率相同的情况时,对于识别能力更强的基分类器而言可以对权重做以调整,获得更大的值,进而提升整个系统的识别能力。基于AdaBoost算法,综合了DS理论,可以显著增强各基分类器所带来的整合水平,提升最终的准确率。
三、实验结果与分析
假定系统只有一个基分类器,此时可以等效于系统没有进行集成学习,所带来的正确率保持在85%以上水平,因此有理由说明ELF文件特性以及BP神经网络分类算法具有较强的可行性,它对Linux病毒检测而言效果显著。
如果基分类器数量在2至16个范围内,此时正确率将进一步提升,这受惠于集成学习的优越性。
如果基分类器的数量在16至32个范围内,此时准确率并未呈现明显上升的特征,这表明基分类器的数量在达到某一限定范围后,对效果的提升并不明显,因此无需为了提升检测效果而大量使用基分类器。
本文围绕Linux病毒检测方案展开研究,将ELF文件作为样本特性,并将BP神经网络作为基分类器,在引入AdaBoost算法后可以实现基分类器的训练目的,同时还引入了DS理论,很大程度上改善了整合效果。
参考文献:
[1]吴 恋,马敏耀,黄一峰,等.基于AdaBoost算法的Linux病毒检测研究[J].计算机工程,2018(8).
[2]杨 晔.基于行为的恶意代码检测方法研究[D].西安:西安电子科技大学,2015.