基于可信度概率区间的多模型恶意代码检测方法与流程

文档序号:15616102发布日期:2018-10-09 21:25阅读:430来源:国知局

本发明属于计算机防病毒技术领域。



背景技术:

人工分析已经难以及时分析如此海量的新增恶意代码,因此机器学习技术已经广泛的应用到恶意代码分析与检测系统中。但是,在经济利益的驱动下,网络安全威胁的变异、进化速度越来越快,在数量增长的同时,超过70%的新恶意代码样本采用了躲避机器学习的自我保护技术,有的样本甚至使用了多种躲避技术。因此,恶意代码的数据分布规律和显著度水平在随时间不断的变化,导致基于机器学习的检测模型,相对于语音识别模型、人脸识别模型、文字识别模型等,存在严重的快速老化问题。



技术实现要素:

本发明目的是解决现有的基于静态阈值的僵尸网络检测模型面临的概念漂移的问题,提供一种基于统计学习的可信度概率区间的多模型恶意代码检测方法。该方法在根据已知样本进行训练后,对于待测僵尸网络的预测的每一个结果都是一个概率区间,这个概率区间表示待测僵尸网络属于某个已知僵尸网络家族的概率区间。

本发明在传统的机器学习模型基础上,引入了统计学习算法,给0和1的预测模式,引入可信度概率区间,能够感知底层恶意代码数据分布和显著度水平的量变过程,并通过时间窗,发现数据的概念漂移现象。

本发明的技术方案

1、本发明首先提供了一种底层打分分类方法,该方法包括如下步骤:

第1步、基本概念:

(1)网络流量(netflow):是同一网络通信时域的网络包的集合;

(2)网络痕迹(trace):是一组含有相同源ip、目的ip、目的端口和协议的多个网络流量(netflow);

(3)僵尸网络(botnet):指采用一种或多种传播手段,将被控制主机感染僵尸程序(bot),从而在控制者和被感染主机之间所形成的一个能够一对多控制的网络;

第2步、网络行为特征的提取

第2.1、确定网络行为的表示粒度,其中包括:数据包级粒度,每个数据包表示一个网络行为;netflow级粒度,一个网络连接过程的所有网络数据表示一个网络行为;应用级粒度,一个应用过程的所有数据包表示一个网络行为;

第2.2、提取网络行为的特征点f;根据不同的数据集,选择不同的网络行为特征点f;

第2.3、选择特征点,将网络行为抽象成特征向量v;在可选网络行为特征点中,选择n个特征点组成特征向量v(f1,f2,...fn),使用选择的网络行为特征点作为网络行为的抽象表示,将二进制的网络数据映射成特征点组成的特征向量;

第2.4、网络恶意行为集合的特征矩阵表示;网络恶意行为集合中包含了n个行为,每个行为都使用相同结构的特征向量vi表示,1≤i≤n,这n个特征向量组成网络恶意行为特征矩阵c;特征矩阵的每一列表示一个特征点、每一行表示一个网络恶意行为的特征向量;

第3步、计算打分函数的预测分数

第3.1、任何基于阈值的机器学习检测模型都能够作为打分函数,包括:

k邻近分类算法(knn)是一种有监督的分类算法,其未知样本的标签由它多数的邻近点决定。k是一个正整数,代表k个最近的邻居;根据距离测试样本最近的k个邻居中大多数邻居归属的类别,来预测样本属于的类别。样本为zi,所得结果为ai,输入为在样本zi和样本之间第j小的距离δij。其中

核密度估计算法(kde)是一种无参的方法,来估计随机可变的概率密度函数。设(x1,x2,...,xn)都是属于rd的独立且同分布的变量,所选特征的个数为d,所得结果为,h是核带宽,函数k是选定的高斯核函数,

第3.2、每一个未知的样本都能够根据打分函数得到一个得分。

2、基于可信度概率区间的多模型恶意代码检测方法,该方法以上述的knn、kde打分算法作为底层,选用统计学习算法,预测一个待测样本x的标签,包含如下步骤:

第一步、处理待测样本

第1.1、将待测样本分别赋予两个标签0和1,将(x,0)和(x,1)这两个样本当成已知量;

第1.2、得到样本序列(z1,...,zl,(x,0)),(z1,...,zl,(x,1));

第二步、使用以上所述的knn、kde算法作为打分函数

第2.1、将s0()作为(z1,...,zl,(x,0))的打分函数,将s1()作为(z1,...,zl,(x,1))的打分函数;

