CN109951420A - 一种基于熵和动态线性关系的多级流量异常检测方法 - Google Patents
一种基于熵和动态线性关系的多级流量异常检测方法 Download PDFInfo
- Publication number
- CN109951420A CN109951420A CN201711385042.1A CN201711385042A CN109951420A CN 109951420 A CN109951420 A CN 109951420A CN 201711385042 A CN201711385042 A CN 201711385042A CN 109951420 A CN109951420 A CN 109951420A
- Authority
- CN
- China
- Prior art keywords
- entropy
- time point
- alarm
- time
- linear relationship
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于熵和动态线性关系的多级流量异常检测方法;通过分析大量的数据发现属性间的线性关系,对熵值变化程度处于一级阈值和二级阈值之间的时间点进行动态线性关系的检测,降低了实时检测的时延,而分析熵值的变化方向可以识别异常的种类。
Description
技术领域
本发明涉及数据传输的技术领域,特别是涉及一种基于熵和动态线性关系的多级流量异常检测方法。
背景技术
目前,分析传输***中传输的流量,及时检测出***中存在的异常流量是保障***安全稳定运行的基础,对流量异常检测进行了大量的研究,现有技术为两种:一是通过历史数据训练并建立网络异常的行为模式,通过分析实时网络流量是否与异常行为模式相匹配来判定网络中是否发生了异常;二是从时间序列的角度出发,观察预先定义的网络流量异常指标的是否在时空域上超过了正常的范围来判定异常的是否发生。由于使用第一种建立的方法只能检测到现有的异常类型,当新异常类型出现时无法检测出,因此局限性较大。
由于网络中的数据量巨大,保证流量异常检测方法的实时性和准确性是研究的重点和难点,而传输***对实时性的要求比其他***更高,此外,准确的判定异常的种类也是异常检测方法的要求之一;基于第二种方法,在提高流量异常检测方法的实时性和准确性方面做了大量的研究,忽略了异常种类的判定。
发明内容
本发明为克服上述所述的不足,提供一种提高了异常检测方法的实时性和准确性的基于熵和动态线性关系的多级流量异常检测方法。
为解决上述技术问题,本发明采用的技术方案是:
一种基于熵和动态线性关系的多级流量异常检测方法,包括以下步骤:
S1.设定时间片大小T和时间窗口大小N;计算时间窗口和当前时间点t的流量集合熵值四元组Ht;
S2.对熵值序列进行一阶差分计算,差分处理序列定义为H′t;
S3.基于步骤S2,设定一级阈值和二级阈值;
S4.判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过一级阈值;若是,则进行步骤S8,否则进行步骤S5;
S5.判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过二级阈值;若是,则进行步骤S6,否则进行步骤S7;
S6.动态建立四元组之间的线性关系,并判断时间点t时熵值是否偏离线性关系,若是,则进行步骤S8,否则进行步骤S7;
S7.检测当前时间无异常,进行步骤S9;
S8.根据熵值四元组中的分量变化方向识别出异常类型;
S9.滑动时间窗口,进行下一个时间点检测。
在上述方案中,首先设定时间片大小T和时间窗口大小N;计算时间窗口和当前时间点t的流量集合熵值四元组;对熵值序列进行一阶差分计算;如何,设定一级阈值和二级阈值;判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过一级阈值;再进一步判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过二级阈值;接下来,动态建立四元组之间的线性关系,并判断时间点t时熵值是否偏离线性关系;再检测当前时间无异常,并根据熵值四元组中的分量变化方向识别出异常类型;通过滑动时间窗口,进行下一个时间点检测;通过设定两级动态阈值来提高检测率,降低误检率,并通过分析大量的数据发现属性间的线性关系,对熵值变化程度处于一级阈值和二级阈值之间的时间点进行动态线性关系的检测,降低了实时检测的时延,而分析熵值的变化方向可以识别异常的种类。
优选的,所述的熵值四元组为IP报头中的四种属性的熵值,包括源地址、源端口、目的地址、目的端口的熵值;
所述的步骤S1详细如下:
设定时间片大小T和时间窗口大小N,在时间点t上,聚合流St上的熵值四元组定义为:
Ht=(Hsa,t,Hsp,t,Hda,t,Hdp,t);
其中,Hsa,t、Hsp,t、Hda,t、Hdp,t分别表示源地址、源端口、目的地址、目的端口的熵值。
优选的,所述的源地址的熵值定义为:
其中,nsa为聚合流中流量的总数,Pisa,t为相应源地址出现的概率;
所述的源端口的熵值定义为:
其中,nsp为聚合流中流量的总数,Pisp,t为相应源地址出现的概率;
所述的目的地址的熵值定义为:
其中,nda为聚合流中流量的总数,Pida,t为相应源地址出现的概率;
所述的目的端口的熵值定义为:
其中,ndp为聚合流中流量的总数,Pidp,t为相应源地址出现的概率。
优选的,所述的步骤S2具体如下:
对熵值序列进行一阶差分处理,处理后的序列表示为H′t,其表达式如下:
H′t=Ht-Ht-1;
其中,Ht表示时间点t的流量集合熵值四元组,Ht-1表示时间点t-1的流量集合熵值四元组。
优选的,步骤S3具体如下:
计算时间窗口内差分熵值序列的平均值和标准差,作为设定阈值的标准;其中,差分熵值序列的平均值和标准差分别表示为:
一阶差分熵值四元组的平均值表示为:
一阶差分熵值四元组的方差表示为:
其中,设定时间点t上的两级动态阈值λt=(λt1,λt2),其中,一级阈值设定为三倍标准差,二级阈值设定为两倍标准差;具体分别表示为:λt1=±3δ′t,λt2=±2δ′t。
优选的,所述的时间窗口内的N个差分熵值四元组的差值表示为:
ΔHt′=Ht′-Et′=(Hsa,t′,Hsp,t′,Hda,t′,Hdp,t′)-(Esa,t′,Esp,t′,Eda,t′,Hdp,t′)=(ΔHsa,t′,ΔHsp,t′,ΔHda,t′,ΔHdp,t′)
判断熵值四元组的差值与一级阈值与二级阈值的关系,进行相应的步骤操作,其中,基于熵值四元组的差值定义报警触发四元组定义:
alarm(Ht)=(alarm(Hsa,t),alarm(Hsp,t),alarm(Hda,t),alarm(Hdp,t));
其中,alarm(Hsa,t)表示源地址熵值报警触发函数,alarm(Hsp,t)表示源端口熵值报警触发函数,alarm(Hda,t)表示目的地址熵值报警触发函数,alarm(Hdp,t)表示目的端口熵值报警触发函数;
其中alarm(Hsa,t)的定义如下:
上式中δsa,t′表示δ′t中源地址分量,alarm(Hsa,t)=±2,说明源地址熵值变化程度超出了λt1的范围;alarm(Hsa,t)=±1,说明源地址熵值变化程度介于λt1与λt2之间;alarm(Hsa,t)=0,说明时间点t的源地址熵值没有出现明显的波动,不同的异常类型,会引起不同的源地址熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负;
其中alarm(Hsp,t)的定义如下:
上式中δsp,t′表示δ′t中源端口分量,alarm(Hsp,t)=±2,说明源端口熵值变化程度超出了λt1的范围;alarm(Hsp,t)=±1,说明源端口熵值变化程度介于λt1与λt2之间;alarm(Hsp,t)=0,说明时间点t的源端口熵值没有出现明显的波动,不同的异常类型,会引起不同的源端口熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负;
其中alarm(Hda,t)的定义如下:
上式中δda,t′表示δ′t中目的地址分量,alarm(Hda,t)=±2,说明目的地址熵值变化程度超出了λt1的范围;alarm(Hda,t)=±1,说明目的地址熵值变化程度介于λt1与λt2之间;alarm(Hda,t)=0,说明时间点t的目的地址熵值没有出现明显的波动,不同的异常类型,会引起不同的目的地址熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负;
其中alarm(Hdp,t)的定义如下:
上式中δdp,t′表示δ′t中目的端口分量,alarm(Hdp,t)=±2,说明目的端口熵值变化程度超出了λt1的范围;alarm(Hdp,t)=±1,说明目的端口熵值变化程度介于λt1与λt2之间;alarm(Hdp,t)=0,说明时间点t的目的端口熵值没有出现明显的波动,不同的异常类型,会引起不同的目的端口熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负。
优选的,所述的线性关系具体如下:
分析正常情况下大量的历史流量,源地址的熵值和目的地址的熵值具有正线性关系,源端口的熵值和目的端口的熵值之间具有负线性关系,且随时时间的变化,线性关系会发生变化;为了保证线性关系中参数αt和βt的实时性,提高检测率,本发明采用动态的方式设定αt和βt,时间窗口设定为N,当前检测的时间点为t,假设t之前的N个时间点内不存在异常流量,对该N个时间点的熵值建立线性关系,具体如下:
计算源地址和目的地址熵值的线性关系,设时间点t建立的线性关系定义为:
Hsa,t=αt·Hda,t+βt+εt
其中
计算参数αt和βt的值,根据建立的线性关系求出的熵值即为线性预测值当观测值与预测值之差的平方和为最小值时,得到的最佳的线性模型;设观测值与预测值之差的平方和记为Q:
其中,Hsa,t′表示根据线性关系得出的在时间窗口内的源地址熵值;t-1≥t′≥t-N,因Q为非负值,所以Q的极小值即为最小值,分别对αt和βt求一阶偏导可得:
估计出αt和βt后,计算出方差大小:
设定判断偏离线性关系的阈值为θt=±3δt;当时间点t的熵值实际值与根据线性关系得出的预测值之间的差异超过所设定的阈值范围时,判断时间点t存在异常流量。
优选的,所述的步骤S9具体如下:
时间窗口向前滑动,其中,时间窗口的滑动分为两种情况:
1、当前时间点t不存在异常
当检测时间点t+1时,若时间点t不存在异常,那么时间窗口向前滑动一个时间点,滑动后的时间窗口内的N个一阶差分熵值四元组作为检测时间点t+1是否存在异常的基准。
2、当前时间点t存在异常
若当前检测到时间点t存在异常,为了避免时间窗口内的正常模式被异常点破坏,此时时间窗口不再向前滑动,依旧使用时间点t-N至时间点t-1的一阶差分熵值四元组为时间点t+1设定阈值;若时间点t+1不存在异常,时间窗口的右边界向右滑动两个时间点,左边界向左滑动一个时间点,窗口内不包含时间点t的值;若时间点t+1存在异常,时间窗口仍然不向前滑动。
与现有技术相比,本发明的有益效果是:本方案通过分析大量的数据发现属性间的线性关系,对熵值变化程度处于一级阈值和二级阈值之间的时间点进行动态线性关系的检测,降低了实时检测的时延,而分析熵值的变化方向可以识别异常的种类。
附图说明
图1为一种基于熵和动态线性关系的多级流量异常检测方法的流程示意图。
图2为时间窗口滑动方式的示意图。
图3为熵值四元组的熵值序列的示意图。
图4为注入攻击流量后熵值四元组的熵值序列的示意图。
图5为注入攻击流量后熵值四元组线性关系的示意图。
图6为检测率和误检率的示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1:
一种基于熵和动态线性关系的多级流量异常检测方法,其流程示意图如图1所示:包括以下步骤:
S1.设定时间片大小T和时间窗口大小N;计算时间窗口和当前时间点t的流量集合熵值四元组Ht;
S2.对熵值序列进行一阶差分计算,差分处理序列定义为Ht′;
S3.基于步骤S2,设定一级阈值和二级阈值;
S4.判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过一级阈值;若是,则进行步骤S8,否则进行步骤S5;
S5.判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过二级阈值;若是,则进行步骤S6,否则进行步骤S7;
S6.动态建立四元组之间的线性关系,并判断时间点t时熵值是否偏离线性关系,若是,则进行步骤S8,否则进行步骤S7;
S7.检测当前时间无异常,进行步骤S9;
S8.根据熵值四元组中的分量变化方向识别出异常类型;
S9.滑动时间窗口,进行下一个时间点检测。
在本实施例中,首先设定时间片大小T和时间窗口大小N;计算时间窗口和当前时间点t的流量集合熵值四元组;对熵值序列进行一阶差分计算;如何,设定一级阈值和二级阈值;判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过一级阈值;再进一步判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过二级阈值;接下来,动态建立四元组之间的线性关系,并判断时间点t时熵值是否偏离线性关系;再检测当前时间无异常,并根据熵值四元组中的分量变化方向识别出异常类型;通过滑动时间窗口,进行下一个时间点检测;通过设定两级动态阈值来提高检测率,降低误检率,并通过分析大量的数据发现属性间的线性关系,对熵值变化程度处于一级阈值和二级阈值之间的时间点进行动态线性关系的检测,降低了实时检测的时延,而分析熵值的变化方向可以识别异常的种类。
在本实施例中,所述的熵值四元组为IP报头中的四种属性的熵值,包括源地址、源端口、目的地址、目的端口的熵值;
所述的步骤S1详细如下:
设定时间片大小T和时间窗口大小N,在时间点t上,聚合流St上的熵值四元组定义为:
Ht=(Hsa,t,Hsp,t,Hda,t,Hdp,t);
其中,Hsa,t、Hsp,t、Hda,t、Hdp,t分别表示源地址、源端口、目的地址、目的端口的熵值。
在本实施例中,源地址的熵值定义为:
其中,nsa为聚合流中流量的总数,Pisa,t为相应源地址出现的概率;
所述的源端口的熵值定义为:
其中,nsp为聚合流中流量的总数,Pisp,t为相应源地址出现的概率;
所述的目的地址的熵值定义为:
其中,nda为聚合流中流量的总数,Pida,t为相应源地址出现的概率;
所述的目的端口的熵值定义为:
其中,ndp为聚合流中流量的总数,Pidp,t为相应源地址出现的概率。
在本实施例中,步骤S2具体如下:
对熵值序列进行一阶差分处理,处理后的序列表示为H′t,其表达式如下:
Ht′=Ht-Ht-1;
其中,Ht表示时间点t的流量集合熵值四元组,Ht-1表示时间点t-1的流量集合熵值四元组。
在本实施例中,步骤S3具体如下:
计算时间窗口内差分熵值序列的平均值和标准差,作为设定阈值的标准;其中,差分熵值序列的平均值和标准差分别表示为:
一阶差分熵值四元组的平均值表示为:
一阶差分熵值四元组的方差表示为:
其中,设定时间点t上的两级动态阈值λt=(λt1,λt2),其中,一级阈值设定为三倍标准差,二级阈值设定为两倍标准差;具体分别表示为:λt1=±3δ′t,λt2=±2δ′t。
在本实施例中,时间窗口内的N个差分熵值四元组的差值表示为:
ΔHt′=Ht′-Et′=(Hsa,t′,Hsp,t′,Hda,t′,Hdp,t′)-(Esa,t′,Esp,t′,Eda,t′,Hdp,t′)=(ΔHsa,t′,ΔHsp,t′,ΔHda,t′,ΔHdp,t′)
判断熵值四元组的差值与一级阈值与二级阈值的关系,进行相应的步骤操作,其中,基于熵值四元组的差值定义报警触发四元组定义:
alarm(Ht)=(alarm(Hsa,t),alarm(Hsp,t),alarm(Hda,t),alarm(Hdp,t));
其中,alarm(Hsa,t)表示源地址熵值报警触发函数,alarm(Hsp,t)表示源端口熵值报警触发函数,alarm(Hda,t)表示目的地址熵值报警触发函数,alarm(Hdp,t)表示目的端口熵值报警触发函数;
其中alarm(Hsa,t)的定义如下:
上式中δsa,t′表示δ′t中源地址分量,alarm(Hsa,t)=±2,说明源地址熵值变化程度超出了λt1的范围;alarm(Hsa,t)=±1,说明源地址熵值变化程度介于λt1与λt2之间;alarm(Hsa,t)=0,说明时间点t的源地址熵值没有出现明显的波动,不同的异常类型,会引起不同的源地址熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负;
其中alarm(Hsp,t)的定义如下:
上式中δsp,t′表示δ′t中源端口分量,alarm(Hsp,t)=±2,说明源端口熵值变化程度超出了λt1的范围;alarm(Hsp,t)=±1,说明源端口熵值变化程度介于λt1与λt2之间;alarm(Hsp,t)=0,说明时间点t的源端口熵值没有出现明显的波动,不同的异常类型,会引起不同的源端口熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负;
其中alarm(Hda,t)的定义如下:
上式中δda,t′表示δ′t中目的地址分量,alarm(Hda,t)=±2,说明目的地址熵值变化程度超出了λt1的范围;alarm(Hda,t)=±1,说明目的地址熵值变化程度介于λt1与λt2之间;alarm(Hda,t)=0,说明时间点t的目的地址熵值没有出现明显的波动,不同的异常类型,会引起不同的目的地址熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负;
其中alarm(Hdp,t)的定义如下:
上式中δdp,t′表示δ′t中目的端口分量,alarm(Hdp,t)=±2,说明目的端口熵值变化程度超出了λt1的范围;alarm(Hdp,t)=±1,说明目的端口熵值变化程度介于λt1与λt2之间;alarm(Hdp,t)=0,说明时间点t的目的端口熵值没有出现明显的波动,不同的异常类型,会引起不同的目的端口熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负。
在本实施例中,线性关系具体如下:
分析正常情况下大量的历史流量,源地址的熵值和目的地址的熵值具有正线性关系,源端口的熵值和目的端口的熵值之间具有负线性关系,且随时时间的变化,线性关系会发生变化;为了保证线性关系中参数αt和βt的实时性,提高检测率,本发明采用动态的方式设定αt和βt,时间窗口设定为N,当前检测的时间点为t,假设t之前的N个时间点内不存在异常流量,对该N个时间点的熵值建立线性关系,具体如下:
计算源地址和目的地址熵值的线性关系,设时间点t建立的线性关系定义为:
Hsa,t=αt·Hda,t+βt+εt
其中
计算参数αt和βt的值,根据建立的线性关系求出的熵值即为线性预测值当观测值与预测值之差的平方和为最小值时,得到的最佳的线性模型;设观测值与预测值之差的平方和记为Q:
其中,Hsa,t′表示根据线性关系得出的在时间窗口内的源地址熵值;t-1≥t′≥t-N,因Q为非负值,所以Q的极小值即为最小值,分别对αt和βt求一阶偏导可得:
估计出αt和βt后,计算出方差大小:
设定判断偏离线性关系的阈值为θt=±3δt;当时间点t的熵值实际值与根据线性关系得出的预测值之间的差异超过所设定的阈值范围时,判断时间点t存在异常流量。
在本实施例中,步骤S9具体如下:
时间窗口向前滑动,其中,时间窗口的滑动分为两种情况:
1、当前时间点t不存在异常
当检测时间点t+1时,若时间点t不存在异常,那么时间窗口向前滑动一个时间点,滑动后的时间窗口内的N个一阶差分熵值四元组作为检测时间点t+1是否存在异常的基准。
2、当前时间点t存在异常
若当前检测到时间点t存在异常,为了避免时间窗口内的正常模式被异常点破坏,此时时间窗口不再向前滑动,依旧使用时间点t-N至时间点t-1的一阶差分熵值四元组为时间点t+1设定阈值;若时间点t+1不存在异常,时间窗口的右边界向右滑动两个时间点,左边界向左滑动一个时间点,窗口内不包含时间点t的值;若时间点t+1存在异常,时间窗口仍然不向前滑动。
实施例2:
在本实施例中,采集271万条数据作为背景流量,在此背景流量中注入模拟生成的3万条异常流量数据作为实验对象,模拟生成的3万条流量中包含了DDoS攻击、flashcrowd、端口扫描、蠕虫病毒和网络扫描5种异常类型。
实验中都将T设定为1min,当时间窗口N设定为不同数值时,观察方法检测率和误检率的变化。在正常情况下熵值四元组的熵值序列如图3所示:其中图3(a)、图3(b)、图3(c)、图3(d)分别表示正常情况下源地址、源端口、目的地址、目的端口熵值的时间序列值。图中横坐标表示时间点,纵坐标表示熵值大小,无异常流量时,前后时间点的熵值序列虽有波动,但无突变点,但当异常发生时,熵值序列上会产生突变点,如图4所示。
其中,图4是注入攻击流量后的熵值时间序列图,其中图4(a)、图4(b)、图4(c)、图4(d)分别表示注入攻击流量情况下源地址、源端口、目的地址、目的端口熵值的时间序列值。从图4中得出部分异常点较为明显,可以使用较明显的阈值直接检测出,时间点328发生了端口扫描异常,熵值序列有明显的突变。部分异常点并不明显,单一属性熵值的变化与正常时间点相差不太,因此无法设定一个合理的阈值检测这部分异常点,需要通过检测多个属性熵值之间的线性关系来确定是否存在异常。
在本实施例中,注入攻击流量后熵值四元组线性关系的示意图如图5所示:其中,图5(a)表示注入攻击流量后地址熵值线性关系、图5(b)表示注入攻击流量后目的端口熵值线性关系。偏离线性关系的异常点可从源地址与目的地址熵值线性关系图和源端口与目的端口线性关系图中看出。
实施例3:
在本实施例中,对该检测方法进行检测和误检,其中,检测率Pdete和误检率Pfalse定义为:
当时间窗口N设置为不同大小时,检测率和误检率的变化如图6所示,随时间窗口N的增大,检测率虽有所波动,但保持在较为稳定的水平,且较高,而误检率在时间窗口小于15时大幅减小,之后逐渐减小。由于时间窗口越大,本发明的计算量越大,时延增加,为了平衡时延和准确性,当N=30时,本发明的检测率较高,误检率较低,且不会产生太大的时延。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (8)
1.一种基于熵和动态线性关系的多级流量异常检测方法,其特征在于:包括以下步骤:
S1.设定时间片大小T和时间窗口大小N;计算时间窗口和当前时间点t的流量集合熵值四元组Ht;
S2.对熵值序列进行一阶差分计算,差分处理序列定义为Ht′;
S3.基于步骤S2,设定一级阈值和二级阈值;
S4.判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过一级阈值;若是,则进行步骤S8,否则进行步骤S5;
S5.判断熵值四元组相对于时间窗口内的N个差分熵值四元组的差值是否超过二级阈值;若是,则进行步骤S6,否则进行步骤S7;
S6.动态建立四元组之间的线性关系,并判断时间点t时熵值是否偏离线性关系,若是,则进行步骤S8,否则进行步骤S7;
S7.检测当前时间无异常,进行步骤S9;
S8.根据熵值四元组中的分量变化方向识别出异常类型;
S9.滑动时间窗口,进行下一个时间点检测。
2.根据权利要求1所述的基于熵和动态线性关系的多级流量异常检测方法,其特征在于:所述的熵值四元组为IP报头中的四种属性的熵值,包括源地址、源端口、目的地址、目的端口的熵值;
所述的步骤S1详细如下:
设定时间片大小T和时间窗口大小N,在时间点t上,聚合流St上的熵值四元组定义为:
Ht=(Hsa,t,Hsp,t,Hda,t,Hdp,t);
其中,Hsa,t、Hsp,t、Hda,t、Hdp,t分别表示源地址、源端口、目的地址、目的端口的熵值。
3.根据权利要求2所述的基于熵和动态线性关系的多级流量异常检测方法,其特征在于:所述的源地址的熵值定义为:
其中,nsa为聚合流中流量的总数,Pisa,t为相应源地址出现的概率;
所述的源端口的熵值定义为:
其中,nsp为聚合流中流量的总数,Pisp,t为相应源地址出现的概率;
所述的目的地址的熵值定义为:
其中,nda为聚合流中流量的总数,Pida,t为相应源地址出现的概率;
所述的目的端口的熵值定义为:
其中,ndp为聚合流中流量的总数,Pidp,t为相应源地址出现的概率。
4.根据权利要求1所述的基于熵和动态线性关系的多级流量异常检测方法,其特征在于:所述的步骤S2具体如下:
对熵值序列进行一阶差分处理,处理后的序列表示为Ht′,其表达式如下:
Ht′=Ht-Ht-1;
其中,Ht表示时间点t的流量集合熵值四元组,Ht-1表示时间点t-1的流量集合熵值四元组。
5.根据权利要求1所述的基于熵和动态线性关系的多级流量异常检测方法,其特征在于:步骤S3具体如下:
计算时间窗口内差分熵值序列的平均值和标准差,作为设定阈值的标准;其中,差分熵值序列的平均值和标准差分别表示为:
一阶差分熵值四元组的平均值表示为:
一阶差分熵值四元组的方差表示为:
其中,设定时间点t上的两级动态阈值λt=(λt1,λt2),其中,一级阈值设定为三倍标准差,二级阈值设定为两倍标准差;具体分别表示为:λt1=±3δ′t,λt2=±2δ′t。
6.根据权利要求1所述的基于熵和动态线性关系的多级流量异常检测方法,其特征在于:所述的时间窗口内的N个差分熵值四元组的差值表示为:
ΔHt ′=Ht ′-Et ′=(Hsa,t′,Hsp,t′,Hda,t′,Hdp,t′)-(Esa,t′,Esp,t′,Eda,t′,Hdp,t′)
=(ΔHsa,t′,ΔHsp,t′,ΔHda,t′,ΔHdp,t′)
判断熵值四元组的差值与一级阈值与二级阈值的关系,进行相应的步骤操作,其中,基于熵值四元组的差值定义报警触发四元组定义:
alarm(Ht)=(alarm(Hsa,t),alarm(Hsp,t),alarm(Hda,t),alarm(Hdp,t));
其中,alarm(Hsa,t)表示源地址熵值报警触发函数,alarm(Hsp,t)表示源端口熵值报警触发函数,alarm(Hda,t)表示目的地址熵值报警触发函数,alarm(Hdp,t)表示目的端口熵值报警触发函数;
其中alarm(Hsa,t)的定义如下:
上式中δsa,t′表示δ′t中源地址分量,alarm(Hsa,t)=±2,说明源地址熵值变化程度超出了λt1的范围;alarm(Hsa,t)=±1,说明源地址熵值变化程度介于λt1与λt2之间;alarm(Hsa,t)=0,说明时间点t的源地址熵值没有出现明显的波动,不同的异常类型,会引起不同的源地址熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负;
其中alarm(Hsp,t)的定义如下:
上式中δsp,t′表示δ′t中源端口分量,alarm(Hsp,t)=±2,说明源端口熵值变化程度超出了λt1的范围;alarm(Hsp,t)=±1,说明源端口熵值变化程度介于λt1与λt2之间;alarm(Hsp,t)=0,说明时间点t的源端口熵值没有出现明显的波动,不同的异常类型,会引起不同的源端口熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负;
其中alarm(Hda,t)的定义如下:
上式中δda,t′表示δ′t中目的地址分量,alarm(Hda,t)=±2,说明目的地址熵值变化程度超出了λt1的范围;alarm(Hda,t)=±1,说明目的地址熵值变化程度介于λt1与λt2之间;alarm(Hda,t)=0,说明时间点t的目的地址熵值没有出现明显的波动,不同的异常类型,会引起不同的目的地址熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负;
其中alarm(Hdp,t)的定义如下:
上式中δdp,t′表示δ′t中目的端口分量,alarm(Hdp,t)=±2,说明目的端口熵值变化程度超出了λt1的范围;alarm(Hdp,t)=±1,说明目的端口熵值变化程度介于λt1与λt2之间;alarm(Hdp,t)=0,说明时间点t的目的端口熵值没有出现明显的波动,不同的异常类型,会引起不同的目的端口熵值变化方向,为了方便判断时间点t上出现的是何种异常,设定熵值若相比前N个时间点增加,符号为正,若减少,符号为负。
7.根据权利要求1所述的基于熵和动态线性关系的多级流量异常检测方法,其特征在于:所述的线性关系具体如下:
分析正常情况下大量的历史流量,源地址的熵值和目的地址的熵值具有正线性关系,源端口的熵值和目的端口的熵值之间具有负线性关系,且随时时间的变化,线性关系会发生变化;为了保证线性关系中参数αt和βt的实时性,提高检测率,本发明采用动态的方式设定αt和βt,时间窗口设定为N,当前检测的时间点为t,假设t之前的N个时间点内不存在异常流量,对该N个时间点的熵值建立线性关系,具体如下:
计算源地址和目的地址熵值的线性关系,设时间点t建立的线性关系定义为:
Hsa,t=αt·Hda,t+βt+εt
其中
计算参数αt和βt的值,根据建立的线性关系求出的熵值即为线性预测值当观测值与预测值之差的平方和为最小值时,得到的最佳的线性模型;设观测值与预测值之差的平方和记为Q:
其中,Hsa,t′表示根据线性关系得出的在时间窗口内的源地址熵值;t-1≥t′≥t-N,因Q为非负值,所以Q的极小值即为最小值,分别对αt和βt求一阶偏导可得:
估计出αt和βt后,计算出方差大小:
设定判断偏离线性关系的阈值为θt=±3δt;当时间点t的熵值实际值与根据线性关系得出的预测值之间的差异超过所设定的阈值范围时,判断时间点t存在异常流量。
8.根据权利要求1所述的基于熵和动态线性关系的多级流量异常检测方法,其特征在于:所述的步骤S9具体如下:
时间窗口向前滑动,其中,时间窗口的滑动分为两种情况:
1、当前时间点t不存在异常
当检测时间点t+1时,若时间点t不存在异常,那么时间窗口向前滑动一个时间点,滑动后的时间窗口内的N个一阶差分熵值四元组作为检测时间点t+1是否存在异常的基准。
2、当前时间点t存在异常
若当前检测到时间点t存在异常,为了避免时间窗口内的正常模式被异常点破坏,此时时间窗口不再向前滑动,依旧使用时间点t-N至时间点t-1的一阶差分熵值四元组为时间点t+1设定阈值;若时间点t+1不存在异常,时间窗口的右边界向右滑动两个时间点,左边界向左滑动一个时间点,窗口内不包含时间点t的值;若时间点t+1存在异常,时间窗口仍然不向前滑动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711385042.1A CN109951420B (zh) | 2017-12-20 | 2017-12-20 | 一种基于熵和动态线性关系的多级流量异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711385042.1A CN109951420B (zh) | 2017-12-20 | 2017-12-20 | 一种基于熵和动态线性关系的多级流量异常检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109951420A true CN109951420A (zh) | 2019-06-28 |
CN109951420B CN109951420B (zh) | 2020-02-21 |
Family
ID=67004217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711385042.1A Active CN109951420B (zh) | 2017-12-20 | 2017-12-20 | 一种基于熵和动态线性关系的多级流量异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109951420B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111222319A (zh) * | 2019-11-14 | 2020-06-02 | 电子科技大学 | 一种基于新型hdp模型的文档信息提取方法 |
CN112448947A (zh) * | 2020-11-10 | 2021-03-05 | 奇安信科技集团股份有限公司 | 网络异常确定方法、设备及存储介质 |
US11132109B2 (en) | 2019-05-08 | 2021-09-28 | EXFO Solutions SAS | Timeline visualization and investigation systems and methods for time lasting events |
CN115038088A (zh) * | 2022-08-10 | 2022-09-09 | 蓝深远望科技股份有限公司 | 一种智能网络安全检测预警***和方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120137367A1 (en) * | 2009-11-06 | 2012-05-31 | Cataphora, Inc. | Continuous anomaly detection based on behavior modeling and heterogeneous information analysis |
CN104734916A (zh) * | 2015-03-10 | 2015-06-24 | 重庆邮电大学 | 一种基于tcp协议的高效多级异常流量检测方法 |
CN104994056A (zh) * | 2015-05-11 | 2015-10-21 | 中国电力科学研究院 | 一种电力信息网络中流量识别模型的动态更新方法 |
US20150379110A1 (en) * | 2014-06-25 | 2015-12-31 | Vmware, Inc. | Automated methods and systems for calculating hard thresholds |
CN105227548A (zh) * | 2015-09-14 | 2016-01-06 | 中国人民解放军国防科学技术大学 | 基于办公局域网稳态模型的异常流量筛选方法 |
CN105357228A (zh) * | 2015-12-19 | 2016-02-24 | 中国人民解放军信息工程大学 | 一种基于动态阈值的突发流量检测方法 |
CN105429977A (zh) * | 2015-11-13 | 2016-03-23 | 武汉邮电科学研究院 | 基于信息熵度量的深度包检测设备异常流量监控方法 |
CN105515888A (zh) * | 2015-06-30 | 2016-04-20 | 国家电网公司 | 基于多维熵序列分类的智能变电站通信网络异常检测方法 |
CN105847283A (zh) * | 2016-05-13 | 2016-08-10 | 深圳市傲天科技股份有限公司 | 一种基于信息熵方差分析的异常流量检测方法 |
CN106067882A (zh) * | 2016-06-28 | 2016-11-02 | 合肥酷睿网络科技有限公司 | 一种基于网络熵的计算机网络攻击效果定量评估方法 |
CN106357434A (zh) * | 2016-08-30 | 2017-01-25 | 国家电网公司 | 一种基于熵分析的智能电网通信网络流量异常检测方法 |
CN107231348A (zh) * | 2017-05-17 | 2017-10-03 | 桂林电子科技大学 | 一种基于相对熵理论的网络流量异常检测方法 |
-
2017
- 2017-12-20 CN CN201711385042.1A patent/CN109951420B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120137367A1 (en) * | 2009-11-06 | 2012-05-31 | Cataphora, Inc. | Continuous anomaly detection based on behavior modeling and heterogeneous information analysis |
US20150379110A1 (en) * | 2014-06-25 | 2015-12-31 | Vmware, Inc. | Automated methods and systems for calculating hard thresholds |
CN104734916A (zh) * | 2015-03-10 | 2015-06-24 | 重庆邮电大学 | 一种基于tcp协议的高效多级异常流量检测方法 |
CN104994056A (zh) * | 2015-05-11 | 2015-10-21 | 中国电力科学研究院 | 一种电力信息网络中流量识别模型的动态更新方法 |
CN105515888A (zh) * | 2015-06-30 | 2016-04-20 | 国家电网公司 | 基于多维熵序列分类的智能变电站通信网络异常检测方法 |
CN105227548A (zh) * | 2015-09-14 | 2016-01-06 | 中国人民解放军国防科学技术大学 | 基于办公局域网稳态模型的异常流量筛选方法 |
CN105429977A (zh) * | 2015-11-13 | 2016-03-23 | 武汉邮电科学研究院 | 基于信息熵度量的深度包检测设备异常流量监控方法 |
CN105357228A (zh) * | 2015-12-19 | 2016-02-24 | 中国人民解放军信息工程大学 | 一种基于动态阈值的突发流量检测方法 |
CN105847283A (zh) * | 2016-05-13 | 2016-08-10 | 深圳市傲天科技股份有限公司 | 一种基于信息熵方差分析的异常流量检测方法 |
CN106067882A (zh) * | 2016-06-28 | 2016-11-02 | 合肥酷睿网络科技有限公司 | 一种基于网络熵的计算机网络攻击效果定量评估方法 |
CN106357434A (zh) * | 2016-08-30 | 2017-01-25 | 国家电网公司 | 一种基于熵分析的智能电网通信网络流量异常检测方法 |
CN107231348A (zh) * | 2017-05-17 | 2017-10-03 | 桂林电子科技大学 | 一种基于相对熵理论的网络流量异常检测方法 |
Non-Patent Citations (3)
Title |
---|
MIRCEA IORDACHE,SIMON JOUET,ANGELOS K. MARNERIDES AND DIMITRIOS: "Distributed, Multi-Level Network Anomaly Detection for Datacentre Networks", 《2017 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC)》 * |
ZIYU WANG, JIAHAI YANG, ZHANG SHIZE, CHENXI LI: "Robust Regression for Anomaly Detection", 《2017 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC)》 * |
范晓诗,李成海: "加权条件熵在异常检测中的应用", 《计算机应用研究》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11132109B2 (en) | 2019-05-08 | 2021-09-28 | EXFO Solutions SAS | Timeline visualization and investigation systems and methods for time lasting events |
CN111222319A (zh) * | 2019-11-14 | 2020-06-02 | 电子科技大学 | 一种基于新型hdp模型的文档信息提取方法 |
CN111222319B (zh) * | 2019-11-14 | 2021-09-14 | 电子科技大学 | 一种基于hdp模型的文档信息提取方法 |
CN112448947A (zh) * | 2020-11-10 | 2021-03-05 | 奇安信科技集团股份有限公司 | 网络异常确定方法、设备及存储介质 |
CN112448947B (zh) * | 2020-11-10 | 2022-10-28 | 奇安信科技集团股份有限公司 | 网络异常确定方法、设备及存储介质 |
CN115038088A (zh) * | 2022-08-10 | 2022-09-09 | 蓝深远望科技股份有限公司 | 一种智能网络安全检测预警***和方法 |
CN115038088B (zh) * | 2022-08-10 | 2022-11-08 | 蓝深远望科技股份有限公司 | 一种智能网络安全检测预警***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109951420B (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109951420A (zh) | 一种基于熵和动态线性关系的多级流量异常检测方法 | |
CN105376260B (zh) | 一种基于密度峰值聚类的网络异常流量监测*** | |
CN109729090B (zh) | 一种基于wedms聚类的慢速拒绝服务攻击检测方法 | |
CN105847283A (zh) | 一种基于信息熵方差分析的异常流量检测方法 | |
CN105208040A (zh) | 一种网络攻击检测方法及装置 | |
CN108965055A (zh) | 一种基于历史时间取点法的网络流量异常检测方法 | |
Qiu et al. | Multi-view convolutional neural network for data spoofing cyber-attack detection in distribution synchrophasors | |
CN105025515B (zh) | 一种基于gm模型的无线传感器网络流量异常检测方法 | |
CN109067722A (zh) | 一种基于两步聚类和检测片分析联合算法的LDoS检测方法 | |
CN112788066A (zh) | 物联网设备的异常流量检测方法、***及存储介质 | |
CN111131247B (zh) | 一种车载内部网络入侵检测*** | |
CN109375060A (zh) | 一种配电网故障波形相似度计算方法 | |
CN107360127A (zh) | 一种基于aewma算法的慢速拒绝服务攻击检测方法 | |
CN109767351A (zh) | 一种电力信息***日志数据的安全态势感知方法 | |
CN105871861B (zh) | 一种自学习协议规则的入侵检测方法 | |
CN109359138A (zh) | 一种基于核密度估计的异常检测方法及装置 | |
US10681059B2 (en) | Relating to the monitoring of network security | |
CN106972968B (zh) | 一种基于交叉熵联合马氏距离的网络异常流量检测方法 | |
CN101106487A (zh) | 一种检测网络流量异常的方法及装置 | |
CN110662220B (zh) | 基于时空相关性和信息熵的无线传感器网络异常检测方法 | |
CN106295683A (zh) | 一种基于尖锐度的时间序列数据的离群点检测方法 | |
CN105516164B (zh) | 基于分形与自适应融合的P2P botnet检测方法 | |
JP2005203992A (ja) | ネットワーク異常検出装置、ネットワーク異常検出方法およびネットワーク異常検出プログラム | |
CN115643108A (zh) | 面向工业互联网边缘计算平台安全评估方法、***及产品 | |
CN109768995A (zh) | 一种基于循环预测和学习的网络流量异常检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |