一种基于态势感知预测方法的网络异常检测方法与流程

文档序号:19149638发布日期:2019-11-15 23:56阅读:301来源:国知局
一种基于态势感知预测方法的网络异常检测方法与流程

本发明属于网络异常检测技术,尤其涉及一种基于态势感知预测方法的网络异常检测方法。



背景技术:

随着通信网络技术的不断更新和飞速发展,骨干通信网络作为连接多个区域的高速网络,其也在经历着不断的变化。全面准确地掌握和理解网络行为对网络管理和维护有着至关重要的作用,网络管理者通过收集尽可能多的网络传播数据,一方面骨干通信网络及其承载的业务向高速化、多样化、复杂化方向发展,骨干通信网络中流的行为对通信网络本身和用户网络的影响越来越大;另一方面人类社会生活的各种大事件也会影响骨干通信网络中流的行为特征。为了更好地控制和管理通信网络,构建可信的通信网络环境,必须实时准确地对通信网络中流的各种行为特征进行分析、提取,主动发现通信网络中与流行为相关的异常事件,提高通信系统对网络异常行为的应对能力。

然而,伴随着网络的蓬勃发展的是日益严峻的网络安全形势,由于internet网络是一个开放式的环境,加之其协议设计上存在的缺陷,成为不断增加的黑客们的攻击对象,不仅传统的病毒以更快的速度在更广的领域内传播开来,而且针对特定协议缺陷而设计出来的新的攻击手段也是层出不穷[1]。与此同时,随着网络承载流量的不断扩充,网络自身结构的日益复杂,网络设备可靠性运转面临的风险也在加大。我们将各种病毒、攻击及网络设备故障等影响网络正常运行的行为统称为网络异常事件。在日益严峻的安全形势下,如何确保网络,尤其是作为internet网络核心部分的骨干通信网络的正常运转,积极防御和抑制网络异常事件的不利影响,成为重要的研究课题。

分布式网络流量异常可能由恶意原因或非恶意原因引起,通常同时发生在网络中多条链路上,单链路上异常不易察觉,尤其在大规模高速网络中异常流十分隐蔽,难以检测,然而来自多条链路的异常汇聚总量惊人,导致网络性能迅速衰减,给网络及端用户造成严重后果。如何有效地检测出分布式网络流量异常成为网络安全管理迫切需要解决的问题。

网络分布式隐蔽异常是指在网络中的多条链路上由同种原因引起的网络流量异常,具有单条链路异常特征不明显、而多条链路的异常总量大等特点。在单条链路上异常流量相对于巨大的正常背景流量极为网络,因此传统的单条流量检测方法,即依靠判断流量是否在时间模式上发生明显改变,通常无法检测。



技术实现要素:

本发明要解决的技术问题是:提供一种基于态势感知预测方法的网络异常检测方法,以解决现有技术不能有效地检测出分布式网络流量异常等技术问题。

本发明的技术方案是:

一种基于态势感知预测方法的网络异常检测方法,其特征在于:

它包括:

步骤1、获取骨干网的数据进行了提取分析以得到所需的链路数据;

步骤2、用ruby实现网络流量属性信息熵计算;

步骤3、采用arma模型时间序列预测分析法作为熵值预测,通过预测值与实际值求差得到预测差序列以获得异常空间;

步骤4、得到异常空间后,通过对两条链路的异常空间时间序列进行相关性分析,得到疑似网络异常点的发生时间及位置;

步骤5、通过疑似异常发生时间点上的链路流量数据文件,根据不同的异常具有不同特征分布以此识别网络分布式隐蔽异常的种类。

步骤1所述链路数据为netflow采集的流量信息,包括源和目的ip、源和目的端口、数据包数量和字节数。

步骤2所述用ruby实现网络流量属性信息熵计算的方法为:

将网络流量属性信息当作离散信息源,把测量数据中的各个属性看作是一组随机事件,对信息熵进行分析,x={ni,i=1,…,n}表示在测量数据中属性i发生了ni次;那么,信息熵定义如下:

式中,表示某个属性发生的总次数。

步骤3所述采用arma模型时间序列预测分析法作为熵值预测,通过预测值与实际值求差得到预测差序列以获得异常空间的方法包括:

首先对所要预测的数据进行平稳性检验,平稳性检验包括参数检验法和非参数检验法,经过检验,若数据是平稳时间序列,则继续下一步分析,如果是非平稳序列,则进行差分处理,并且继续进行平稳性检验,直到满足平稳性条件为止;

