一种识别病毒和蠕虫的算法
2016-11-17朱俚治
朱俚治
(南京航空航天大学 信息中心, 南京 210016)
一种识别病毒和蠕虫的算法
朱俚治
(南京航空航天大学 信息中心, 南京 210016)
对现有的恶意软件检测算法进行研究之后发现,某些检测算法只能检测一种恶意软件,并且部分传统的检测算法在检测恶意程序时漏检率偏高;针对目前现有的检测算法缺乏综合性检测能力的短板,在此文中提出了一种新的检测算法,该检测算法具有一定的综合检测能力;新算法的思路如下:第一步区分某种软件是恶意软件还是非恶意软件,如果是恶意软件则提取其特征码,然后使用决策树根据恶意软件的特征码对恶意软件进行识别和分类,如果存在特征码不能识别的恶意软件,那么再根据病毒和蠕虫的特征使用相似性计算算法对未知的恶意软件进行相似性计算,最后使用决策系统对相似性算法计算的结果进行决策,该恶意软件是病毒还是蠕虫;将相似性计算算法,决策树和决策系统在检测恶意软件算法中进行应用是文章的创新之处。
相似性;决策树;病毒;蠕虫;决策系统
0 引言
恶意软件是非用户期望运行的,怀有恶意目的或完成恶意功能的软件统称[4-6]。目前的恶意软件泛指包括病毒、蠕虫、傀儡程序、木马、后门程序,以及可能导致计算机使用者信息外泄的广告、间谍程序等[4-6]。由于恶意软件对用户的主机系统具有破坏性,因此及时的查杀恶意软件对用户来说是十分必要的。然而当今的某些恶意软件采用了加密技术和变种技术,使得检测算法的漏检率较高。
病毒和蠕虫是对互联网络最具危害性的两种恶意程序,安全研究人员为了遏制病毒和蠕虫在网络中传播,研发了各种关于病毒和蠕虫的检测算法,但有些算法是单纯的传统算法或单一的检测算法,这些检查算法在检测病毒和蠕虫时漏检率越来越高,造成漏检率高的原因之一是这些检测算法缺乏综合检测能力。但由于传统的检测算法更为成熟,因此本文将传统的检测算法与当今的某些智能算法相互融合形成一种新的检测算法,该算法在一定程度上能够减少算法的漏检率。
本文提出的算法是从恶意软件的角度来发现是否存在病毒或蠕虫。该算法中首先使用了特征码作为分类标准,对恶意软件进行识别和分类。如果存在特征码不能识别的恶意软件再使用相似性计算算法对恶意软件进行相似性计算,最后使用决策系统对相似性计算结果进行决策,该恶意软件是病毒还是蠕虫。因此本文提出的检测算法具有一定的综合检测能力,这是本文的创新之处,也是对已有检测算法的改进之处。
1 恶意程序与非恶意程序的区分
根据程序的行为属性可将程序分为善意程序和恶意程序。恶意程序具有破坏性和攻击型,因此善意程序与恶意程序在程序的行为上有许多不同之处,程序行为的不同将导致程序行为权值的不同。
主体恶意性权值为[3]:
说明:如果某个程序是恶意程序,那么权值就为大于0,但如果某个程序是善意程序,那么权值就为负值[3]。
结论:通过程序行为权值的计算,如果是恶意程序则在第2节中使用决策树算法对该恶意程序进行属性上的匹配和识别。如果该程序是善意程序则无需进行下一步属性上的匹配和识别。
2 决策树在恶意软件分类上的决策
2.1 决策树技术简介
在分类算法中决策树这是一种智能性分类算法,该算法通常利用已经标记过的对象进行学习构造模型,然后用其对新对象进行标记[12-13],之后进行对象的分类。决策树分类算法对实例进行分类时,必须根据已有的知识采用if-then算法结构对未知的对象进行分类。在分类过程中,使得未知对象的属性与已知的知识之间的误差达到最小[12-13]。
由于决策树进行对象分类时,必须根据已有的知识作为分类的条件,所以本文中采用恶意软件特征库中已知的特征码作为决策树的分类条件。
2.2 决策树在恶意软件分类上的应用:
讨论和分析:
②如果恶意特征码的属性值十分地接近与已知恶意特征码的属性值,那么这时恶意软件就被识别。
②如果未知恶意软件特征码的值偏离与已知的恶意特征码的属性值,那么这时恶意软件就没有被识别。
说明:判断对恶意软件特征码的属性值匹配是否成功的条件如下:
1)当f(x)≈0时,决策树的判断条件值为Y,则这时恶意软件的特征码匹配成功,此时由上一个节点到达左节点。
2)当f(x)>0时,决策树的判断条件值为N,则这时恶意软件的特征码匹配不成功,此时由上一个节点到达右节点。
图1 决策树在检测恶意软件上的应用
2)通过特征码的匹配算法可以检测出恶意软件中部分病毒和蠕虫,对于特征码不能识别的恶意软件,则使用以下第6节相似性计算和第7节的决策系统来检测恶意软件中是否存在病毒和蠕虫。
3 蠕虫与病毒的特征与区别
3.1 病毒的特征
计算机病毒的一个重要特性是具有传染性,一个程序是否具有传染性是判别该程序是否为病毒的重要条件[1-2]。如果该程序不具备传染性,那么就不是病毒[1-2]。目前大部分恶意程序都具有破坏性和潜伏性,病毒同样具有破坏性和潜伏性,但病毒所具有的传染性是其他恶意程序所不具备的。
3.2 蠕虫的特征
蠕虫是一种恶意代码,对网络具有破坏性,蠕虫通过消耗网络资源来达到攻击的目的。蠕虫发起攻击时具有一定隐蔽性和突然性,并且能够自动寻找和选择攻击目标,蠕虫技术发展至今出现了多种变种,其攻击方式令人防不胜防,因此蠕虫对网络仍然具有相当的危害性。蠕虫最大的特点是一种自主形式的传播,不需要任何载体,这是区别与病毒最主要的特征[7]。
3.3 病毒或蠕虫具有的特性
病毒的特征属性:①传染性;②隐蔽性;③潜伏性;④破坏性;⑤触发性,不可预测性。
蠕虫的特征属性:①攻击性;②感染性;③传染性;④其它功能。
3.4 病毒与蠕虫特征的区别
1)在传染性方面:当病毒传染自身代码的时候需要寄生在其它程序中才能够传播,而蠕虫在传播自身代码的时候是一种自主的传播方式。
2)在破坏性方面:病毒的破坏性方面体现在对程序的破坏,而蠕虫的破坏性方面体现在对网络资源的破坏。
3)感染对象的异同之处是:病毒感染的是本地文件,而蠕虫感染的是网络计算机。
4 恶意软件与病毒和蠕虫相似性的计算
4.1 欧氏距离公式的简介
在聚类算法中研究人员常常使用欧氏距离作为聚类对象之间相似性计算公式,常用的聚类公式有欧氏距离公式和马氏距离公式[13-14]。因此本文采用欧氏距离公式作为相似性的计算公式。
欧氏距离计算公式[13-14]:
4.2 欧氏距离公式在相似计算中的应用
恶意软件A′与已知属性的病毒A具有若干属性:
1)恶意软件A′有若干属性Xi1,Xi2,…,Xip,已知病毒A有若干属性Xj1,Xj2,…,Xjp。
2)如果恶意软件A′某些属性与已知病毒A的某些属性存在最为相似的属性时,那么有:Xi1-Xj1≈0,Xi2-Xj2≈0,…Xip-Xjp≈0。
4.3 恶意软件与病毒或蠕虫的相似性计算:
在本文中采用A′表示某种恶意软件所具有的属性,用A表示病毒或蠕虫所具有的属性。
说明:函数y=f(x)的含义是某种恶意软件与病毒或蠕虫属性的偏离函数。
函数: g(x)=1-f(x)
说明; 函数y=g(x)的含义是恶意软件与病毒或蠕虫相似程度的判断函数。
分析和讨论:
1)某种恶意软件与病毒属性的相似性计算:
②如果y=f(x)的值越小,那么g(x)=1-f(x)的值就越大,表示A′偏离A属性的概率就越小。如果A′偏离A的概率就越小,那么A′与A的相似性就越大。根据以上的分析就有此结论:此时某种恶意软件与病毒之间的相似度就越强。
2)某种恶意软件与病毒属性偏离程度的计算:
如果y=f(x)的值越大,那么g(x)=1-f(x)的值就越小,这时A′与A的相似性就越小,则某种恶意软件的属性与病毒之间的相似度就越弱。
如果y=f(x)的值越大,那么g(x)=1-f(x)的值就越小,就表示A′偏离A的属性概率就越大。如果A′与A的相似性就越小,则某种恶意软件与病毒之间的相似度就越弱。
3)根据以上的讨论和分析有以下的结论:
①根据欧氏距离公式进行对象相似性计算时的特点,有以下结论:
②根据欧氏距离公式和相似性计算算法的讨论和分析有结论如下:
如果某种恶意软件与病毒的属性满足相似性计算结果,并且同时满足欧氏距离公式的计算结果,那么该恶意软件为病毒的概率很强。
③某种恶意软件与蠕虫之间的比较同样可以利用上述的相似性计算算法得出相应的结论。
④以下使用决策系统对相似性的计算结果作出决策。
5 决策系统在检测病毒和蠕虫上的决策
5.1 决策系统的定义
在决策系统中决策条件属性值的不同,能够产生不同的决策属性值,这些不同的决策结果能够将不同属性的样例进行有效分类。条件属性是决策规则的内涵,是决策系统做出决策结果的重要因数[10-11]。
1)域:
U={x1,x2,x3,……,xn},其中x1,x2,……xn分别表示不同种类的软件。
2)属性集:
A={a1,a2,a3,a4,a5},其中α1表示恶意软件,α2表示具有自我复制的功能,α3表示传染需要载体,α4表示传染不需要载体,α5表示恶意软件识别成功。
3)值域:
V={Y,N}
5.2 恶意程序属性的决策表
在决策系统中如果把每一条样例的条件属性值部分作为规则的前件,那么决策属性值部分就作为规则的后件,每一条样例都对应着一条具体的决策规则10-11],信息系统中的属性集合可以分成两部分:一部分为条件属性集合;另一部分为决策属性,这种信息系统通常称为决策系统或决策表[10-11]。
在决策系统的决策表中,属于条件属性有:恶意软件、具有自我复制的功能、传染需要载体、自主传播不需要载体。属于决策属性的有:恶意软件识别成功。如表1所示。
表1 决策表
说明: ①当某种软件属于恶意软件时:属性值为Y,否则属性值为N。
②当某种恶意软件具有自我复制的功能时:属性值为Y,否则属性值为N。
③当某种恶意软件在传播过程中时需要载体时:属性值为Y,否则属性值为N。
④当某种恶意软件在传播过程中不需要载体时:属性值为Y,否则属性值为N。
5.3 恶意代码的决定规则:
1)病毒的决策规则:
(属于恶意软件,Y)Λ(具有自我复制的功能,Y)Λ(传播不需要载体,N)⟹(恶意软件识别成功,Y)
2)蠕虫的决策规则:
(属于恶意软件,Y)Λ(具有自我复制的功能,Y)Λ(传播不需要载体,Y)⟹(恶意软件识别成功,Y)6检测病毒和蠕虫的算法
(1)使用权值计算公式区分软件是恶意软件和非恶意软件。
(2)提取恶意软件的特征码。
(3)根据提取的特征码使用决策树对恶意软件进行识别。
(4)分析病毒和蠕虫属性的共同点和不同点。
(5)使用相似性计算法计算不能识别的恶意软件的相似性。
(6)使用决策系统对相似性的计算结果做出决策。
(7)根据决策的结果来区分病毒和蠕虫。
6 结束语
网络安全研究人员为了保护网络计算机用户的安全,开发出了多种检测算法,具有智能性的检测算法能够应对一些变体的网络攻击行为,并且也能够检测更多的未知的病毒,蠕虫和木马,为用户提供的更好的保护措施。本文查阅了一些智能性的算法,提出了一种检测蠕虫和病毒的算法,该检测算法中融合了决策树算法,粗糙集中的决策系统以及相似性计算算法。本文将这几种算法在检测恶意软件中进行应用是本文的创新之处,本文提出的检测在一定的程度上能够提高对恶意软件检测时的智能性。
[1] 郑 晶,王春生.新一代病毒检测技术研究[J].网络安全技术与应用,2009,(9):23-25.
[2] 王培昌.走进计算机病毒[M].北京:人民邮电出版社,2010.
[3] 刘巍伟,石 勇,郭 熠,等.一种基于综合行为特征的恶意代码识别方法[J].电子学报,2009,37(4):696-700.
[4] 陈 健,范明钰.基于恶意软件分类的特征码提取方法[J].计算机应用,2011,31(1):83-87.
[5] 卢 浩,胡明平,刘 波.恶意软件分类方法研究[J].计算机应用,2006,31(S):4-12.
[6] 陈洪泉.恶意软件检测中的特征选择问题[J].电子科技大学学报,2009,38(S):53-56.
[7] 伊俊艳.蠕虫病毒传播机理研究机器实现[J].湖南科技学院学报,2005,26(11):112-113.
[8] 谢 辰.计算机病毒行为特征的检测分析方法[J].网络安全,2012(4):37-39.
[9] 董 旭,魏振军.一种加权欧氏距离聚类方法[J].信息工程大学学报,2005,6(1):23-25.
[10] 胡清华,于达仁.应用粗糙集计算[M].北京:科学出版社,2012.
[11] 陈德刚著.模糊粗糙集理论与方法[M].北京:科学出版社,2013.
[12] TomM.Mitchell.机器学习[M].北京:机械工业出版社,2013.
[13] 孟海东,张玉英,宋飞燕.一种基于加权欧氏距离聚类方法的研究[J].计算机应用,2006,26(12):152-153.
[14] 董 旭,魏振军.一种加权欧氏距离聚类方法[J].信息工程大学学报,2005,6(1):23-25.
[15] 史旭宁.恶意软件及其检测方法[J].电脑知识与技术,2012,8(24):5810-5812.
[16] 高 鹏.分布式蠕虫流量检测技术[J].信息安全与通信保密,2009(12):93-95.
[17] 宋 程,李 涛,陈 桓,等.基于人工免疫原理的未知病毒检测方法[J].计算机工程与设计,2005,26(3):583-584.
Algorithm for Identifying Viruses and Worms
Zhu Lizhi
(Information Center, Nanjing University of Aeronautics and Astronautics, Nanjing 210016,China)
After existing malware detection algorithm study found that certain detection algorithm can detect only a certain kind of malware and high missing rate in detecting malicious programs. Aiming at the existing detection algorithm lack of comprehensive capacity, we propose a new detection algorithm in this article, the detection algorithm has some integrated detection capabilities. The new algorithm ideas are as follows: The first step is to distinguish between a non-malicious software or software malware, malicious software if its signature is extracted, and then use the decision tree based on malware signatures of malware identification and classification, if signature does not recognize the existence of malware, then according to the characteristics of viruses and worms use similarity calculation algorithm for unknown malware similarity calculation, the final decision system using the algorithm to calculate the similarity of the results of decision-making, the malicious software is a virus or a worm. The similarity calculation algorithm, decision tree and decision-making system in the application of algorithms to detect malicious software is the innovation of this paper.
Similarity; decision trees; viruses; worms; decision system
2015-09-17;
2015-11-05。
朱俚治(1980-),男,江苏宜兴人,工学学士学位,工程师,主要从事计算机技术,信息安全方向的研究。
1671-4598(2016)03-0224-04
10.16526/j.cnki.11-4762/tp.2016.03.061
TP3
A