一种基于经验模态分解的网络流量异常检测方法与流程

文档序号:12865859阅读:394来源:国知局

本发明涉及计算机网络领域,具体地说,是一种基于经验模态分解的网络流量异常检测方法。



背景技术:

网络技术的发展为我们的生活带来了日新月异的变化,随着互联网的强劲发展,各个国家的经济状况和人民的日常生活,对互联网的依赖性也越来越高。网络中携带的各种异常也越来越多,影响了网络的正常运行,给我们的生活带来不便,因此网络异常检测也越来越重要。

网络流量的异常检测过程大致包括:(1)数据采集:采用各种软硬件措施收集网络中的流量数据。目前主要的网络流量采集方法有:基于sniffer的方法,基于snmp的方法,基于rmon的方法和基于netflow的方法。(2)数据处理:将采集到的流量数据通过一定的手段进行预处理,提取出网络流量中异常的部分作为异常判断的输入数据。(3)异常判断:使用合理的算法对提取出的异常流量进行分析,并发现异常。最常见的判断异常的处理方法是,通过设置某些参数的阈值,来判断该网络流量中是否含有异常,如果根据相应的检测方法计算出来的结果超过了设置的阈值则认为有异常存在。

目前常用的检测方法大致分为两类:基于误用的异常检测(misuse-baseddetection)和基于异常的检测(anomaly-baseddetection)。基于误用的异常检测事先定义异常行为的特征,其余的行为则被认为是这正常行为;基于异常的检测则是通过对正常的网络行为进行建模,然后对当前的网络流量进行检测,任何违反模型的行为被认为是异常行为。

不论是哪一类的异常检测方法,都有其各自的优点,但是也有不足之处:

(1)异常种类无法预知。基于误用的检测是在了解网络流量中存在的各种异常的基础上进行建模,也就需要事先知道网络中存在的所有的异常种类。然而,随着计算机网络的不断发展,异常的种类也层出不穷,很难了解到全部的异常。

(2)数据集要求较高。在基于异常的检测方法中的监督和半监督的异常检测都需要正常流量的数据集进行建模,但是在实际应用中,网络流量则或多或少的存在一些异常。

(3)不论是基于误用的异常检测还是基于异常的检测方法,大都是在假设网络流量是平稳序列的基础上进行检测的,然而在实际应用中,网络流量则是非线性非平稳的时间序列。



技术实现要素:

本发明所要解决的技术问题是提供一种基于经验模态分解的网络流量异常检测方法,克服了假设网络流量为平稳序列的瓶颈。

本发明解决上述技术问题的技术方案如下:

一种基于经验模态分解的网络流量异常检测方法,包括如下步骤:

(1)对网络特征流量时间序列进行emd经验模态分解,得到多个imf分量;

(2)从每个imf分量中提取异常分量,并计算异常分量的周期;

(3)采用基于检测窗口的方差异常检测方法对提取的异常分量进行检测,计算检测窗口内的各方差,得到方差序列,并确定异常方差阈值;

(4)将阈值和各方差进行比较,根据比较结果判断网络流量是否异常。

本发明的有益效果是:(1)本发明在基于经验模态分解的基础上对特征网络流量进行分解,而经验模态分解是自适应的针对非线性非平稳时间序列处理的一种有效手段,克服了假设网络流量序列为平稳序列的瓶颈,更加适用于实际应用的网络流量中。

(2)本发明可直接对实际应用的网络流量数据进行直接建模,而不需要对只含有正常网络行为的数据集进行建模,降低了对数据集的要求。

(3)本发明是针对网络流量异常检测提出的一种解决方案,但是对多种异常检测的状况都适用,如机器故障检测等。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述步骤(1)之前还包括对输入的原始数据进行分析和处理,所述原始数据包括单列网络特征流量或多列网络特征流量,具体实现方法为:

对单列网络特征流量进行去噪、采样,得到网络特征流量时间序列;

对多列网络特征流量进行去噪、采样、标准化处理以及采用主成分分析,得到网络特征流量时间序列。

进一步,所述步骤(1)的对网络特征流量时间序列进行emd经验模态分解,得到多个imf分量,具体实现方法为:

(11)确定时间序列xi(t)局部极大值点及局部极小值点;

(12)利用三次样条曲线分别将局部极大值点及局部极小值点连起来,形成包络线;

(13)求出上下包络线的平均:

其中,s+(t)为上包络线,s-(t)为下包络线;

(14)检查h1(t)=xi(t)-m1(t)是否满足imf分量的条件,若满足,则转到下一步,否则将h1(t)代替xi(t)从步骤(11)开始迭代,直到满足imf条件或预先设置的停止条件,则求得分量imf1(t);

(15)得到第一个残留函数r1(t)=xi(t)-imf1(t),将r1(t)代替xi(t),从步骤(11)开始迭代,得到imfj(t)和rj(t);

(16)当rn(t)为单调函数或只存在一个极点时为止,原始信号表达为:

其中,rn(t)为残留函数,imfj(t)为经验模态分解得到的imf分量。

进一步,所述步骤(2)的异常分量的判定规则为:imf分量中瞬间出现幅度较大的抖动,则这种分量为异常分量。

进一步,所述步骤(3)的实现方法为:

(31)根据异常分量周期确定检测窗口和滑动步长的长度;

(32)检测窗口按照滑动步长对异常分量从开始点到末尾点计算各检测窗口内的各方差,得到方差序列;

(33)对方差序列进行分布统计,求出各方差的概率,得到所有方差的分布律;

(34)对统计得到的方差分布律进行曲线拟合,得到方差和概率之间的关系曲线:

