一种基于INFIGARCH模型的网络流量异常检测方法及设备与流程

文档序号:11388922阅读:272来源:国知局
一种基于INFIGARCH模型的网络流量异常检测方法及设备与流程

本发明涉及网络安全领域,具体涉及一种基于infigarch模型的网络流量异常检测方法及设备。



背景技术:

伴随着网络日渐深入人们的日常生产生活,网络攻击问题也日益严重。由于网络数据流包含时间戳,天然就是一个时间序列。所以基于时间序列模型,进行网络异常检测是一种常用的手段。传统上,时间序列网络流量异常检测方法主要考虑将网络流量视为实数或变换为实数后,按实数时间序列进行建模。同时,现有的基于时间序列模型往往基于传统的arima模型或统计检验,这些方法一般忽略了网络流量数据分布的右偏性,数据之间的异方差性和长记忆性。

现有方案之一,一种基于差分自回归滑动平均模型的网络流量异常检测方法。该方法基于差分自回归滑动平均模型arima模型。该方法:包括

第一步:确定滑动窗口大小;

第二步:对第一步确定的窗口内的流量数据进行平稳性判断,若流量数据不平稳则进行d次差分直到平稳。判断平稳的依据是dickey-fuller检验;

第三步:对第二步中得到的数据利用aic准则确定模型的阶数,即p和q的值,结合第二步中d的值,得到arima(p,d,q)模型;

第四步:用极大似然估计方法确定arima(p,d,q)的参数值;

第五步:根据第四步的模型做l步预报;

第六步:根据第五步的预报值做指数加权平均生成当前流量的预测值然后与当前时刻流量的真实值做误差判定。若误差大于给定的阈值,则判定为异常。

第七步:移动窗口进行下一次判断。

现有技术方案的缺点:该方法完全忽视了网络流量包数量的如下特性:

(1)整数性。网络流量包的数量只能是1个,2个等非负整数个,不可能是0.4个,2.7个等实数个。但是该方法完全忽视了流量的整数性,直接把它视为实数进行建模;

(2)流量分布的不对称性。流量包个数是随机的。但是该随机的分布有明显的右偏性。具体说来,流量包个数最小只能是0,而最大理论上却可以趋于无穷。这一现象,用概率分布描述表现出非常明显的右偏现象,即分布的左侧在0处截断,在右侧可以很大,甚至趋于无穷。首先于秦和吕吉彬(2015)的方法基于arima(p,d,q)模型,该模型的基础是正态分布。其次,该方法用于判断是否平稳的dickey-fuller检验基于随机过程中的布朗运动。布朗运动在任意一个时间节点都是正态分布。最后该方法用于判断阶数的aic准则基于似然函数,在该方法中似然函数依然是基于正态分布构造的。众所周知,正态分布时典型的对称分布,用对称分布近似严重右偏的分布,效果当然值得商榷;

(3)流量包数量的异方差性。直观说来,一个网络在某时刻有大流量时,其后的时刻流量往往也非常大,而小流量之后往往也是小流量。例如假设下载一部电影,需要1小时,则在这1小时内流量非常大。当用户电影下载结束后,流量立刻下降,之后的一个时刻内流量都较小。这是典型的流量异方差现象。于秦和吕吉彬(2015)的方法基于arima模型,该模型不能刻画异方差现象;

(4)长记忆性。所谓长记忆性直观上来说,指某一时刻的流量大小与很长一个时间之前的流量大小有很大相关性。考虑到我们做网络安全检测,需要实时监控,采样频率较高,时间间隔较短,因此数据之间即便前后相距很远,相关性依然明显。例如(3)中的例子,在下载电影结束前一刻的流量与刚开始下载时的流量之间有很大的相关性。若我们以0.1秒的周期进行采样,这两个时间点之间相差近36000个数据点。即使我们以10秒为采样周期,开始和结束的两个数据点也相差了近360的数据点。这体现出极其明显的长记忆性。于秦和吕吉彬(2015)的方法所用的arima模型,在文献中是一个典型的短记忆方法,两个数据点之间的相关性随着相距的时间距离呈指数速度下降到0。