第2.2、得到((s0(x1),y1),...,(s0(xl),yl),(s0(x),0))和((s1(x1),y1),...,(s1(xl),yl),(s1(x),1))序列;

第三步、找到增函数g

第3.1、增函数g对结果序列{s(x1),...,s(xl)}的保序校准公式如下:

其中pi为xi的预测标签为1的可能性。

第3.2、使用pair-adjacentviolatorsalgorithm(pava)算法,找到使取得最大值的增函数g。

第四步、使用增函数g,预测x标签为1的概率区间

第4.1、使用g0作为((s0(x1),y1),...,(s0(xl),yl),(s0(x),0))的保序回归函数,g1作为((s1(x1),y1),...,(s1(xl),yl),(s1(x),1))的保序回归函数;

第4.2、样本x的标签为1的概率区间为(p0,p1),其中p0:=g0(s0(x)),p1:=g1(s1(x))。

第五步、根据用户事先输入的可接受最大出错概率pe与样本x的标签为1的概率区间(p0,p1)预测结果

第5.1、如果(1-p0)<pe,则预测结果为1,即样本的检测结果为恶意代码;如果p1<pe,则预测结果为0,即样本的检测结果为良性代码。

本发明的优点和积极效果:

本发明提出基于可信度概率区间的多模型恶意代码检测方法,该方法是开放的,任何基于固定阈值的机器学习检测模型都可以很容易的架构到我们的平台上,并得到统计学习算法给出预测结果的可信度概率区间,比传统的基于0或1的假阳率、假阴率的评估体系,能够提前发现模型的老化现象,更好的应对网络恶意行为的变异、演变。

附图说明

图1基于可信度概率区间的多模型恶意代码检测方法程图。

图2是knn算法的检测结果。

图3是kde算法的检测结果。

图4是在knn算法下每个僵尸网络种类使用保序回归的结果,每张图有两条保序回归曲线,分别代表x的标签为1和0两种情况;其中,a是irc数据的保序回归曲线,b是http数据的保序回归曲线,c是p2p数据的保序回归曲线。

图5是在kde算法下每个僵尸网络种类使用保序回归的结果,每张图有两条保序回归曲线,分别代表x的标签为1和0两种情况;其中,a是irc数据的保序回归曲线,b是http数据的保序回归曲线,c是p2p数据的保序回归曲线。

图6是knn的预测质量。

图7是kde的预测质量。

具体实施方式

本发明以检测僵尸网络为例进行具体说明,底层打分函数以knn和kde算法为例,任何使用阈值比较的机器学习算法都可以作为打分函数应用到该方法上。

1、网络恶意行为

本实施方式,使用包含真实网络通信流量的数据集,数据集中包含irc,http,p2p三类僵尸网络。

irc僵尸网络数据集(样例):

http僵尸网络数据集(样例):

p2p僵尸网络数据集(样例):

2、提取网络行为特征

本实施方式,提取10个与每个网络痕迹有关的特征。这些特征包括通信频率、通信持续时间、发送和接收的字节数、发送和接收的包数、协议类型和使用3个端口(systemports,userports,dynamicorprivateports)的占比,并将网络痕迹抽象成一个特征向量;

http特征向量:

irc特征向量:

p2p特征向量:

3、利用knn、kde算法作为打分函数计算结果

用一组观测结果训练模型后,输入一个测试样本x,利用knn和kde算法,计算它们的结果作为打分函数。

4、预测一个待测样本x的标签:

4.1、将待测样本分别赋予两个标签0和1,将(x,0)和(x,1)这两个样本当成已知量,得到样本序列(z1,...,zl,(x,0)),(z1,...,zl,(x,1));

4.2、使用打分分类方法s0()作为(z1,...,zl,(x,0))的打分函数,s1()作为(z1,...,zl,(x,1))的打分函数,给出待测样本的对于三种僵尸网络的得分,来显示新的待测样本与三种僵尸网络的相似度;

4.3、根据最好的分数(最小的)做出预测,并得到全部测试样本的混淆矩阵(见图2、3),可以看到,knn和kde方法都有很好的结果;

4.4、通过下层打分函数得出的每一个分数使用保序回归计算出统计上的概率区间,由此得到全部样本的质量矩阵。图4、5展示了每种僵尸网络使用保序回归的结果,每张图有两条保序回归曲线,分别代表x的标签为1和0两种情况。根据这两条曲线,每一个测试样本都能得到一个概率区间。

4.5、分析混淆矩阵和质量矩阵,以此识别概念漂移。从图6、7中可以看出knn和kde的预测质量,正确的阳性预测都有很好的平均概率区间。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1