(35)选择曲线曲率最大的点所对应的方差作为阈值。

进一步,所述步骤(33)的实现方法为:

方差序列中的各方差的概率计算公式为:

其中,vi为各方差,num(vi)为方差vi在某个区间上出现的次数,totalnum为方差的总个数,某个区间的大小计算公式为:

其中,nbins为量化区间的个数;δvar为量化区间的大小。

进一步,所述步骤(4)将阈值和各方差进行比较,具体公式为:

含有异常流量

其中,vi为各方差,vth为阈值。

附图说明

图1为本发明异常检测流程图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,本发明提供了一种基于经验模态分解的网络流量异常检测方法,对输入的原始数据进行分析和处理,所述原始数据包括单列网络特征流量或多列网络特征流量,单列特征网络流量的异常检测方案和多列特征网络流量的异常检测方案的区别在数据预处理部分,具体实现方法为:

对单列网络特征流量进行去噪、采样,得到网络特征流量时间序列x={x1,x2,…,xn};

对多列网络特征流量进行去噪、采样、标准化处理以及采用主成分分析,得到网络特征流量时间序列xi(t)={xit0,xit1,xit2,…,xitn}。

包括如下步骤:

1.数据预处理

(1-1)对网络特征流量时间序列xi采用经验模态分解(emd)的方法进行分解,得到多个本征模态函数imfi,通过各个imf分量得到该特征网络流量在不同时间尺度上的信息。其中imf分量满足:

(1)信号极值点的数量和零点数相等或相差1;

(2)由极大值定义的上包络和极小值定义的下包络的局部均值为0;

具体的emd分解过程是:

(11)对时间序列xi(t),确定局部极大值点及局部极小值点;

(12)利用三次样条曲线分别将局部极大值点及局部极小值点连起来,形成包络线;

(13)求出上下包络线的平均:

其中,s+(t)为上包络线,s-(t)为下包络线;

(14)检查h1(t)=xi(t)-m1(t)是否满足imf分量的条件,若满足,则转到下一步,否则将h1(t)代替xi(t)从步骤(11)开始迭代,直到满足imf条件或预先设置的停止条件,则求得分量imf1(t);

(15)得到第一个残留函数r1(t)=xi(t)-imf1(t),将r1(t)代替xi(t),从步骤(11)开始迭代,得到imfj(t)和rj(t);

(16)当rn(t)为单调函数或只存在一个极点时为止,原始信号表达为:

其中,rn(t)为残留函数,imfj(t)为经验模态分解得到的imf分量。

(1-2)得到异常分量和周期

imf分量从高频到低频依次从原始的时间序列中分解出来,而网络流量中的的异常流量行为和正常流量行为的区别在于异常行为的出现会给正常网络流量带来异常的抖动。异常的抖动具体表现为在正常流量行为波动的背景下突然出现了幅度较大的抖动,而含有这种现象的分量则称为是异常分量。通过观察步骤(1-1)得到的各imf分量,提取异常分量,假设通过分解得到的第4个分量,即imf4为异常分量,则选择imf4进一步分析并计算imf4的周期,得到t。

2.基于检测窗口的方差异常检测

(2-1)通过步骤(1-2)得到异常分量imf4的周期t,确定检测窗口和滑动步长,设置异常检测时检测窗口为t,且检测窗口的滑动步长也设置为t。

(2-2)针对选定的异常分量imf4计算检测窗口内的方差,按照滑动步长的大小将检测窗口进行滑动,计算下一个检测窗口内的方差,如当前时刻为t0,则计算[t0,t0+t)数据方差,得到方差v0;然后检测窗口滑动t,计算[t0+t,t0+2*t)的方差,得到方差v1;以此类推,直至移动到异常分量的末尾,计算出所有检测窗口的方差,得到方差序列v(x)。

(2-3)曲线拟合并确定方差阈值

(1)将通过步骤(2-2)计算得到的方差序列v(x)进行统计,求出方差的分布律,某一方差值vi出现的概率,计算公式为:

其中num(vi)为方差vi出现的次数,totalnum为方差的总个数。本发明中通过算则合适的统计区间,计算在某个区间上的方差出现的概率。实际上方差统计的过程是一个方差均匀量化的过程,所有的量化区间间隔全都相等,其中每个区间的大小计算公式为:

其中,nbins为量化区间的个数;δvar为量化区间的大小。

(2)对统计得到的方差分布律进行曲线拟合,从而得到方差和概率之间的关系,即曲线f。

(2-4)选择曲线f“转折点”曲率最大的点所对应的方差vth;

网络流量异常发生的概率较小,且波动较大,从而含有异常流量的窗口方差较大,正常的网络流量的值较小且只在一定的区间内进行波动,所以正常网络流量的方差会比较小且会集中在某一个区间,这就导致了拟合的曲线按方差从小到大的方向递减,且会在异常方差出现时出现急剧下降的情况,而之后随着方差增大慢慢趋于平缓。换句话说,正常流量的方差会有一个概率迅速降低的过程,在方差达到异常流量方差的区间时因为异常出现较少会趋于平缓。本发明根据拟合曲线的这一特点,在方差迅速递减和趋于平缓的“转折点”,求得曲率最大的点所对应的方差vth作为阈值。

3.对v(x)进行判断,当vi≥vth则该窗口含有异常,否则没有。

对整个方差序列v(x)和步骤(2-4)中得到的阈值vth比较,并按照以下公式进行异常判断

含有异常流量

当vi≥vth则认为该检测窗口中含有异常,否则该检测窗口中不含有异常。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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