基于以上4点,arima模型在数据流量检测,特别是在高频采样情况下的检测效果是不佳的。这种方法在理论上遇到的困难必须用其他合适的方法进行克服。

现有技术方案二:一种基于季节性混合极端学生氏偏差检验(s-h-esd)方法的时间序列异常检测。该方法描述如下:

第一步:确定数据聚合的周期,可以是每日数据,可以是每周数据,也可以是分钟等周期的数据;

第二步:根据数据聚合的周期,将网络流量数据聚合到选定的周期然后进行季节调整;

第三步:设定检验的显著性水平α;

第四步:计算数据的中位数和标准差;

第五步:对数据进行标准化得到新数据ares:方法为将聚合后的数据减去中位数再除以标准差。这一步实际上将离散数据进行了拟连续化。此后,若后续进行的是单边检验,则数据标准化工作已经完成。若其后进行的是双边检验,则还需对上述结果取绝对值;

第六步:找出ares中最大的数据r,计算p=1-α/n(若是双边检验,则p=1-α/(2n)),其中α为第三步中确定的检验显著性水平,n为数据长度;

第七步:计算概率为p,自由度为n-1的t分布的分位数tn-1,p,进而计算检验的临界值:

第八步:若r>λ,则判定该数据点为异常点,反之,则该数据点不是异常点;

第九步:将上述数据点(无论是否异常)从原整合后的数据中去除,数据长度减一,转到第四步开始下一次检验。

现有技术方案二的缺点:这种基于s-h-esd的方法,实际是统计方法中广义极端学生氏偏差检验(gesd)的推广。它和方案一一样忽视了网络流量包数量的如下特性:

(1)整数性。该方法通过标准化,使得原有的整型数据看起来像是连续的实数数据(因为标准差一般是实数),但本质上数据的离散性没有任何变化;

(2)流量分布的不对称性。该方法基于t分布构造检验统计量,而t分布是继正态分布之后另一个广为使用的对称分布;

(3)流量包数量的异方差性。事实上,该方法利用所有数据计算标准差,是典型的同方差假设;

(4)长记忆性。该方法根本没有考虑数据间的相关性,更不必说长记忆性了。

(5)实时性。该方法基于离线数据。不能进行实时的在线监测。

基于以上5点,推特的模型在数据流量检测方面特别是在线监测方面基本无用武之地。



技术实现要素:

为了解决现有方法以实数近似整数,忽略长记忆和异方差特性的缺点,本发明提出了一种基于整数型分数差分广义自回归条件异方差模型(infigarch)的网络流量异常检测方法。

本发明基于整数型分数差分广义自回归条件异方差(integer-valuedfractionalintegratedgeneralizedautoregressiveconditionalheteroscedasticmodel),简记为infigarch(p,d,q)模型,其中p为自回归的阶(order),q为方差部分移动平均的阶,d为差分的阶。数学上定义b为后移算子,其中bkxt=xt-k,定义1-b为差分算子,满足如下规则:

(1-b)xt=xt-xt-1

(1-b)2xt=(1-2b+b2)xt=xt-2xt-1+xt-2

由于本模型中d介于0到1之间,作为差分算子的指数,故文献中称为分数差分。该模型假设时间序列xt(其中脚标t表示时间)服从poisson分布poi(λt),而参数λt则满足方程

ξ(b)(1-b)dxt=γ0+[1-δ(b)]λt,

多项式多项式上述方程还可改写为:

λt=δ(b)-1(1-b)dξ(b)(xt-λ)

本方法基于poisson分布构造模型。poisson分布是一离散分布,其取值范围为0,1,至无穷的非负整数,满足网络流量包数量为非负整数的要求;poisson分布具有右偏性,符合网络流量分布右偏的特点。该模型是异方差模型,可以用于捕获流量中的异方差现象。该方法采用了分数差分技术,该技术可以使得本模型具有长记忆特性。经多次实验,infigarch(1,d,1)与infigarch(p,d,q)中p,q取其它值,效果没有明显区别,因此采用infigarch(1,d,1)模型,适用于整数型长记忆条件异方差网络条件。

