计算机病毒检测专业技术标准研究进展
计算机病毒检测技术研究进展 (基于多重朴素贝叶斯算法的未知病毒检测);当前的计算机病毒检测技术主要基于特征检测法,基本方法是提取已知病毒样本的特征,将其添加到病毒特征库中,在病毒检测时通过搜索病毒特征库查找是否存在相匹配的病毒特征来发现病毒。这种方法只能用于监测已知的病毒,而对新病毒的检测就无能为力了。;基于多重朴素贝叶斯分类算法的检测方法可以实现对计算机病毒的近似判别。采用多重朴素贝叶斯分类算法对提取的可疑文件行为特征进行分析,并利用病毒程序与正常程序的行为特征的差异性进行分类,从而达到检测未知病毒的目的。;贝叶斯推理提供推理的一种概率手段,这对于病毒的近似判定十分合适。其基石是贝叶斯公式:;分类器在给定描述实例的属性值下计算最可能的目标值Vmap:;朴素贝叶斯分类器基于一个简单的假定:在给定目标值时属性值之间相互条件独立,故有:;因为上述方法的计算开销很大,我们使用多个贝叶斯分类器,对样本的特征向量分成多个子集分别计算,然后用一个多重贝叶斯算法对多个朴素贝叶斯分类器获得的结果进行综合求值:;经过上述修正后,计算待测样本x类别VMNB的公式为:;病毒代码在计算机系统运行过程中非法获得控制权,其本质是复制和非授权的程序加载。病毒程序与一般程序的区别在于执行了一些特殊的动作来破坏系统。(病毒可以看成是一种程序)它需要调用操作系统提供的各种功能函数才能达到传播自身和破坏系统的目的。因此,通过监视程序所调用的API函数来实现对程序的行为监控是一种有效的方法。;所作的假设:1.计算机病毒程序运行时通过API函数与操作系统交互。2.染毒程序运行时,其传染模块均会运行,而破坏模块不一定会运行。3.可执行程序的系统调用序列在运行时可以被有效地监控。;这里我们主要检测程序调用的API函数,采用统计学中的均方差来体现不同API函数调用的“贡献程度”。
1.对所用训练库的样本进行系统调用统计,获得调用的API序列A={A1,A2,...,Ai},统计每个API在每一病毒程序Vj中出现的概率AijV及在每一正常程序Nj中出现的概率AijN。2.计算每个API函数在病毒程序中出现的概率均值: 计算每个API函数在正常程序中出现的概率均值:;3.计算每个API函数的总出现频率均值:
4.计算每个API函数的类间频率均方差:;计算机病毒检测是一个二值分类过程,即病毒与非病毒两类。对于样本空间中的每一个样本程序x,均可以从中提取出感兴趣的一组特征集F,定义C为分类集,即{正常,病毒},令C1表示正常,C2表示病毒,它是一个随机变量。我们的目标是:在获得给定样本程序文件中的特征集F后,判别出该样本是正常程序或病毒程序的概率,即计算出P(C|F):;因为特征向量F中又包含有分量F1,F2,...,Fn,所以上式可以写成:;上式方法的计算量很大,为改善性能,根据特征量的“危险度”不同,将所有的特征量分成n类,对每一类分别使用一个朴素贝叶斯分类器进行分类,最后用一个多重贝叶斯算法将n个分类器计算所得的待测样本所属类别的概率综合求值,作为样本程序分类的最终依据:;经过上述修正,计算待测样本x类别Cx的公式为:;与其他的数据挖掘算法一样,贝叶斯分类器也需产生规则集以预测新的实例类别。朴素贝叶斯发现的分类规则是基于统计方法得到的。当新的实例加入样本空间后,就可进入新一轮的学习,更新???类,如此往复。;(1)训练算法input : 训练样本集Output : 分类规则classification rulesProcedure : 1)对训练集合中全部样本的特征进行提取 2)统计各特征量出现的频率 3)return classification rules;(2)分类算法input : 一个要分类的查询实例xqOutput : 类别CProcedure : 1)提取出特征向量 2)计算: 3)return Cx,式中Cx∈{正常程序,病毒程序};(3)自学习算法input : 训练集L,测试集TOutput : 分类规则Procedure : while(T!=Φ){ for each xj∈T{call 分类算法,对xj分类,并将其加入到样本空间的相应集合call 训练算法,更新分类规则}return classification rules};