1.一种基于改进的聚类与自相似性的恶意程序检测方法,其特征在于,包括:
步骤1对恶意程序集合,使用改进后的NIKClustering聚类算法来提取出恶意程序中的U2R类型的恶意程序;
步骤2对利用缓冲区溢出漏洞的恶意程序进行分析,提取出相关特征共性;
步骤3使用自相似性方法,计算出上述两个步骤提出集合的自相关函数值;
步骤4提出RSS-IKClustering算法,对面向缓冲区溢出的恶意程序进行检测;
步骤5根据上述步骤进行实验测试,依据结果得到检测报告。
2.如权利要求1所述方法,其特征在于,所述步骤1具体包括:
在现有K-MEANS算法的基础上,主要从以下两方面进行改进,一个是无法确定聚类个数的初始值,另一个是优化初始聚类中心的选择,从这两个角度出发来改进K-MEANS算法;从确定聚类个数K值、优化初始聚类中心以及优化对象的归属三个方面提出了改进后的NIKClustering算法,借助该算法进行聚类分析,最终提取出恶意程序中的U2R类型的恶意程序。
3.如权利要求1所述方法,其特征在于,所述步骤2具体包括:
对利用缓冲区溢出漏洞的恶意程序进行分析,利用缓冲区溢出漏洞的恶意程序,一般都会设置在返回地址出指向一段攻击代码,在运行该攻击代码之后,实现对用户的攻击;通过对面向缓冲区溢出漏洞的恶意程序研究发现,利用缓冲区溢出漏洞的恶意程序会有三个步骤,首先是定位到缓冲区的覆盖位置,其次是编写攻击代码,最后就是跳转到相应的位置去执行攻击代码。
4.如权利要求1所述方法,其特征在于,所述步骤3具体包括:
在检测出的U2R类型的恶意程序基础上,进一步进行检测,通过使用下述的自相似性方法,与对利用了缓冲区溢出的恶意程序分析相结合,实现对网络流量中面向缓冲区溢出的恶意程序的检测;通过分析是否利用了缓冲区溢出的恶意程序的长相关性,将输出不同的Hurst值,来进行判断,进而来检测是否为利用了缓冲区溢出漏洞的恶意程序;而Hurst参数是对自相似性程度进行判断的唯一参数,通过在网络流量数据包中提出的恶意程序的特征集合和利用了缓冲区溢出漏洞的恶意程序分析的特征集合中使用自相似性,通过估算得到不同的Hurst参数值来实现对网络流量中面向缓冲区溢出的恶意程序的检测。
5.如权利要求1所述方法,其特征在于,所述RSS-IKClustering算法具体包括:借助RSS-IKClustering算法,对提取到的恶意程序集合,首先使用改进后的NIKClustering算法进行聚类分析,接着分析现有的面向缓冲区溢出的恶意程序集合,获取其共有的特征属性,通过借助自相似性方法,计算聚类分析后得到的U2R类型的恶意程序集合与上述特征集合之间的自相关函数的值,从而得到RSS-IKClustering检测算法,完成网络流量中对面向缓冲区溢出的恶意程序检测。
6.如权利要求5所述方法,其特征在于,改进后的NIKClustering算法进行聚类分析的具体过程为:(4.1)确定聚类个数K值
首先尝试确定聚类个数的K值,在改进的聚类算法中,通过引入分类阈值,在处理不同数据包集合时,动态更新聚类个数K值,在对恶意程序数据包集合进行聚类分析时,给定一个阈值Fv,其值为对象到初始聚类中心的最大距离,然后计算其余各个对象距离聚类中心的距离,当大于设定的阈值时,我们就动态新增一个聚类中心,并将该对象归属于该聚类中心,具体的计算方法为 其中,为上述K-MEANS算法中的欧式距离计算公式,其为样本点a1到an的n维的欧氏距离,取d(a,b)的最大值并开方作为Fv,该阈值也可以表示为某个簇的布局范围,如果某个对象距离聚类中心大于了给定的阈值,那么就需要给该数据选取新的聚类,从而更新聚类个数K值;
(4.2)优化初始聚类中心
在随机选取一些聚类中心之后,首先为了确保聚类结果的稳定性,便从优化初始簇之间的相似度出发,借助最远距离来优化初始聚类中心,具体的实现方式如下所示,选取任意两个数据对象ri和rj:步骤4.2.1:计算ri和rj的欧式距离值;
步骤4.2.2:将求出的值进行排序;
步骤4.2.3:将ri和rj的之间欧式距离的最大值作为初始聚类中心;
步骤4.2.4:接着把剩余的对象继续计算距离对应的聚类中心的距离;
步骤4.2.5:把当前对象归属于最近的聚类中心,然后继续步骤四;
步骤4.2.6:当聚类中心不变后,停止聚类的距离计算,否则,继续执行步骤四;
(4.3)优化对象的归属
在传统的K-MEANS算法中,在每一次迭代过程中,通常是计算某个对象距离聚类中心的欧式距离,符合要求就归属该簇,不符合要求就得重新计算,为了更加精准的分类,提出归属方法,构造了误差平方和准则函数:其中vij表示某个样本对象mj是否属于i类型,也就是归属度,当vij=1时,mj就是属于i类型,当vij为0时,mj就不是该i类型了,此时mj取值范围在0到1之间,t表示优化对象的加权指数,然后tvij就表示某一类型加权后的值,得到以自然指数e为底的值 在对p个对象进行求和后,在此基础上进一步对k个求和值进一步求和,St则是各个样本对象到聚类中心的加权距离平方和,mj表示某个样本对象,ni是聚类中心,该聚类过程就是在计算各个样本对象的误差平方和准则函数,当St最小时,将该样本对象归属于该聚类中心。
7.如权利要求1所述方法,其特征在于,所述步骤具体5包括:使用公共数据集CAIDA进行测试,与现有的检测方法进行比较,观察它们的误报率和准确率,最终得到对应的检测报告。