具体地,本发明实施例提供一种基于infigarch(1,d,1)模型的网络流量异常检测方法,具体包括如下步骤:

s1:确定建模移动窗口时间跨度的大小m;

s2:确定数据聚合后每个数据点对应的时间间隔的大小;

s3:确定模型更新时间跨度tgap;

s4:对由步骤s1所确定的时间跨度内移动窗口中流量数据按所述s2步骤中的时间间隔进行聚合;

s5:使用极大似然估计法在约束条件下的最大化似然函数估计得到infigarch(1,d,1)模型的待定参数,同时记录所用最后一个数据点对应的时间test;

s6:根据步骤s5得到的参数,代入infigarch(1,d,1)模型进行l步预测,每一个预测值对应一个预测时刻,以数据框形式储存预测结果;所述数据框共l行五列:第一列为时刻,第二列为该时刻对应的预测值,第三列为该时刻预测值置信水平α1=0.95的右侧置信区间的上界阈值,第四列为该时刻预测值置信水平α2=0.99的右侧置信区间的上界阈值;第五列为该时刻预测值置信水平α3=0.999的右侧置信区间的上界阈值;每行对应第i步预报,i=1,...,l;

s7:用步骤s2中选定的时间间隔聚合新到的流量,记录时刻和对应的聚合流量,其中所述聚合流量记为xnew;

s8:将步骤s7中获得的最新完整聚合流量与步骤s6中预测时刻相同的流量上界阈值作比较;若流量小于第三列α1=0.95上界阈值,判断为正常,返回绿色信号;若流量小于第四列α2=0.99的上界阈值同时大于等于第三列α1=0.95的上界阈值,则返回黄色信号;若流量大于等于第四列α2=0.99的上界阈值同时小于第五列α3=0.999的上界阈值,则返回橙色信号;若流量大于等于第五列α3=0.999的上界阈值,返回红色信号;

s9:比较当前时间和步骤s5中记录的test,若两者差距大于tgap,返回步骤s4,更新模型,否则执行步骤s10;

s10:将步骤s7聚合的数据加入时间序列队列之中,移动时间窗口,使得步骤s7中的数据进入时间窗口,同时剔除时间较旧的数据,以保证时间窗口与步骤s1中选定的宽度一致。

进一步的,所述步骤s5具体包括以下分步骤:

s51:计算时间窗口内数据的算术平均值,即将窗口内的流量数据求和并除以窗口内的数据点数量;所述的数据点数量为经过步骤s4聚合后的数据点;

s52:计算时间窗口内数据的标准差σ;

s53:随机选择d、δ、ξ和λ这四个参数的初始值,只需它们满足0<ξ<δ<d<1即可;

s54:确定足够大的正整数m,由于

得到用ξ,δ,λ,d表示的ηi和λt;

s55:用步骤s54的λt计算对数似然函数:

其中lt是时刻t的对数似然函数,m是时间窗口中样本的数量,x!表示非负整数x的阶乘;

s56:为保证条件方差λt始终非负,以ξ-δ<0,δ-d<d和d-1<0作为约束条件,用约束条件下,求函数最大值的方法,最大化对数似然函数l(ξ,δ,λ,d),求得参数(ξ,δ,λ,d)的值;

s57:为后续步骤能判断是否需要更新模型,记录当前时间为test。

进一步的,所述步骤s6具体包括以下分步骤:

s61:令i=1,同时构造一个l行5列的数据框;

s62:将由步骤s5求得的ξ,δ,λ,d代入

此处,同样用步骤s54确定的正整数m近似∞,计算得到最新的时刻t+i的λt+i,取小于等于λt+i的最大非负整数为流量在时刻t+i的预报;

s63:令α1=0.95,α2=0.99,α3=0.999;

s64:令j=1;

s65:令pj=0,k=0,

s66:以步骤s62计算得到的λt+i为poisson分布的参数,计算该分布取值为k的概率并更新pj=pj+pk;

s67:判断pj是否大于αj;

s68:若s67判断为真,则置信水平为αj的置信上界为k-1,记入数据框第i行第j+2列。转到步骤s610;

s69:若s67判断为假,更新k=k+1,并转至步骤s66;

s610:判断j是否大于3;

s611:若s610判断为假,则更新j=j+1,并转至步骤s65;

s612:若s610判断为真,则判断i是否大于l;若i>l为真,则进行步骤s7;

s613:若s612判断为假,则更新i=i+1并转至步骤s62。

进一步的,所述步骤s8具体包括以下分步骤:

s81:选择步骤s6预报时间与步骤s7中聚合时间相同的行;

s82:令j=5,signal2=绿,signal3=黄,signal4=橙,signal5=红;本处脚标从2开始是为了异常警告正好与数据在数据框中的列对应,程序编写方便;

s83:判断xnew是否小于第j列的值;

s84:若s83判断为假,返回signalj信号,表示流量异常,异常等级由信号颜色标识。然后转到步骤s9;

s85:若s83判断为真,则比较j是否等于3;

s86:若s85判断为假,则更新j=j-1,并转到步骤s83;

s87:若s85判断为真,则返回signal2信号,表示没有异常流量并转到步骤s9;

进一步的,所述步骤s10具体包括以下分步骤:

s101:设原数据窗口中的数据为(xt-m+1,xt-m+2,...,,xt,)将数据窗口中最晚的数据xt对应的时间与当前时间之间的流量用步骤s4相同的方法聚合,记为(xt+1,...,xt+n);

s102:将新旧数据组合(xt-m+1,xt-m+2,...,xt,xt+1,xt+2,...,xt+n,);

s103:剔除旧数据,剩余(xt+n-m+1,xt-m+2,...,xt,xt+1,xt+2,...,xt+n)即为新的保持窗口宽度不变的序列。

本发明实施例提供一种电子设备,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如下步骤:

s1:确定建模移动窗口时间跨度的大小m;

s2:确定数据聚合后每个数据点对应的时间间隔的大小;

s3:确定模型更新时间跨度tgap;

s4:对由步骤s1所确定的时间跨度内移动窗口中流量数据按所述s2步骤中的时间间隔进行聚合;

s5:使用极大似然估计法在约束条件下的最大化似然函数估计得到

infigarch(1,d,1)模型的待定参数,同时记录所用最后一个数据点对应的时间test;

s6:根据步骤s5得到的参数,代入infigarch(1,d,1)模型进行l步预测,每一个预测值对应一个预测时刻,以数据框形式储存预测结果;所述数据框共l行五列:第一列为时刻,第二列为该时刻对应的预测值,第三列为该时刻预测值置信水平α1=0.95的右侧置信区间的上界阈值,第四列为该时刻预测值置信水平α2=0.99的右侧置信区间的上界阈值;第五列为该时刻预测值置信水平α3=0.999的右侧置信区间的上界阈值;每行对应第i步预报,i=1,...,l;

s7:用步骤s2中选定的时间间隔聚合新到的流量,记录时刻和对应的聚合流量,其中所述聚合流量记为xnew;

s8:将步骤s7中获得的最新完整聚合流量与步骤s6中预测时刻相同的流量上界阈值作比较;若流量小于第三列α1=0.95上界阈值,判断为正常,返回绿色信号;若流量小于第四列α2=0.99的上界阈值同时大于等于第三列α1=0.95的上界阈值,则返回黄色信号;若流量大于等于第四列α2=0.99的上界阈值同时小于第五列α3=0.999的上界阈值,则返回橙色信号;若流量大于等于第五列α3=0.999的上界阈值,返回红色信号;

s9:比较当前时间和步骤s5中记录的test,若两者差距大于tgap,返回步骤s4,更新模型,否则执行步骤s10;

s10:将步骤s7聚合的数据加入时间序列队列之中,移动时间窗口,使得步骤s7中的数据进入时间窗口,同时剔除时间较旧的数据,以保证时间窗口与步骤s1中选定的宽度一致。

进一步的,以使所述至少一个处理器能够进一步执行如下步骤:

s51:计算时间窗口内数据的算术平均值,即将窗口内的流量数据求和并除以窗口内的数据点数量;所述的数据点数量为经过步骤s4聚合后的数据点;

s52:计算时间窗口内数据的标准差σ;

s53:随机选择d、δ、ξ和λ这四个参数的初始值,只需它们满足0<ξ<δ<d<1即可;

s54:确定足够大的正整数m,由于

得到用ξ,δ,λ,d表示的ηi和λt;

s55:用步骤s54的λt计算对数似然函数:

其中lt是时刻t的对数似然函数,m是时间窗口中样本的数量,x!表示非负整数x的阶乘;

s56:为保证条件方差λt始终非负,以ξ-δ<0,δ-d<0和d-1<0作为约束条件,用约束条件下,求函数最大值的方法,最大化对数似然函数l(ξ,δ,λ,d),求得参数ξ,δ,λ,d的值;

s57:为后续步骤能判断是否需要更新模型,记录当前时间为test。

进一步的,以使所述至少一个处理器能够进一步执行如下步骤:

s61:令i=1,同时构造一个l行5列的数据框;

s62:将由步骤s5求得的ξ,δ,λ,d代入

此处,同样用步骤s54确定的正整数m近似∞,计算得到最新的时刻t+i的λt+i,取小于等于λt+i的最大非负整数为流量在时刻t+i的预报;

s63:令α1=0.95,α2=0.99,α3=0.999;

s64:令j=1;

s65:令pj=0,k=0,

s66:以步骤s62计算得到的λt+i为poisson分布的参数,计算该分布取值为k的概率并更新pj=pj+pk;

s67:判断pj是否大于αj;

s68:若s67判断为真,则置信水平为αj的置信上界为k-1,记入数据框第i行第j+2列。转到步骤s610;

s69:若s67判断为假,更新k=k+1,并转至步骤s66;

s610:判断j是否大于3;

s611:若s610判断为假,则更新j=j+1,并转至步骤s65;

s612:若s610判断为真,则判断i是否大于l;若i>l为真,则进行步骤s7;

s613:若s612判断为假,则更新i=i+1并转至步骤s62。

进一步的,以使所述至少一个处理器能够进一步执行如下步骤:

s81:选择步骤s6预报时间与步骤s7中聚合时间相同的行;

s82:令j=5,signal2=绿,signal3=黄,signal4=橙,signal5=红;本处脚标从2开始是为了异常警告正好与数据在数据框中的列对应,程序编写方便;

s83:判断xnew是否小于第j列的值;

s84:若s83判断为假,返回signalj信号,表示流量异常,异常等级由信号颜色标识。然后转到步骤s9;

s85:若s83判断为真,则比较j是否等于3;

s86:若s85判断为假,则更新j=j-1,并转到步骤s83;

s87:若s85判断为真,则返回signal2信号,表示没有异常流量并转到步骤s9;

进一步的,以使所述至少一个处理器能够进一步执行如下步骤:

s101:设原数据窗口中的数据为(xt-m+1,xt-m+2,...,,xt,)将数据窗口中最晚的数据xt对应的时间与当前时间之间的流量用步骤s4相同的方法聚合,记为(xt+1,...,xt+n);

s102:将新旧数据组合(xt-m+1,xt-m+2,...,xt,xt+1,xt+2,...,xt+n,);

s103:剔除旧数据,剩余(xt+n-m+1,xt-m+2,...,xt,xt+1,xt+2,...,xt+n)即为新的保持窗口宽度不变的序列。

