具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Trinoo,TFN,TFN2K和Shaft等许多DDoS攻击的产生工具可轻易获得,是导致了DDoS泛滥的重要原因。这些工具产生的攻击流除了在幅值上具有相同特征外,在攻击时间、持续时间、间隔时间和攻击类型方面也具有相似性,因而具有很强的相关性。攻击流分布到多条链路时,将导致攻击流流量中包含攻击流的异常部分之间所具有的相关性较正常情况下发生改变。于是,借助多条流量同时发生改变的这种特征所引起的相关性变化(不仅仅是攻击流幅值的大小)进行检测,避免了单个攻击流较小而不易检测的问题。
OD(Origin-Destination flow,源到端的流)流间相关性的改变并不安全是由于攻击流的影响,正常的OD流间由于相似的每日每周流量模式存在,同样也使OD流间存在一定的相关性,因此,在对OD流间的相关性进行分析前,需要从OD流中去除正常流量对相关性的影响,即提取出包含攻击流的异常空间序列,再对异常空间序列进行相关性分析。
基于上述分析,为了能及时、准确地在非网络边界的位置对攻击进行检测,本发明提供了一种DDoS攻击的检测方法,通过对每条OD流进行流量预测,提取与预测值相异的异常空间序列,再对多条OD流异常空间序列的相关性进行分析,根据相关性的变化程度来检测攻击。
为了方便理解,下面对相关系数和全局相关系数进行简单的说明:
相关系数:
假设X和Y为随机变量,X和Y的协方差为:
Cov(x,y)=E{[X-E(X)][Y-E(Y)]}(1)
其中,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时,其中a、b均为常数,也即是Y与X具有固定的函数关系,则|ρxy|=1,即X和Y完全相关。
全局相关系数:
DDoS攻击流具有明显的定向特点,总是指向受害者的接入路由器,从OD流的角度出发,攻击流对应存在于多条目的节点相同的OD流中,对相同目的节点的所有OD流间的相关性进行分析更符合攻击流的指向性特点。为了求取多个异常空间序列的相关性,本文将相关系数的概念进行延展,提出了全局相关系数的概念。
由于骨干网中任意节点可能是DDoS攻击流所指向的节点,因此,全局相关系数由以不同节点为目的端的OD流异常空间序列的相关系数组成。
为了使得本领域技术人员更好理解本发明实施例的技术方案,下面结合附图和实施例对本发明技术方案进行详细描述。
请参考图1,为本发明一种DDoS攻击的检测方法的实施例一的流程图。
具体包括以下步骤:
步骤S101、提取目的端相同的OD流的异常空间序列。
步骤S102、计算所述目的端相同的OD流的异常空间序列之间的相关系数。
步骤S103、依据所述相关系数,计算全局相关系数。
步骤S104、将所述全局相关系数与预先设置的报警门限进行比较,如果所述全局相关系数大于所述报警门限,则进入步骤S105;否则,确认正常,返回步骤S101。
步骤S105、确认发生攻击,进行报警。
在不包含攻击流的情况下,每条OD流中,必然包含其本身的正常流量(例如每日、每周的固定模式的流量)及一些具有随机性因素的流量(对用户来说可能是一些偶然性的行为)。
上述步骤S101中,提取异常空间序列的具体过程如图2所示,具体包括以下步骤:
步骤S201、建立时间序列模型。
正常的OD流流量模式可以通过建立对应的时间序列模型来描述(详细的时间序列模型的建立过程属于现有技术,在此不对其进行详细描述)。
步骤S202、利用所述时间序列模型对下一时刻的流量进行预测。
步骤S203、计算预测得到的预测值与流量实际值之间的差值,将该差值确定为异常空间序列。
本文根据采集到的流量数据建立模型,对下一时刻的流量进行预测,由此得到的预测值与流量实际值之间的差值则代表不符合流量模型的随机性因素流量与攻击流,也即OD流的异常空间序列。
假设提取出来的OD流的异常空间序列为RTt,则RTt中可能包含两种成分:预测误差et以及异常At,也即:RTt=et+At。由于上述RTt是由预测值和流量实际值产生的,因此,预测误差et的存在是必然的,当OD流不存在攻击时,At=0。预测算法的结果与实际值之间总有差异,异常空间序列的误差(et)即是由预测算法产生的误差。预测误差对相关系数大小存在一定的影响,假设存在两条OD流预测差值序列,分别为RT1t和RT2t,由于分别对两条OD流进行独立预测,所以这两条OD流的预测误差e1t与e2t相互独立,不同OD流间的预测误差与异常流量之间(例如e1t与A1t、e2t与A2t)也是相互独立的,因此可以证明得出:
Cov(RT1t,RT2t)=Cov(e1t+A1t,e2t+A2t)=Cov(A1t,A2t)
假设完全不存在预测误差的情况下,即e1t=0,e2t=0,两条OD流间的相关系数为:
当存在误差时,相关系数为:
其中,Δ=D(e1)D(e2)+D(e1)D(A2)+D(e2)D(A1)为非负实数。
因此,如果存在预测误差,会使得相关系数变小。但在本发明实施例中,由于采用计算任意两条同一目的节点OD流间的相关性的方式,因此这些相关系数相比较无预测误差的情况下的相关系数均会变小,是一个总体效应,而相关系数间数值上的相对大小信息仍然得到保留。
可以将目的端相同的多条OD流的组合称为OD流组,于是,上述步骤S102中所述计算目的端相同的OD流的异常空间序列之间的相关系数的具体方式可以为:
计算OD流组中任意两条OD流之间的相关性:
在计算OD流组的相关系数前,需要计算其中任意两条OD流之间的相关性。由于网络路径、时延等原因,众多攻击流不一定在时间上完全同步,只考虑同样时间段内OD流异常空间序列的相关性可能导致结果不准确。因此,计算OD流组中任意两条OD流的相关系数时,可以引入两个滑动时窗,考虑邻近时间段内异常空间序列的相关性。
如图3所示,Oid和Ojd分别为两条目的节点相同的OD流异常空间序列,时窗w1以时刻点t为起始点,截取Oid中长度为w1的子段,作为一个向量Vid(t,w1)。
序列中截取的子段的起始位置点tj,可在(t-w2,t+w2)中滑动,同样截取的长度为w1为另一个向量vjd(tj,w1);在ojd中的截取向量的起始位置点tj每滑动一次,可得到一个相关系数corrcoef[vid(t,w1),Vjd(tj,w1)],取这多个相关系数中最大值作为Oid和Ojd在时间点t上的相关系数:
若骨干网中共有N个节点,以节点d为目的节点的OD流共有N-1条,因此以该节点为目的节点的OD流异常空间序列的相关系数为这些OD流中任意两条的相关系数的平均值:
于是,上述步骤S103中,计算全局相关系数的具体方式为:
依据上述公式(6),当目的节点d为网络中不同的节点时,可得t时刻全局相关系数,为各个节点相关系数的平均值:
所述报警门限是作为一个判断全局相关系数是否发生异常的依据,通过对网络流量全局相关系数进行统计后,发现其满足正态分布的规律。因此,可以选择一个历史时间段的相关系数的分布情况来设置所述报警门限。
假设在该历史时间段中相关系数的平均值为m,方差为δ2,标准差为δ,并引入预设门限系数α,则报警门限d的取值公式为:
d=m+α×δ(8)
如果设置a=2.4,报警门限d的置信区间为m±2.4δ,等效于检测率可达99.6%的置信度,误报率为0.4%。
这种根据历史时间段的相关系数的分布情况设置报警门限的方式可以较大程度上消除上述预测误差对相关系数的影响。
需要说明的是,由于本发明实施例采用流量预测值作为正常流量估计值的目的是为了获得下一时刻的流量趋势,以便将多个OD流中与趋势相违背的部分提取出来,考察它们之间是否存在关联性,并非为了获得确切的值,所以预测算法的精确性并不是本文考虑的重点,而在要求实时性的检测过程中,预测算法的简单快速成为选择的主要依据,因此,本文采用ARIMA(p,d,q)模型对流量进行进一步预报,用预测值作为下一时刻正常流量的估计,进而可通过求取预测值与下一时刻真实值之间的差值提取异常空间序列。
另外,从操作的观点来看,全局相关系数的计算过程可以由网络中的局部节点和中心节点共同完成。在各个局部节点采集到以该节点为目的端的OD流,分别对其进行异常空间序列的提取,再对这些OD流中任意两条OD流的相关性进行计算,得到各个局部节点的相关性分析结果。在网络中各个局部节点进行相关性分析后,由中心节点计算出全局相关系数。需要指出的是,本文中在局部节点的计算方式,与现有分布式检测机制的局部检测方法存在较大的不同,其最大的区别在于:本文在局部节点的分析对象是全局所有指向同一个局部节点的OD流之间的相互关系,而现有分布式检测机制的局部检测方法仅对流过该节点的单条流量或者单个节点的路由信息进行分析,简而言之,本文所采用的方法是从全局的角度出发进行检测的。此外,与现有的基于PCA的多数全局检测方法只能进行集中式计算相比,本发明实施例可以从局部节点进行计算,有助于减轻中心节点的工作负担,提高整个检测过程的计算速度,降低局部节点与中心节点间的通信负载。
在另外的实施例中,计算目的端相同的OD流的异常空间序列之间的相关系数的具体方式可以通过K-L变换进行,也即通过K-L变换提取多条OD流异常空间中的强相关部分作为全局相关系数。
K-L变换是一种基于均方误差最小的数据降维方法,当原始数据列向量是零均值时,若数据集的维度为m,K-L变换的目的是找到相互正交的n个主轴(n<m),使得数据集在这些方向上的投影能够尽可能地解释原始数据集的方差,其中第一个主轴指向数据集中的最大方差方向,反映了数据集中的最强相关性,其余主轴依次指向剩余数据集中的最大方差方向,所反映的数据集中的相关性也依次降低,因此可以通过K-L变换分析全局流量异常空间中相关性的强弱。
对于变换Y=VX,如果Y正交,则Y满足下边的统计特性:
E{[yi-E(yi)][yj-E(yj)]*}=λjδji (9)
其中:
从(9)式可以看出,当i=j时,式子左边是向量yi的方差var(yi),式子右边为常数;当i≠j时,式子左边是yi和yj的协方差cov(yi,yj),右边为0。因此,Y的协方差矩阵就是一个对角阵diag(cov(yi,yj))。
由(9)式可以推出:cov{X,X}vj=λjVj (10)
(10)式说明X的协方差矩阵的特征值对应变换后的矩阵Y的方差,X的协方差矩阵的特征值对应变换后的矩阵Y的方差,X的协方差矩阵的特征向量对应变换的正交矩阵,即主成份。
根据上述(9)式和(10)式,K-L分解流程包括以下步骤:
步骤S401、计算主轴。
首先对Xt×m的每一列进行零均值化,后边所有提到X都表示X为零化均值后的异常空间矩阵。然后计算XTX的特征值和特征向量,特征值对应X的能量特征向量对应主轴。按照特征值从大到小的关系排列特征值和特征向量。在重新排列后的主轴中,排列在前面的主轴携带的信息量较大,排列在后面的主轴携带的信息量较小。
步骤S402、找出r个主轴。
为了对异常空间矩阵进行分解,需要找出r个能够代表矩阵绝大部分能量的主轴。r值的寻找有很多方法,在这里计算m个特征值的平均值,如果第r个特征值大于平均值,而第r+1个特征值小于平均值,则该r即为所求。
步骤S403、分解强相关部分作为全局相关系数。
用上述步骤S402计算出的r个主成份将异常空间矩阵分解为强相关部分和弱相关空间。每一个主成份vi是一个m维的向量,这样前面r个主成份(v1,v2,v3,...vr)构成了一个Pm×r的矩阵。分解矩阵就是用Pm×r将时间点t的流量分解为强相关部分和弱相关部分。假定xt是X一个行向量的转置,也就是把xt分解为两个部分,强相关部分xt1和弱相关部分xt2,即:
xt=xt1+xt2 (11)
其中:
xt1=PPTxt,xt2=(I-PPT)xt (12)
按照时间点顺序把相关性强的部分xt1作为一个行向量排列起来构成所需的全局相关系数。
下面通过一个具体实例对本发明技术方案进行进一步的详细说明。
假设网络为美国教育网的Abilene骨干网,其包含12个POP节点,144条OD流(分别为1号OD流、2号OD流、...、144号OD流),采集时按照1%的采样率在每个节点上采集端到端数据,将每5分钟采集到的数据作为一个时间点,每个周2016个时间点。按照这种方式采集从2004年3月1日到2004年9月10日总共24周的数据。
在基于PCA的异常检测方法中,将流量分解为正常空间序列和异常空间序列,其分解依据是提取具有强时间相关性的部分作为正常空间序列,该方法对于单条流量上局部点突变具有较好的检测效果,但是对于DDoS攻击这种分布在多条流量中的异常却无法较好地检测,因为具有相关性的多个攻击流可能被该方法划分到正常空间序列中。
为了验证本发明实施例中异常空间序列提取的准确性,下面实验效果进行说明:
Abilene网第三周数据的26号以及50号OD流,都是以节点2为目的节点的OD流,假设在26号OD流1000-1004个采样点间加入一个5倍于其均值大小的脉冲式DDoS攻击流,而50号OD流流量为原始流量,如图4所示。这种情况下,利用PCA分解所得的异常空间序列如图5所示,可以看出26号OD流的攻击流被划分到了异常空间序列中。如果在此基础上,对50号OD流加入同样持续时间,且5倍于其均值大小的攻击流,如图6所示,两条OD流上加入攻击流的开始时间、持续时间以及幅值上都具有一定的相似性,而对这两条加入了相似攻击的OD流进行PCA分解的结果如图7所示,可以看出,在1000采样点位置附近,这两条OD流上的异常并没有划分到异常空间序列中,反而因为具有一定的时间相关性,被错误划分到正常空间序列中。
图8a和图8b分别示出了采用本发明实施例提取的26号、50号OD流的异常空间序列示意图,可以看出在攻击发生位置均准确地提取到了攻击流的相似性变化特征,这种相似特征的存在具有强相关性。图9为依据本发明实施例对第三周26号、50号OD流加入DDoS攻击后的全局相关系数示意图,可以看出,在1000采样点位置,全局相关系数数值突变,急剧增长接近1,准确地反映了图8a和图8b所示的异常空间序列,在1000采样点位置附近,所包含的异常空间序列之间的强相关性。
为了进一步验证本发明实施例对DDoS攻击的检测效果,可以在采集到的数据中分别注入非周期性和周期性的DDoS攻击流,在注入攻击流时,依照以下原则:注入攻击流大小与正常的OD流的均值成正比;注入的攻击流在时间域上不表现出明显的攻击痕迹;不在同一时间注入。
例如,对于第6周数据中注入非周期性DDoS攻击,以节点4为受害者前端路由器所连接的PoP节点,76、88、100、112和136号OD流以该节点作为目的端,分别在400、900和1600时刻点附近随机选择一个异常注入点,分别注入:白噪声、增速攻击、匀速攻击,每种攻击的持续时间是100个采样点。图10a示出了第六周的112号OD流注入非周期攻击前的流量示意图,图10b示出了第六周的112号OD流注入非周期攻击后的流量示意图。图11a示出了第六周的124号OD流注入非周期攻击前的流量示意图;图11b示出了第六周的124号OD流注入非周期攻击后的流量示意图。
图12示出了本发明实施例对上述非周期DDoS攻击的检测结果。其中,直线01表示报警门限(取α=3),曲线02为正常流量直接求取全局相关系数,曲线03为正常流量求取预测差后的相关系数即异常空间序列的相关系数。该图可以直观显示:曲线02大部分在报警门限上方,很明显未能去除正常空间的相关性;曲线03与曲线02相比,具有以下特点:(1)波动程度小,这是因为通过将预测值与实际值相减及异常空间序列的提取,减小了正常流量相关性对结果的影响;(2)出现一个整体下移现象,且相关系数数值上的相对大小信息仍然得到保留,这一点可以说明,预测误差的存在对检测结果并不存在较大影响;(3)注入攻击前后变化剧烈,在攻击注入前,曲线03变化缓慢,波动很小,攻击注入后,曲线03变化剧烈,在对应的攻击注入位置均超过报警门限,三种攻击均被检测出。
对第17周数据中注入周期性DDoS攻击,在76、88、100、112、124和136号OD流的400、800和1400时刻点附近随机选择一个异常注入点,分别注入周期性增速攻击、中频周期攻击和高频周期攻击,每种攻击的持续时间是100个采样点。图13a和图13b分别示出了第17周的76号OD流注入周期性攻击前后的流量示意图;图14a和图14b分别示出了第17周的124号OD流注入周期性攻击前后的流量示意图。检测结果如图15所示,从图中可以看出,在加入了攻击位置的相关系数都发生了明显变化,三种攻击都没成功检测出。
从上述描述可以看出,本发明实施例与现有技术相比,具有以下优点和特点:
1、通过求取OD流预测值与实际值的差值提取异常空间序列,克服了PCA方法无法检测相关攻击流的问题;
2、针对DDoS攻击流在空间分散但是具有强相关性的特点,采用多个OD流异常空间序列的相关性分析后,进行检测,能够检测出单条流量上幅值很小的攻击流;
3、与现有的基于PCA的多数全局检测方法只能进行集中式计算相比,本发明实施例可以从局部节点进行计算,有助于减轻中心节点的工作负担,提高整个检测过程的计算速度,降低局部节点与中心节点间的通信负载。
针对上述方法部分的实施例,本发明同时还公开了一种分布式拒绝服务攻击的检测系统。
请参考图16,为本发明一种分布式拒绝服务攻击的检测系统实施例一的结构示意图。
本检测系统包括异常空间序列提取单元111、第一计算单元112、信息获取单元113、第二计算单元114和信息处理单元115。
其中:
所述异常空间序列提取单元111和第一计算单元112设置在网络的各局部节点10上,也即:网络中每个局部节点10均包含所述异常空间序列提取单元111和第一计算单元112。
所述异常空间序列提取单元111,用于提取以本节点为目的端的各OD流的异常空间序列。
所述第一计算单元112,用于计算所述各OD流的异常空间序列之间的相关系数。
所述信息获取单元113、第二计算单元114和信息处理单元115设置在网络的中心节点20上。
所述信息获取单元113,用于获取各局部节点计算得出的相关系数。
所述第二计算单元114,用于依据所述信息获取单元113获取的相关系数,计算全局相关系数。
所述信息处理单元115,用于获取所述第二计算单元114的计算结果,将其与预设报警门限进行比较,并当计算结果大于所述报警门限时,确认发生攻击,进行报警。
本发明实施例的工作原理和工作过程如下:
各局部节点10中的异常空间序列提取单元111提取以本节点为目的端的各OD流的异常空间序列,并由所述第一计算单元112计算所述各OD流的异常空间序列之间的相关系数。中心节点20中的信息获取单元113获取各个局部节点计算得出的相关系数,由所述第二计算单元114计算出全局相关系数,然后由信息处理单元115将该全局相关系数与预设报警门限进行比较,并当计算结果大于所述报警门限时,确认发生攻击,进行报警。
所述第二计算单元114计算全局相关系数的过程请参考前文方法部分的相关描述。
图17示出了本发明一种分布式拒绝服务攻击的检测系统实施例二的异常空间序列提取单元的结构示意图。
所述异常空间序列提取单元111包括:
第一处理单元1111,用于依照预先建立的时间序列模型对各OD流下一时刻的流量进行预测,得到预测值;
第二处理单元1112,用于将所述预测值与实际值的差值确定为可能包含攻击的异常空间序列,并进行提取。
具体的提取过程可参照前文方法部分的描述。
图18示出了本发明一种分布式拒绝服务攻击的检测系统实施例三的第一计算单元112的结构示意图。
所述第一计算单元112包括:第一计算子单元1121和第二计算子单元1122。
其中:
所述第一计算子单元1121,用于计算任意两条OD流异常空间序列的相关系数。
所述第二计算子单元1122,计算所述相关系数的平均值,将其确定为所述目的端相同的各OD流的异常空间序列之间的相关系数。
具体的过程可以参照前文方法部分的相关描述。
在另外的实施例中,所述第一计算单元112计算目的端相同的OD流的异常空间序列之间的相关系数的具体方式可以通过K-L变换进行,也即通过K-L变换提取多条OD流异常空间中的强相关部分作为全局相关系数。具体过程可以参照前文方法部分的相关描述,在此不再赘述。
本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。