一种智能型的病毒检测方法

2014-10-21 20:07朱俚治
电子世界 2014年12期
关键词:属性病毒

【摘要】目前由于传统的病毒检测算法缺乏智能性,因而使得杀毒软件在检测病毒时产生的漏检和误检比率较高,因此解决当前病毒检测算法的智能性十分必要。不论是过去还是现在每种程序都有自身的属性,因此本文从程序属性的角度出发,提出一种基于程序属性的病毒检测算法。该算法以病毒的传染模块具有的属性作为检测未知程序是否为病毒的前提条件。本文提出的病毒检测算法在检测未知程序时分为三步:第一步提取程序的所有属性,第二步将需要检测程序的各种属性值与病毒的特有属性的属性值进行比较。第三步根据比较的结论,再根据实体与属性存在的内在联系来判断该未知程序是不是病毒。本文提出的算法具有一定的智能性,能够作为现有病毒检测算法的补充。

【关键词】病毒;属性;恶意程序

1.引言

由于病毒对程序具有攻击性和破坏性,因此计算机用户为了清除病毒,首先必须检出病毒。自从第一个病毒出现以来,病毒的更新速度总比反病毒技术来得快,因此为了减少对未知程序的误判,提高杀毒软件的准确率,使得杀毒软件具有一定的智能性十分必要。智能性的杀毒算法除了能够检测出新病毒,同时也能检测出已知的病毒。当今已有的病毒智能检测算法有如下几种:⑴启发式代码扫描技术,⑵虚拟机查病毒技术,⑶计算机病毒的免疫技术。这几种算法都具有一定的智能性,可以发现一定数量的未知型病毒,但在这些算法中仍有不足之处,单一的检测方法不能检测出所有未知的新病毒。因此本文将提出了一种新的智能性病毒检测算法,该算法能够对现有智能性算法起到一定的补充作用。

由于病毒技术在不断地更新之中,因此新旧病毒共存。尽管在当今不断出现新病毒,但由于在各种程序中,每种程序都有各自固有的属性,但同时这些程序的某些方面都有共性,因此不论是新病毒还是旧病毒,从病毒属性的角度来分析可以发现不同病毒的属性存在的差异是微小的。新病毒继承了旧病毒的所有属性,只要是病毒那么它们都具有病毒的所有属性。为了在现有算法上提高算法的智能性和提高杀毒算法的准确率,使现有的智能型病毒检测技术更加智能化因此本文从程序属性的角度来判断该程序是否是病毒。从未知程序属性的角度出发,提出一种具有一定智能性的病毒检测方法,该方法能够提取一个未知程序的属性,之后将未知程序属性与病毒的重要属性——传染属性进行比较,通过属性之间的相互比较来判断该未知程序是不是病毒。由于程序属性之间的比较可以由机器自动完成,无需人工干预,因此本文所提出的检测算法具有一定智能性。

2.病毒简介

(1)何谓病毒

病毒的定义如下:计算机病毒是一段附着在其它程序上的可以自我繁殖的程序代码,复制后生成的新病毒同样具有感染期他程序的功能[2]。因此,根据病毒的定义可以认为计算机病毒是一种破坏计算机正常程序的恶意程序。

(2)毒的属性

计算机病毒的传染模块有两个重要特性:

①寄生性:病毒程序寄生于宿主程序中,宿主程序执行时病毒程序首先被执行,即具有寄生性[2]。

②传染性:病毒程序能够自我复制到其他宿主程序中,即具有传染性。且在被感染的程序运行时,病毒程序能够进一步感染其他目标程序,从而使病毒得到传播。能够进行自我复制是病毒最为本质的特性[2]。

计算机病毒的一个重要特性就是具有传染性。一个程序是否具有传染性是判别该程序是否为计算机病毒的重要条件[6]。如果某种程序具有传染性,那么该程序就是病毒。如果该程序不具备传染的属性,那么该程序就是非病毒程序[1] 。不论是病毒程序還是非病毒程序都具有自身的属性。因此本文从病毒属性的角度来设计一个病毒检测算法,该病毒检测算法以该病毒的传染特性作为智能检测未知程序的重要依据。该算法能够对一个未知程序的属性进行智能化检测,最终判断该未知程序是不是病毒。

3.病毒检测函数和算法

3.1 毒程序与非病毒程序的检测

程序属性判定函数:

3.2 程序属性简要