本发明的网络流量异常检测方法,检测极高采样频率的原始网络流量数据,紧密监控网络流量状况;使用infigarch(1,d,1)模型,避免了传统分析将非负整数近似为连续实数的误差;分数差分捕获了网络流量长记忆性质;条件异方差描述了网络流量大流量跟随大流量,小流量跟随小流量的现象;在一定时间跨度后再重新估计参数更新模型保证了模型更新和计算速度的平衡。使得本方法模型的稳定性和趋势跟随能力并重的优良特性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于infigarch(1,d,1)模型的网络流量异常检测方法流程示意图。

图2为步骤s5的示意子流程图。

图3为步骤s6的示意子流程图。

图4为步骤s8的示意子流程图。

图5为一个含有流量异常数据的网络流量图,共31428个聚合数据点,本发明以其作为演示用的实施例。

图6为本实施例检测结果(局部,时间1-1000)。由于数据点过多,若展示全部检查结果,很难在图中看清楚。因此,此处仅展示聚合时间为1-1000的检测结果。

图7是本发明一个实施例所述构建方法的电子设备的硬件结构连接示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

下面结合附图和具体实施例对本发明做进一步说明:

本发明基于infigarch(p,d,q)模型的网络流量异常检测方法流程示意图如图1所示。由于infigarch(1,d,1)在实际效果上,与一般的infigarch(p,d,q)并无明显差别,所以,我们不再优选该模型的阶(即p和q的值)而直接使用infigarch(1,d,1)模型。下面使用如图5、图6所示的含有异常流量的网络流量数据对该方法做实例验证,本实施例检测结果(局部,仅展示前1000个数据的检测结果)本实施例中前150个数据用于建模,后850个在滑动窗口中进行检验。理论上,黄色信号数量该有30个左右(850*5%-850*1%-850*0.1%=33),实际效果中有24个黄色信号返回(由于数据较密,有些黄色信号圆圈中有多个数据点);橙色信号数量应有7个左右(850*1%-850*0.1%=7),实际效果有8个;红色信号应有1个(850*0.1%=1),实际效果则返回2个红色信号。返回数量与理论数量接近,效果达到要求。

具体包括以下步骤:

s1:选定一个大小为m的移动窗口。

窗口值的选择应在保证建模精度的前提下尽可能小,以减小算法复杂度和计算时间。经过上万次随机模拟实验,本模型的最小建模长度应该m≥50。当m=150时,效果更好。因此本实施例设定m=150,包含当前时刻和之前149个由步骤s2选定的间隔时间的聚合流量值。使用窗口大小合适的移动窗口使建模数据量保持固定,既保证了建模的快速性,又保证了模型更贴合当前网络的实际流量情况,减小了误报的概率。

s2:选定数据聚合后每个数据点对应的时间间隔大小。

网络流量的原始数据一般由网络侦听工具获得(例如常见的pcap和tcpdump等)。这些工具获得的流量数据对应的时间戳间隔非常短,且间隔不等。时间序列模型大多需要等间隔采样。由此我们对原始数据按既定的时间间隔进行聚合。时间间隔需要按网络繁忙程度设置。对繁忙的网络,间隔可以小一些,例如0.01秒,对流量较小的网络,时间间隔可以大一些,例如1分钟。本实施例采自一个流量规模中等的网络,时间间隔设置为0.1秒。

s3:选定模型更新时间跨度tgap。

每次更新模型,都要重新估计模型参数,计算量较大。考虑到一段时间内模型变化不大,完全可以用已有的模型继续预测网络流量,因此选定模型更新时间跨度tgap,当已有的模型存续时间大于tgap,则重新估计模型参数,更新模型;反之,则继续使用该模型预测网络流量。时间跨度tgap过小,则更新频率过高,计算量偏大;时间跨度tgap过大,则可能已有的模型不适合现在的网络流量状况。选择适当的时间跨度tgap,兼顾计算复杂度和网络流量状况变化之间的平衡。在本实施例中,选择时间跨度tgap=3000即300秒或5分钟。