然后计算时间序列的样本自相关系数和偏自相关系数,根据样本自相关系数和偏自相关系数的拖尾或截尾性质,进而确定采用的时间序列模型及阶数p,q;

设x1,x2,…,xn为网络熵值时间序列,为网络熵值时间序列的平均值,则样本自相关系数和偏自相关系数的计算公式如下:

计算出样本自相关系数和偏自相关系数后,确定时间序列的数学模型和阶数:如果拖尾,而为p阶截尾,则采用ar(p)模型;如果为q阶截尾,而拖尾,

则采用ma(q)模型;如果均拖尾,则采用arma(p,q)模型;

将模型确定好后,再利用参数估计的方法计算模型的各个参数,参数估计方法采用有矩估计、极大似然估计或最小二乘估计;计算出模型参数后,就得到了安全态势值时间序列预测模型的表达式;

利用所得到的预测模型表达式进行计算和预测;

最后根据预测值与实际值求差得到预测差序列以获得异常空间。

步骤4所述通过对两条链路的异常空间时间序列进行相关性分析的方法包括:

任意两条链路熵值异常空间的相关性,由相关系数来衡量,数学定义如下:设x和y为随机变量,x和y的协方差为:

cov(x,y)=e{[x-e(x)][y-e(y)]}(21)

其中e(x)为x的均值,e(y)为y的均值;则x与y间的相关系数为:

d(x)与d(y)分别为x和y的方差,相关系数反映了两个向量在不同时刻状态之间的统计关联程度,若ρxy=0,则x和y不相关;|ρxy|越接近1则x与y的关联程度越大,当p{y=ax+b}=1,即x与y线性相关的概率为1时,|ρxy|=1,即x与y完全相关;

引入两个滑动时窗,考虑邻近时间段内链路流异常空间的相关性,oi和oj分别为两条不同的链路流异常空间,以时刻点t为起始点,截取链路流熵值预测差时间序列oi中长度为w1的子段,作为一个向量;oj序列中截取的子段的起始位置点在(t-w2,t+w2)中滑动,同样截取长度为w1的子段为另一个向量;在oj中的截取向量的起始位置点每滑动一次,可得到一个相关系数corrcoef,取这2w2个相关系数中最大值作为oi和oj在时间点t上的相关系数:

tj为oj中的截取向量起始位置点的滑动范围;定义t时刻全局熵值相关系数为网络中两条链路流在该时刻点相关系数的均值:

m为i≠j时coff(i,j,t)的总个数;

每条链路流熵值异常空间序列rtt中都包含两种成分:预测误差et以及异常at,rtt=et+at,当链路流熵值不存在异常流量时,at=0;由于预测算法的结果与实际值之间总有差异,异常空间提取误差,即由预测算法产生的误差组成,任意两条链路流瞬时参数预测差值序列rt1t、rt2t,由于分别对两条链路流进行独立预测,故两条链路流的预测误差e1t与e2t相互独立,不同链路流瞬时参数间的预测误差与异常流量之间,如e1t与a2t,e2t与a1t也相互独立,因此有cov(rt1t,rt2t)=cov(e1t+a1t,e2t+a2t)=cov(a1t,a2t),假设完全不存在预测误差的情况下,即e1t=0,e2t=0,两条链路流预测差之间的相关系数可以写为:

存在预测误差时,相关系数:

其中δ=d(e1)d(e2)+d(e1)d(a2)+d(e2)d(a1)为非负实数。

步骤5所述通过疑似异常发生时间点上的链路流量数据文件,根据不同的异常具有不同特征分布以此识别网络分布式隐蔽异常的种类的方法为:通过分析各个疑似异常时间点所在的链路流,然后根据不同异常的发生会引起不同特征属性的变化这个特点,以识别所检测到的疑似网络分布式隐蔽异常;具体包括:

第一步、先统计所有目的ip出现过的次数;

第二步、统计目的ip出现次数大于总流量0.05%的目的ip;

第三步、将第二步得到的目的ip放入扩展时间窗内,求出扩展时间窗内得到的目的ip的流数量、包数量以及字节数量的绝对均值;

第四步、在所有目的ip中寻找是否有在整个扩展时间窗内,选择时间点的流数量突然变化的疑似异常目的ip段。

本发明有益效果:

本发明针对网络中的网络分布式隐蔽异常流量,设计了一种通过对相邻两条链路之间进行相关性分析来检测网络分布式隐蔽异常流量的方法,首先对所有链路熵值流量进行安全态势预测,通过预测得到预测熵值时间序列,将预测熵值时间序列与实际熵值时间序列进行求差,得到我们所需要的异常空间。通过对相邻两条链路之间进行相关性分析,检测出网络分布式隐蔽异常流量发生的时间点。然后通过对发生的时间点及其扩展时间窗内的流数量以及包数量进行统计,以识别是否发生了网络分布式隐蔽异常;解决了现有技术不能有效地检测出分布式网络流量异常等技术问题。

附图说明

图1为具体实施方式中两条链路异常空间相关系数计算示意图。

具体实施方式

一种基于态势感知预测方法的网络异常检测方法,其特征在于:它包括:

步骤1、获取骨干网的数据进行了提取分析以得到所需的链路数据;

步骤2、用ruby实现网络流量属性信息熵计算;

步骤3、采用arma模型时间序列预测分析法作为熵值预测,通过预测值与实际值求差得到预测差序列以获得异常空间;

步骤4、得到异常空间后,通过对两条链路的异常空间时间序列进行相关性分析,得到疑似网络异常点的发生时间及位置;

步骤5、通过疑似异常发生时间点上的链路流量数据文件,根据不同的异常具有不同特征分布以此识别网络分布式隐蔽异常的种类。

步骤1所述链路数据为netflow采集的流量信息,包括源和目的ip、源和目的端口、数据包数量和字节数。

步骤2所述用ruby实现网络流量属性信息熵计算的方法为:

将网络流量属性信息当作离散信息源,把测量数据中的各个属性看作是一组随机事件,对信息熵进行分析,x={ni,i=1,…,n}表示在测量数据中属性i发生了ni次;那么,信息熵定义如下:

式中,表示某个属性发生的总次数。

大规模网络流量异常则正好可以通过源/目的ip、源/目的端口、数据包数量,字节数等测量数据上的异常表征出来。与数据数量统计的方法相比,信息熵能够更有效地表现出同一属性上对应数据的集中和分散情况。尤其是在大规模网络流量中,数据越集中的地方熵值越小,数据越分散的地方熵值越大。在大规模网络流量中,信息熵比直接使用容量的测量数据更有利于异常流量的检测。

步骤3所述采用arma模型时间序列预测分析法作为熵值预测,通过预测值与实际值求差得到预测差序列以获得异常空间的方法包括:

首先对所要预测的数据进行平稳性检验,平稳性检验包括参数检验法和非参数检验法,经过检验,若数据是平稳时间序列,则继续下一步分析,如果是非平稳序列,则进行差分处理,并且继续进行平稳性检验,直到满足平稳性条件为止;

然后计算时间序列的样本自相关系数和偏自相关系数,根据样本自相关系数和偏自相关系数的拖尾或截尾性质,进而确定采用的时间序列模型及阶数p,q;

设x1,x2,…,xn为网络熵值时间序列,为网络熵值时间序列的平均值,则样本自相关系数和偏自相关系数的计算公式如下:

计算出样本自相关系数和偏自相关系数后,确定时间序列的数学模型和阶数:如果拖尾,而为p阶截尾,则采用ar(p)模型;如果为q阶截尾,而拖尾,则采用ma(q)模型;如果均拖尾,则采用arma(p,q)模型;

将模型确定好后,再利用参数估计的方法计算模型的各个参数,参数估计方法采用有矩估计、极大似然估计或最小二乘估计;计算出模型参数后,就得到了安全态势值时间序列预测模型的表达式;

利用所得到的预测模型表达式进行计算和预测;

最后根据预测值与实际值求差得到预测差序列以获得异常空间。

步骤4所述通过对两条链路的异常空间时间序列进行相关性分析的方法包括:

因为网络分布式隐蔽异常是指在网络中的多条链路上由同种原因引起的网络流量异常,具有单条链路异常特征不明显、而多条链路的异常总量大等特点。我们认为网络分布式隐蔽异常在时间角度上来看不一定具有相关性,但是从空间角度上来看,网络分布式隐蔽异常是具有一定相关性。那是因为网络分布式隐蔽异常是由同种原因引起的,因此在不同链路上,当有分布式隐蔽异常发生时候,他们所受到的影响是大致一样的,因此我们可以通过选择具有共同节点的相邻两条链路进行相关性分析以达到检测网络分布式隐蔽异常的目的。

任意两条链路熵值异常空间的相关性,由相关系数来衡量,数学定义如下:设x和y为随机变量,x和y的协方差为:

