《基于梯度直方图的病毒检测方法.pdf》由会员分享,可在线阅读,更多相关《基于梯度直方图的病毒检测方法.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102346830A43申请公布日20120208CN102346830ACN102346830A21申请号201110285716722申请日20110923G06F21/0020060171申请人重庆大学地址400045重庆市沙坪坝区沙正街174号72发明人唐朝伟严鸣蒋阳张雪臻时豪李超群杨磊74专利代理机构重庆市前沿专利事务所50211代理人郭云54发明名称基于梯度直方图的病毒检测方法57摘要本发明公开了一种基于梯度直方图的病毒检测方法,针对目前在病毒检测中日益增长的实时性与准确性的要求,在此提出一种利用病毒文件二进制表示形式的检测方法。相对于传统的病毒检测方法,该方法主。
2、要是从整体上对病毒文件进行操作,首先通过对病毒文件进行预处理,将病毒文件表示成适合处理的数值矩阵的形式,然后利用能够体现边缘特征的HOG描述符得到描述病毒文件的特征向量,最后通过对特征向量的分类进行检测,从而达到提高恶意代码检测效率的目的。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书5页附图4页CN102346850A1/1页21一种基于梯度直方图的病毒检测方法,其特征在于包括以下步骤使用HOG特征描述器提取目标病毒特征向量的步骤;对病毒进行SVM分类的步骤;识别病毒特征向量的步骤。2根据权利要求1所述的基于梯度直方图的病毒检测方法,其特征在于所述使用HO。
3、G特征描述器提取目标病毒特征向量的步骤包括以下步骤A1、对目标病毒进行预处理,将目标病毒的八位二进制码元作为一个组合来进行二进制到十进制的转换,将十进制的代码表示成一个数值矩阵的形式;A2、计算目标病毒的梯度模值;A3、提取目标病毒的特征向量;A4、对提取的特征向量进行降维处理。3根据权利要求1所述的基于梯度直方图的病毒检测方法,其特征在于所述对病毒进行SVM分类的步骤包括以下步骤B1、获取样本的步骤;B2、对获取的样本进行数据归一化;B3、对获取的样本进行分类计算。4根据权利要求3所述的基于梯度直方图的病毒检测方法,其特征在于所述样本由病毒文件的特征向量集合与正常文件的特征向量集合组成。5根。
4、据权利要求1所述的基于梯度直方图的病毒检测方法,其特征在于所述识别病毒特征向量的步骤包括以下步骤C1、把目标文件的特征向量与SVM分类的特征向量进行对比。权利要求书CN102346830ACN102346850A1/5页3基于梯度直方图的病毒检测方法技术领域0001本发明涉及一种病毒检测方法,尤其是涉及一种基于梯度直方图的病毒检测方法。背景技术0002INTERNET改变了人们生活方式和工作方式,改变了全球的经济结构、社会结构,对人类社会的各个方面产生了极为深远的影响。但是,在互联网高速发展的同时,网络安全问题也日益严重。0003随着互联网的普及,病毒的危害日益严重。不仅使企业和用户蒙受了巨大。
5、的经济损失,而且使国家安全面临严重的威胁。随着病毒攻击和破坏行为的日益普遍和多样,信息系统安全性面临严峻的挑战,病毒问题也成为影响社会经济发展和国家发展战略的重要因素。因此,剖析计算机病毒的基本原理及相应的防治技术,强化计算机系统的安全可靠性仍是计算机应用领域的重要课题。0004病毒检测作为安全防御体系中继防火墙、数据加密等传统安全保护措施后又一项重要的安全保障技术,在保障信息系统安全的工作中起着重要的作用。目前病毒检测技术在智能化和分布式两个方向取得了很大的进展。近年来,数据挖掘、人工免疫、信息检索、容错等技术也渗透融合到了病毒检测系统中,从而将病毒检测的发展推向了一个新的高度。随着互联网的。
6、发展,病毒检测系统面对着不断增加的挑战,如何提高检测效率和准确性也成了当务之急。发明内容0005本发明的目的是提供一种提高检测效率的病毒检测方法。0006为了实现上述目的,本发明提供了一种基于梯度直方图的病毒检测方法,包括以下步骤使用HOG(HISTOGRAMOFORIENTEDGRADIENTS,方向梯度直方图)特征描述器提取目标病毒特征向量的步骤;对病毒进行SVM分类的步骤;识别病毒特征向量的步骤。0007所述使用HOG特征描述器提取目标病毒特征向量的步骤包括以下步骤A1、对目标病毒进行预处理,将目标病毒的八位二进制码元作为一个组合来进行二进制到十进制的转换,将十进制的代码表示成一个数值矩。
7、阵的形式;A2、计算目标病毒的梯度模值;A3、提取目标病毒的特征向量;A4、对提取的特征向量进行降维处理。0008所述对病毒进行SVM分类的步骤包括以下步骤B1、获取样本的步骤,所述样本由病毒文件的特征向量集合与正常文件的特征向量集合组成;B2、对获取的样本进行数据归一化;说明书CN102346830ACN102346850A2/5页4B3、对获取的样本进行分类计算。0009所述识别病毒特征向量的步骤包括以下步骤C1、把目标病毒的特征向量与SVM分类的特征向量进行对比。0010综上所述,由于采用了上述技术方案,本发明的有益效果是通过对病毒文件进行预处理,将目标病毒文件表示成适合处理的数值矩阵的。
8、形式,然后利用HOG特征描述器得到目标病毒文件的特征向量,最后通过把目标病毒的特征向量与SVM分类的特征向量进行对比来检测病毒,从而达到提高恶意代码检测效率的目的。附图说明0011本发明将通过例子并参照附图的方式说明,其中图1是本发明的方法流程图;图2是矩形梯度直方图描述器;图3是含有22个单元的区域示意图;图4是方向梯度直方图示例;图5是支持向量示意图;图6是SVM分类器与KNN分类器性能比较图;图7是SVM分类器与KNN分类器的ROC曲线图。具体实施方式0012为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方。
9、式仅仅用以解释本发明,并不用于限定本发明。0013如图1所示,一种基于梯度直方图的病毒检测方法,包括以下步骤使用HOG特征描述器提取目标病毒特征向量的步骤;对病毒进行SVM分类的步骤;识别病毒特征向量的步骤。0014使用HOG特征描述器提取目标病毒特征向量的步骤包括以下步骤A1、对目标病毒进行预处理,将目标病毒的八位二进制码元作为一个组合来进行二进制到十进制的转换,将十进制的代码表示成一个数值矩阵的形式;A2、计算目标病毒的梯度模值;A3、提取目标病毒的特征向量;A4、对提取的特征向量进行降维处理。0015对病毒进行SVM分类的步骤包括以下步骤B1、获取样本的步骤,样本由病毒文件的特征向量集合。
10、与正常文件的特征向量集合组成;B2、对获取的样本进行数据归一化;B3、对获取的样本进行分类计算。0016识别病毒特征向量的步骤包括以下步骤C1、把目标文件的特征向量与SVM分类的特征向量进行对比。0017如图2至图4所示,在HOG特征描述器计算时,经过步骤A1得到扫描矩阵,把扫描说明书CN102346830ACN102346850A3/5页5矩阵的窗口分割成密集统一的网格点,包含若干个区域,区域的个数由矩阵决定,每个区域包含个数据点,以每个网格点为中心将区域划分成单元。其中每个区域BLOCK包括单元,而每个单元又包括数据点,每个单元也包括个方向角度,是参数,图3所示的是本发明中所使用的矩形梯度。
11、直方图中区域的示意图,本实施例中每个区域包含含有22单元,每个单元中含有88个数据点。由于产生网格点的平移间距大小与每个单元中所包含的数据点个数是相同的,故这些描述符区域通常都是重叠的,大多数数据点单元在计算的时候同时对所在的多个区域的HOG特征描述器均有贡献,因此需要对该区域内的HOG特征描述器标准化。0018在此以矩阵大小为12864,边缘区域大小为1616作为示例,介绍划分区域及单元密集统一网格中心点的计算方法,其中表示矩阵的大小,表示边缘区域的大小。将矩阵大小和边缘区域大小代入可得则垂直方向划分为6416/8L7个点,水平方向划分为12816/8L15个点,整个扫描矩阵的窗口划分成共1。
12、05个网格中心点,以这些网格点为中心,计算出单元的梯度直方图,再将每个单元的梯度直方图整合生成相应的局部区域梯度直方图。0019以函数表示病毒矩阵,其中分别表示行号和列号,并设算子函数为,有如下表达式,这里取1,0,1,以55矩阵为例,则上式可写为,由上式可知算子函数H可表示为如下形式,运算时将该算子放到矩阵上使其正中心正对数据点H0,0,然后网格中每个H值将与矩阵中相应数据点相乘。在计算矩阵梯度时可以采用一维模板,如33的SOBEL模板和22的DIAGONAL模板。在本发明中采用的模板是1,0,1,分别沿着X轴和Y轴卷积,然后计算梯度,求出每一个数据点梯度的模值和方向。在本发明中,对应的梯度。
13、模值和方向的表达式为,矩阵和核算子的大小是有限的,当矩阵的边缘点在与核算子进行运算时,将其周围补充相应的行数,补充行的值取0或者等于周边值,在本发明中采取补0的措施。0020计算出梯度之后,在形成最后的直方图之前,需要对区域中每个单元的梯度运用高斯窗口滤波,高斯滤波器是一类根据高斯函数的形状来提供权值的线性平滑滤波器,在一个单元里,高斯通过空间距离给出权值,自身的权值最大,离中心点越远,权值越小,以此说明书CN102346830ACN102346850A4/5页6为原则进行加权滤波。0021标准差为的一元高斯函数定义如下,代表数据点到所在区域网格中心的距离,矩阵梯度经过高斯滤波为数据点赋予权值。
14、后,在每个单元中用直方图统计数据点的梯度方向,梯度直方图的范围是0180,其中每隔20一个柱,总共9柱,则在每个区域中形成共4936维的特征向量,例如对每个块中的4个单元分别构建方向梯度直方图直方图的横轴代表方向梯度角,从0到平均分为9份,每份宽度为(带宽),纵轴代表梯度幅值统计值。0022对于一个单元中的数据点,按照自身的高斯权重对直方图进行投票按照某个数据点方向梯度角所属的带,给该带加上梯度幅值与权重之积作为统计值,例如某数据点的梯度角是,那么它属于到这一带,则将该带的统计值加上此数据点的梯度幅值。0023因为在对一个矩阵进行处理时,大部分的区域BLOCK会重叠,所以在经过上述操作可以得到。
15、区域BLOCK的梯度直方图的特征向量后,需要对描述区域直方图的特征向量做标准化处理,在本发明中采用L2HYS对区域梯度直方图向量进行标准化处理,计算方法如下,为没有进行标准化的区域HOG特征描述器向量,最后将待测矩阵中所有区域的梯度直方图HOG特征描述器合并在一起,生成描述待测矩阵的梯度直方图特征向量。0024在提取出病毒文件的HOG特征向量之后,对特征向量进行降维,从而实现较快的检测速度。在本发明中,使用PCA(PRINCIPALCOMPONENTANALYSIS,主成分分析)来降低特征向量的维度。0025假设要进行主成分分析的原有指标有个,记为,样本总数为,则样本矩阵可记为(,)。首先需计。
16、算出标准化后样本矩阵的相关系数矩阵(其中,),然后计算特征方程,得出非负特征值,并将其按由大到小的顺序排列。各个主成分的方差对应于对应的特征值,又称为主成分的方差贡献,前个主成分的方差贡献率之和为,即的累计贡献率。0026如图5所示,对病毒进行SVM分类时,需要先获取样本,在本发明中的样本是由病毒文件的特征向量集和与正常文件的特征向量集合构成,然后进行数据规格化,将特征向说明书CN102346830ACN102346850A5/5页7量的每个属性值按比例缩放到1,1或者0,1范围内,在本发明中将每个属性值按比例缩放到0,1范围内,SVM分类常用的核函数有线性核函数、多项式核函数、径向基核函数和。
17、SIGMOID核函数(其中,为核参数),在本发明中选择径向基核函数作为SVM分类器的核函数,K(XI,XJ)表示高维特征空间的内积值,通过内积值可以计算出支持向量,计算支持向量的公式为,其中是公式的最优解,当0时,为支持向量,支持向量之间的距离就是最大分类距离,在这个距离中间的平面作为分类超平面。0027本实施例数据集中样本总数为202个,其中正常程序105个,病毒程序97个,所有恶意代码来源于网站HTTP/VXNETLUXORG,正常代码是在WINDOWSXP系统的计算机上获得。分类算法采用SVM,选用LIBSVM软件包的MATLAB版本及相应的辅助函数,实验采用五重交叉验证。0028如图6。
18、、图7所示当采用95作为PCA的累计贡献率时,分别使用SVM和KNN作为分类器的检测效果,为了直观,将分类结果绘制成ROC图,曲线下面的面积越大代表分类器越稳定,实验结果表明,用SVM做分类器的检测效率优于KNN。0029本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。说明书CN102346830ACN102346850A1/4页8图1图2说明书附图CN102346830ACN102346850A2/4页9图3图4说明书附图CN102346830ACN102346850A3/4页10图5图6说明书附图CN102346830ACN102346850A4/4页11图7说明书附图CN102346830A。