s4:对由步骤s1选定的移动窗口(本实施例中窗口m=150)内流量数据按步骤s2中的时间间隔聚合。本实施例中,该间隔为0.1秒。如此,在窗口内共150个数据点,覆盖15秒时间。聚合方法具体说来,设聚合后某数据点对应的时间为t′,其后一个聚合数据点对应的时间为t′+1,这两个时间相差0.1秒。我们将流量发生时间大于t′但小于等于t′+1的所有流量相加,作为在时刻t′+1发生的流量。

s5:使用约束条件下极大似然法估计infigarch(1,d,1)模型的参数ξ,δ,λ,d:具体为,如图2所示:

s51:计算窗口内数据的平均值。在本实施例中,由于窗口宽度m=150,不妨设窗口中第一个数据为x1,第二个数据为x2,以此类推,最后一个数据为x150,则均值

s52:计算窗口内数据的标准差。在本实施例中,标准差

其中由步骤s51获得。据统计理论,此处用(150-1)是以保证σ2在估计方差时的无偏性。

s53:随机选择ξ,δ,λ,d的初始值,只要满足0<ξ<δ<d<1即可。

s54:选定一个充分大的正整数m。由于

正整数m越大,对∞的近似越好,但计算量也将增加。我们需要确定一个恰当的m,在保证精确近似的同时,减小计算量。我们尝试了多个m,发现当m=1000时,兼顾了运算速度和精确性。因此本实施例中选定m=1000。选定m后即可相应计算ηj

η1=d-δ+ξ,

其中γ(x)是标准gamma函数。

s55:用步骤s54的λt代入对数似然函数计算l(ξ,δ,λ,d)

s56:改写步骤s53的约束条件为-ξ<0,ξ-δ<0,δ-d<0,d-1<0这四个约束条件。在这四个约束条件下,通过最大化对数似然函数l(ξ,δ,λ,d)的方式求参数ξ,δ,λ,d的估计值。一般而言,我们可以用在对数似然函数中加入拉格朗日乘子,再用梯度上升法最大化l(ξ,δ,λ,d),求得参数ξ,δ,λ,d的值。考虑到数据窗口在本实施例中为m=150相对较小,我们直接采用滑动渐近线法(methodofmovingasymptotes,mma)计算约束条件下的函数最大化。本例中我们调用了开源nlopt算法库中相关函数在约束条件下最大化l(ξ,δ,λ,d)并求得此时ξ,δ,λ,d参数的值。该算法基于目标函数(即对数似然函数)的梯度。其梯度公式如下:

其中,m为步骤s1中确定的窗口宽度,凡是不在窗口内的xt一律用步骤s51中得到的替代,不在窗口中的λt一律用步骤s52计算得到的σ替代;m为

步骤s54中选定的正整数。这里ψ0(x)是digamma函数,定义为

其中γ(x)′是gamma函数γ(x)的导数。

s57:记录当前时间test

s6:根据步骤s5得到的参数ξ,δ,λ,d的值,得到完整的infigarch(1,d,1)模型。用该模型做l步预报,将结果填入一个l行,5列的数据框。其中第i行第一列为第i步预报的时刻,第二列为第i步预报的预报值,第三到五列分别为置信水平为0.95、0.99和0.999的预报区间上界,i=1,2,...,l。本实施例l=10。具体为,如图3所示:

s61:令i=1;

s62:将步骤s5计算得到的ξ,δ,λ,d代入infigarch(1,d,1)模型,计算

其中m与步骤s54相同,在本实施例中m=1000。再者,ηj的计算方法与步骤s54相同。取小于等于λt+i的最大整数作为第i步预报;

s63:令α1=0.95,α2=0.99,α3=0.999;

s64:令j=1;

s65:令pj=0,k=0;

s66:以步骤s62计算得到的λt+i为poisson分布的参数,计算该分布取值为k时的概率并更新pj=pj+pk;

s67:判断pj>αj是否成立;