cov(x,y)=e{[x-e(x)][y-e(y)]}(21)

其中e(x)为x的均值,e(y)为y的均值;则x与y间的相关系数为:

d(x)与d(y)分别为x和y的方差,相关系数反映了两个向量在不同时刻状态之间的统计关联程度,若ρxy=0,则x和y不相关;|ρxy|越接近1则x与y的关联程度越大,当p{y=ax+b}=1,即x与y线性相关的概率为1时,|ρxy|=1,即x与y完全相关;

由于网络路径、时延等原因,分布式的异常流不可能在同一时刻产生,只考虑同样时间段内链路流异常空间的相关性可能导致结果不准确,因此引入两个滑动时窗,考虑邻近时间段内链路流异常空间的相关性,oi和oj分别为两条不同的链路流异常空间,以时刻点t为起始点,截取链路流熵值预测差时间序列oi中长度为w1的子段,作为一个向量;oj序列中截取的子段的起始位置点在(t-w2,t+w2)中滑动,同样截取长度为w1的子段为另一个向量;在oj中的截取向量的起始位置点每滑动一次,可得到一个相关系数corrcoef,取这2w2个相关系数中最大值作为oi和oj在时间点t上的相关系数:

tj为oj中的截取向量起始位置点的滑动范围;定义t时刻全局熵值相关系数为网络中两条链路流在该时刻点相关系数的均值:

m为i≠j时coff(i,j,t)的总个数;

每条链路流熵值异常空间序列rtt中都包含两种成分:预测误差et以及异常at,rtt=et+at,当链路流熵值不存在异常流量时,at=0;由于预测算法的结果与实际值之间总有差异,异常空间提取误差,即由预测算法产生的误差组成,任意两条链路流瞬时参数预测差值序列rt1t、rt2t,由于分别对两条链路流进行独立预测,故两条链路流的预测误差e1t与e2t相互独立,不同链路流瞬时参数间的预测误差与异常流量之间,如e1t与a2t,e2t与a1t也相互独立,因此有cov(rt1t,rt2t)=cov(e1t+a1t,e2t+a2t)=cov(a1t,a2t),假设完全不存在预测误差的情况下,即e1t=0,e2t=0,两条链路流预测差之间的相关系数可以写为:

存在预测误差时,相关系数:

其中δ=d(e1)d(e2)+d(e1)d(a2)+d(e2)d(a1)为非负实数。

因此存在预测误差的情况下,会使相关系数减小。但是在本文中,采用该方法计算了两条链路流瞬时参数间的相关性,因此所有的相关系数较无预测误差的情况下都会减小,这是一个总体效应,而相关系数间数值上的相对大小信息仍然得到保留。故在后期对相关系数进行门限判决的时候可选择一个统计判据门限,来尽量消除预测误差对整个检测过程的影响。

得到预测差序列后,我们对所有的预测差序列首先进行全局归一化:

(1)首先计算得出12条预测差序列总的平均值m1、最大值max以及最小值min。

(2)然后将所有大于平均值m1的数据data通过下面的算式划分到0~1的新的数据空间:

(3)然后将所有小于平均值m1的数据data通过下面的算式划分到-1~0的新的数据空间:

为了进一步确定在每个时间点上是否真实地发生网络分布式隐蔽异常,我们还需要对疑似异常进行识别以及分类。因此可以通过分析各个疑似异常时间点所在的链路流,然后根据不同异常的发生会引起不同特征属性的变化这个特点,以识别我们所检测到的疑似网络分布式隐蔽异常。

步骤5所述通过疑似异常发生时间点上的链路流量数据文件,根据不同的异常具有不同特征分布以此识别网络分布式隐蔽异常的种类的方法为:通过分析各个疑似异常时间点所在的链路流,然后根据不同异常的发生会引起不同特征属性的变化这个特点,以识别所检测到的疑似网络分布式隐蔽异常;具体包括:

第一步、先统计所有目的ip出现过的次数;

第二步、统计目的ip出现次数大于总流量0.05%的目的ip;

第三步、将第二步得到的目的ip放入扩展时间窗内,求出扩展时间窗内得到的目的ip的流数量、包数量以及字节数量的绝对均值;

第四步、在所有目的ip中寻找是否有在整个扩展时间窗内,选择时间点的流数量突然变化的疑似异常目的ip段;所述突然变化指流数量的大小突然增加到之前历史平均数量的5倍及以上。

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