①程序的属性与属性值

对于一个实体,其属性需要用相应的属性值来描述[3]。在董氏系统中,属性跟属性值有着严格的对应。有什么类的属性就有什么类属性值。世界上不存在没有值的属性,也不存在不指向任何属性的属性值[4]。因此实体的属性决定实体的属性值,同时属性值能够反映实体的属性。

②程序的子属性

现有某个程序员编写的某个程序,该程序由若干个小程序组成。而这些小程序实现的功能是这个程序的子功能。而实现某种功能的程序具有自己的属性,那么子程序所具有的属性是整个程序的子属性。

3.3 程序属性判定

计算机病毒在结构上一般分为三个功能模块:感染机制、触发机制和有效载荷。这里定义的感染机制就包含了病毒自我复制部分[9]。病毒的传染模块主要完成病毒的自制 [10]。

计算机病毒传染模块负责传染,而病毒的复制和寄生是传染过程中的两个独立过程,因此复制和寄生是传染模块的两个子属性。

提取病毒传染模块中的两个模块:寄生程序和复制程序。计算寄生程序和复制程序的属性值:

①寄生程序的属性值用符号记为j;

②复制程序的属性值用符号记为t。

实现整个程序最基本功能的程序称为最小功能程序,本文中称为原子程序。在这个未知程序中有n个原子程序,n个原子程序具有的属性个数为:n1,n2,n3……nn;其属性值分别为n1',n2',n3'……nn'。

(1)未知属性程序的原子程序属性与病毒寄生程序属性进行比较

属性判定函数:

;令x=n

,,……

讨论:

①当原子程序属性值nn'都大于寄生程序属性值j,这时nn'值越小,则yn=f(x)的值越接近于1,因此这时yn=f(x)取最小值。

③减少杀毒软件对程序的误判,提高杀毒软件的完善性。

5.结束语

本文对程序属性进行判断是为了对未知程序的特性进行判断,并且使得检测病毒的算法具有智能性。如果未知程序是病毒,那么该程序就有病毒的传染性。如果未知程序不是病毒程序,那么该未知程序所有的属性值都将偏离病毒属性值。因此如果未知程序是病毒程序,那么从该程序中提取的属性,将该程序的所有属性值与病毒的重要属性……传染性的属性值进行相比较,从而判定未知程序是否是病毒。如果判定未知程序是病毒,则再通过比较该程序与已知病毒之间的属性来判定该病毒属于那一种病毒。尽管本文从病毒属性的角度提出一种病毒检测算法,但文本提出的方法有自身的不足之处,还十分希望有关安全研究人员提出修改意见。

参考文献

[1]郑晶,王春生.新一代病毒检测技术研究[J].网络安全技术与应用,2009,(9):23-25.

[2]秦志光,凤峤编著.建峰主审.计算机病毒原理及防范技术[M].科学出版社,2012.

[3]郭劍毅,李真,余正涛,张志坤.领域本体概念实例、属性和属性值的抽取及关系预测[J].南京大学学报(自然科学).2012(48):383-389.

[4]刘春卉.属性值与属性特征语义语法差异考擦[J].汉语学习.2008(3):43-47.

[5]刘俭,唐朝京,郑森强.一种计算机病毒的检方法[J].计算机工程,2003,30(6):127-129.

[6]王培昌.走进计算机病毒[M].人民邮电出版社,2010.

[7]朱俚治.病毒检测技术的研究与0.5级环[J].计算机技术与发展,2012,22(9):225-227.

[8]朱俚治.一种防病毒智能网络接口的方案设计[J].中国科技信息,2011,1:73-74.

[9]韩兰胜,刘铭,彭冰,付才.计算机病毒原理与防治技术[M].华中科技大学出版社,2010.

[10]卢勇,左志宏.计算机病毒的随机传染[J].计算机技术与发展,2007(17):172-175.

本文是北京航空航天大学软件开发环境国家重点实验室开放基金资助项目(SKLSDE-2013KF)。

作者简介:朱俚治(1980—),男,南京航空航天大学信息中心工程师,研究方向:计算机网络和信息安全。

猜你喜欢
属性病毒
病毒
感冒病毒大作战
病毒来袭
病毒,别跑
病毒,快滚开
感冒病毒
互联网时代的生成性教学属性分析与实践研究
对两种实体观的探析
用好文件“属性” 解决实际问题
Winsock控件的属性及应用方法