s68:若s67判断为真,则置信水平为αj的上界为k-1,计入数据框第i行对应的列(j=1,计入第三

列,j=2,计入第四列,j=3,计入第五列,所以是j+2列),转到步骤s610;

s69:若s67判断为假,则更新k=k+1并回到步骤s66;

s610:判断j>3是否成立;

s611:若s610判断为假,则更新j=j+1并返回步骤s65;

s612:若判断s610为真,则判断i>l是否成立,本实施例l=10;

s613:若s612判断为假,则更新i=i+1并返回步骤s62;

s7:若s612判断为真,则用步骤s2中确定的时间间隔聚合新到的流量,本实施例用的时间间隔是0.1秒。聚合的具体方法为将步骤s7开始时间取整到0.1秒,这个时间到下一0.1秒之间的网络流量求和,记为xnew;

s8:将步骤s7中获得的最新聚合流量对应的时间与步骤s6中的时间对比,取相同时间的行。再比较该流量与该行第三列。若流量小于第三列,返回绿色信号;若流量大于等于第三列但小于第四列,则返回黄色信号;若流量大于等于第四列但小于第五列,则返回橙色信号;若流量大于等于第五列,则返回红色信号。除绿色信号外,其余信号均为网络流量异常信号,其中黄、橙和红表示警告级别逐次上升。具体为,如图4所示:

s81:选择步骤s6中预报时间与s7中xnew对应时间相同的行;

s82:令j=5,signal2=绿,signal3=黄,signal4=橙,signal5=红;

s83:判断xnew是否小于该行第j列的值;

s84:若s83判断为假,返回signalj信号,表示流量异常,异常等级由信号颜色标识。然后转到步骤s9;

s85:若s83判断为真,则比较j是否等于3;

s86:若s85判断为假,则更新j=j-1,并转到步骤s83;

s87:若s85判断为真,则返回signal2信号,表示没有异常流量并转到步骤s9;

s9:比较现在时刻和步骤s58的时间test,若时间差距大于tgap则返回步骤s4,否则执行步骤s10;

s10:更新数据并返回步骤s6。具体为:

s101:设最近一次执行步骤s6所用数据为(xt-m+1,xt-m+2,...,xt,)。时刻t,与当前时间之间的流量用步骤s4同样的方法聚合得到新数据为(xt+1,xt+2,...,xt+n,);

s102:将新、旧两份数据组合到一起,得到(xt-m+1,xt-m+2,...,xt,xt+1,xt+2,...,xt+n);

s103:剔除旧数据剩余(xt+n-m+1,xt+n-m+2,...,xt,xt+1,xt+2,...,xt+n,),并返回步骤s6。

本发明的网络流量异常检测方法,检测极高采样频率的原始网络流量数据,紧密监控网络流量状况;使用infigarch(1,d,1)模型,避免了传统分析将非负整数近似为连续实数的误差;分数差分捕获了网络流量长记忆性质;条件异方差描述了网络流量大流量跟随大流量,小流量跟随小流量的现象;在一定时间跨度后再重新估计参数更新模型保证了模型更新和计算速度的平衡。使得本方法模型的稳定性和趋势跟随能力并重的优良特性。

模型建模窗口要求很短。通过随机模拟,窗口的最小长度达到50以上就可以保证估计的精度在可接受范围之内。考虑到传统arima线性模型,在这么短的数据链情况下估计效果也仅能接受这一情况,就可以知道我们模型的对数据要求非常低,因而在实际使用中有更大的适应性。

本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的构建方法。

图7是本实施例提供的执行流量异常检测方法的电子设备的硬件结构示意图,如图7所示,该设备包括:

一个或多个处理器710以及存储器720,图7中以一个处理器710为例。

社交圈构建方法的设备还可以包括:输入装置730和输出装置740。

处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。

存储器720作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器710通过运行存储在存储器720中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例推构建方法。

存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据构建方法中使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。

输入装置730可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器720中,当被所述一个或者多个处理器710执行时,执行上述任意方法实施例中的构建方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本发明实施例的电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置,例如电视机、车载大屏等。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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