一种基于混沌理论分析的DDoS攻击检测方法与流程

文档序号:19383139发布日期:2019-12-11 00:37阅读:195来源:国知局
一种基于混沌理论分析的DDoS攻击检测方法与流程

本发明属于网络攻击检测技术,尤其涉及一种基于混沌理论分析的ddos攻击检测方法。



背景技术:

ddos攻击过程大致分为以下步骤:

(1)收集主机的信息:目标主机是指在一定范围内那些自身防御能力低下的主机,收集主机信息的过程主要是获取那些可以被感染的目标主机的重要信息,例如,目的网络主机端口对外开放情况、ip地址以及带宽容纳能力等。(2)找寻受害主机:感染受害主机的方式多种多样,大都通过端口扫描方式找到那些有配置错误、系统防护力弱的主机作为首要感染者。同时那些少更新、少维护的网络主机也是攻击者寻找的最佳感染目标。(3)控制受害主机:当受害的网络主机被攻击者感染后,攻击者会在被感染主机上安装控制软件,方便攻击者日后发送命令,同时攻击者以同样手段不断地扩大自己的控制范围。从而,攻击者的势力范围和攻击规模亦随之扩大。(4)发动网络攻击:攻击者为了更好的隐藏自身位置,最大程度上降低被追踪与识别到的概率,将整个攻击过程大致分为两部分:首先向所控制的傀儡机发送特定的攻击命令;其次由傀儡机执行命令,在规定的时间内,向目标服务器发送大量的具有虚假源ip地址的非法连接请求报文。这些非法连接会占用目标服务器的绝大部分资源,甚至将半连接队列塞满,直至目标服务器不能对正常用户的合法连接请求做出响应,最终致使目标服务器崩溃。

ddos攻击还可按照攻击流的速率分类,可以分为恒速攻击和变速攻击,变速攻击又可以进一步分为增速攻和波动速率攻击。波动速率攻击的极端形式是脉冲式攻击,如果所有攻击代理都同时产生脉冲行为,则受害系统经历的式周期性的服务中断。

对于ddos检测,大多现有的入侵检测系统(如:bro、snort等)根据检测特定端口、标志位、数据内容等攻击特征来检测攻击。这种方式的主要优点是误判率低,但面对新型态或是变型的攻击行为,则完全无法识别出来。这种检测方式就如同我们现在所用的防毒软件的病毒检测技术一样,采用病毒规则对比的方式,但缺点是必须依赖定期的更新病毒规则,才能防御新型态或变型的病毒。同理此种特征对比的检测技术也是一样需要经常更新特征库,才能检测出新的攻击。

如今ddos攻击工具的泛滥以及攻击手法的层出不穷,如果一味地依赖更新规则库的方式来保护系统,那么在安全防护的效果上就会大打折扣了。这就要求检测算法具有智能性,能够自我学习网络特性,自动更新防御规则,能够实现对即将出现的攻击具有抵御能力。近几年有许多的研究采用人工智能或数据挖掘等技术以达到更佳的检测效果,目前的研究成果已显示其在检测入侵方面的潜力,但检测率和误报率方面还有提升的空间。防御ddos攻击靠的是高准确率的检测以及全网络的安全部署。社会上的ddos防御厂商虽已经有了许多优秀的产品面世,例如思科的riverheadddos防御系统和绿盟的“黑洞”,但厂商们多各自研究攻击检测算法和防御手段,而且对其技术严格保密,没有公开的技术文档,造成全球防御ddos能力的整体水平参差不齐,且影响了整个网络抵御ddos的能力。因此,在智能算法对ddos攻击检测方面,还有许多值得探讨的课题,并且研究成果能提升ddos检测能力的整体水平,加快全球防御ddos技术的发展。通过对ddos攻击进行分类,大部分攻击流从单个数据讲,并无明显恶意特征,甚至貌似合法正常请求,因此在检测上具有很大难度。目前对ddos攻击的检测已引起广泛关注,但仍然缺少行之有效地解决方案来杜绝或降低所带来的危害,其根本原因主要在于:

(1)首先是其存在的主要背景:internet的设计原则与网络协议不完善性。internet设计原则遵循了“边缘论”设计原则,internet中间传输网络尽量简单,除了保存一些必要的路由状态外,基本不保存任何状态,仅仅根据目的地址转发报文,网络中复杂和智能的部分都尽量集中到网络的边缘和端系统。这种“无状态(stateless)”的特性使得管理人员很难对网络行为进行有效的监督和审计,也就使得ddos攻击有机可乘。另外,不断暴露出的网络协议漏洞,给攻击者们提供了更多的机会发动攻击,达到恶意目的。这些背景上存在的问题都不是短时间内可以解决的。

(2)其次是攻击工具不断演变:随着网络用户的增加和普及,发起这种破坏性极强的攻击变得越来越容易,相关攻击工具,如trinoo、tfn、stacheldraht、trinity在网络上随处可以下载,且使用方便,即使是一个普通用户也能轻易地发动攻击。新的攻击手段不断被研究出来,可以绕过旧的安全检测系统,而新的安全措施又被开发出来对付它,这样不断对抗的过程使ddos攻击技术不断演变,呈现出新的特点。例如近几年蠕虫(worm)病毒的肆虐就为ddos攻击创造了便利条件,大大缩短了ddos攻击的准备时间,为攻击者提供更广的发动平台。



技术实现要素:

本发明要解决的技术问题是:提供一种基于混沌理论分析的ddos攻击检测方法,以解决现有技术存在的ddos攻击由于大部分攻击流从单个数据讲,并无明显恶意特征,甚至貌似合法正常请求,因此在检测上具有很大难度;目前对ddos攻击的检测缺少行之有效地解决方案来杜绝或降低所带来的危害等技术问题。

本发明的技术方案是:

一种基于混沌理论分析的ddos攻击检测方法,它包括:

步骤1、收集信网络流量数据,并对收集的流量数据进行预处理;

步骤2、采用时间序列模型中序列预测算法建立网络正常流量模型;

步骤3、将网络流量正常模型与网络流量测量值进行作差得到相应的新序列,从而得到网络流量的异常子序列;

步骤4、采用混沌理论中的李雅谱诺夫指数分析异常子序列,判断当前时刻系统的状态;

步骤5、若发生ddos攻击,则当前系统是非混沌的,李雅谱诺夫指数小于0;

步骤6、若未发生ddos攻击,则当前系统是混沌的,李雅谱诺夫指数大于等于0。

所述对收集的流量数据进行预处理的方法为:

计算在一个时间范围tk内的平均序列

式中:xn表示n时刻的流量数据,

那么整个流量序列表示为:x1,x2,...,xk,...,xn。

网络正常流量模型的建立方法包括:

所述建立网络正常流量模型,即建立网络流量的预测序列,采用

了ar自回归模型,然后用ar中的线性预测算法plc来得到预测序列:

ar自回归模型如下:

式中s(n)为初始序列,p为预测阶数,为预测序列;

在t时刻的预测值根据t时刻之前的数据得出,其中ai为预测系数;

通过寻找一组使预测误差值的输出功率最小的ai,来得到预测序列;

由已知信号直接求出一组预测系数a1,a2,...,ap,这组预测系数就被看做信号产生模型中系统函数h(z)的参数,它使得在一段信号波形中均方预测误差最小;理论上用的是均方误差e[e2(n)]最小的准则,e[·〕表示对误差的平方求数学期望或平均值;要得到使e[e2(n)]最小的ak,可将e[e2(n)]对各个系数求偏导,并令结果为零即

将公式10带入公式9可以得到:

-2e[e(n)s(n-k)]=0,k=1,2,...,p(11)

将e(n)展开得:

令s(n)的自相关序列为:

r(k)=e[s(n)s(n-k)](13)

由于自相关序列为偶对称,因此

r(k)=r(-k)=e[s(n)s(n+k)](14)

所以式12可表示为:

p个预测系数a1,a2,...,ap通过上式求出;plc得到的矩阵如下:

矩阵中r(k)=s(n)*s(n-k),称之为s(n)的自相关系数;ep为预测误差值的最小功率;式中e(p)与e(p-1)存在迭代关系;通过线性递推的方法求解此矩阵,即可得到预测系数,从而生成网络流量的预测序列。

得到网络流量的异常子序列的方法为:

获取预测误差值:

式中用表示预测序列xn;

预测误差值即异常子序列也就是异常流量;一个网络的实际流量表示成正常流量与异常流量的和,即

采用混沌理论中的李雅谱诺夫指数分析异常子序列判断当前时刻系统的状态的方法包括:

建立公式:λk≈{ln(δxk/δx0)}/tk

根据λk的正负判断异常子序列的混沌性;

若λk>0,则{δxk}是混沌的,说明是正常流量进入系统引起了流量变化,没有ddos攻击流量,没有发生ddos攻击;

若λk=0,则{δxk}持一个平稳状态,说明系统中没有新的流量进入,也没有发生ddos攻击;

若λk<0,则{δxk}不再是混沌的;则说明流量的变化是由于ddos攻击流量进入系统,发生了ddos攻击。

本发明有益效果:

本发明基于混沌理论分析的ddos攻击检测方法:

ddos攻击的特性总结起来大概有如下特点:首先,攻击的发起者通常为一个或者少数几个;攻击的实施者为大量的“肉鸡”或者僵尸网络;攻击的承受者为一个或者少数几个(通常是服务器)。正是由于以上特性,ddos在攻击过程中网络流量的变化会表现出很强的目的性和确定性。

网络异常流量在时间序列模型中表现为时间序列的预测误差值,即网络实际流量和我们估计的流量的误差。此误差的产生可能是由于正常流量变化引起,也可能是ddos的攻击引起。正常状态(指未发生ddos攻击)下网络异常流量通常为白噪声,表现出一种无目的性和随机性。在本方法的分析过程中,把正常状态下的网络异常流量看作混沌的。当ddos攻击发生时,网络流量变化会表现出很强目的性和确定性,这时可以把网络异常流量看作非混沌的。

那么,为什么可以把正常状态下的网络异常流量看作混沌的?首先,混沌是指一个确定系统对它的初始状态具有敏感的依赖性,从而在系统中出现一种内在的随机性。混沌理论揭示了一类确定性复杂系统中具有的不确定行为的本质。混沌是耗散(详见第二章2.5小节)和非线性相互作用的结果,由于耗散的作用,混沌系统在整体上和大范围内表现为稳定和相体积的收缩,而非线性作用的结果使轨道局部不稳定,这种不稳定性又使轨道局部分离,整体的稳定和局部的不稳定形成了混沌系统的奇异行为,从而最终表现出复杂的运动形态和无穷层次的自相似结构。

网络系统中存在着丰富的非线性动力学特性和自组织时空有序形态。作为一个高度非线性、开放的、耗散与非平衡的复杂系统,网络实质上是一个耗散系统,从理论上来说网络环境下的海量信息组成的动力系统应该具有混沌系统的特征。

混沌分析法正是根据以上前提,利用混沌的性质判断网络异常流量的混沌性,从而实现检测ddos攻击的。

本发明基于对网络异常流量进行收集与预处理,结合现有混沌理论中lyapunov指数分析方法提出了一种网络分布式异常行为检测方法,其中以ddos攻击方法为例,简要来说,应用混沌理论作分析时,本发明将由正常行为引起的网络异常流量看作混沌的,ddos攻击流量进入系统后会破坏混沌状态,从而能够实现对ddos攻击的检测,进而能够扩展到其他网络分布式异常行为的检测当中。

解决了现有技术存在的ddos攻击由于大部分攻击流从单个数据讲,并无明显恶意特征,甚至貌似合法正常请求,因此在检测上具有很大难度;目前对ddos攻击的检测缺少行之有效地解决方案来杜绝或降低所带来的危害等技术问题。

附图说明

图1是本发明流程示意图;

图2是具体实施方式中初始流量示意图;

图3是具体实施方式中预处理流量示意图;

图4是具体实施方式中预测流量示意图;

图5是具体实施方式中预测流量和实际流量对比示意图;

图6是具体实施方式中异常流量示意图。

具体实施方式

本发明利用网络数据信息的可读文件,构建出网络正常流量模型,进而设计了基于混沌理论的网络分布式异常行为检测算法,流程如下:

1、收集大规模通信网络流量数据,并根据研究的需要对此流量信息进行预处理。

2、采用时间序列模型中序列预测算法建立网络正常流量模型。

3、将预测得到的网络流量正常模型与网络流量测量值进行作差得到相应的新息序列,从而得到网络流量的异常子序列。

4、采用混沌理论中的李雅谱诺夫指数分析异常子序列,检测当前时刻来系统是混沌的还是非混沌的。

5、若发生ddos攻击,当前系统是非混沌的。李雅谱诺夫指数小于0。

6、若未发生ddos攻击,当前系统是混沌的。李雅谱诺夫指数大于等于0。

网络流量的收集和预处理

流量的收集和预处理是整个发明的前提准备工作。我们采用了时间序列来表示网络流量的发生状态,如果用xn来表示n时刻的流量数据,那么整个流量序列可以表示为:x1,x2,...,xk,...,xn,初始流量有很多尖锐的“突刺”;为了抑制流量的突发性,得到一个相对稳定的结果,我们对流量进行预处理,在这里我们计算在一个时间范围k内的平均序列:

处理后的流量已经没有了“突起”,变得连续易于分析;同时预处理后的流量还比较真实的反应了流量的变化趋势。

建立网络流量的正常模型

得到预处理的序列,接下来需要建立流量的正常模型。建立网络的正常模型,即建立网络流量的预测序列。在这里我们采用了ar自回归模型,然后用ar中的线性预测算法(plc)来得到预测序列。

ar模型如下:

式中s(n)为初始序列,p为预测阶数,为预测序列。

ar模型的基本思想是:在t时刻的预测值可以根据t时刻之前的数据得出,其中ai为预测系数。

plc算法是计算ar模型预测序列的一种方法,它的基本思想是通过寻找一组使预测误差值的输出功率最小的ai,来得到预测序列。

线性预测的基本问题就是由已知信号直接求出一组预测系数a1,a2,...,ap,这组预测系数就被看做信号产生模型中系统函数h(z)的参数,它使得在一短段信号波形中均方预测误差最小。理论上常用的是均方误差e[e2(n)]最小的准则,e[·〕表示对误差的平方求数学期望或平均值。要得到使e[e2(n)]最小的ak,可将e[e2(n)]对各个系数求偏导,并令其结果为零。即

所以将公式10带入公式9可以得到:

-2e[e(n)s(n-k)]=0,k=1,2,...,p(11)

式2-5被称为正交方程。

将e(n)展开得:

令s(n)的自相关序列为:

r(k)=e[s(n)s(n-k)](13)

由于自相关序列为偶对称,因此

r(k)=r(-k)=e[s(n)s(n+k)](14)

所以式12可表示为:

这样,p个预测系数a1,a2,...,ap通过上式可以求出。plc得到的矩阵如下:

矩阵中r(k)=s(n)*s(n-k),称之为s(n)的自相关系数。ep为预测误差值的最小功率。式中e(p)与e(p-1)存在迭代关系。通过线性递推的方法求解此矩阵,即可得到预测系数,从而生成网络流量的预测序列。

获取网络流量的异常子序列

在上一节中,用xn来表示的序列预测序列可以用表示,这样,预测误差值可以表示为:

预测误差值即异常子序列也就是我们所说的异常流量。这里也可以注意到,一个网络的实际流量可以表示成正常流量与异常流量的和,即

但不能判断该异常流量是由正常操作引起还是由ddos引起。因此还需要进一步分析。

应用混沌理论来分析异常子序列

对异常子序列进行混沌分析,大致流程如下:首先基于混沌的知识可以认定,由正常流量引起的异常子序列是混沌的,由ddos攻击流量引起的异常子序列是非混沌的。然后应用混沌的知识,判断我们得到的异常子序列的混沌性,从而检测ddos攻击。

本节主要介绍如何判断一个序列的混沌性。在前面介绍混沌理论时我们已经提到过,混沌系统的最重要特征就是对初值的敏感依赖性。在任意系统中,对于于初值非常接近的两条轨迹,在一段时间后会以lyapunov指数的方式分离。当lyapunov指数小于等于0,代表轨迹的相位置呈收缩的状态,系统最后会归于“静止”,也就是说系统对初值不敏感,因此系统是非混沌的。当lyapunov指数大于0,轨迹是的相位置是发散的,系统是混沌的。

lyapunov指数可以表示为:

λk≈{ln(δxk/δx0)}/tk公式3-1

在网络流量混沌性的研究过程中,我们可以根据λk的正负判断异常子序列的混沌性。

若λk>0,则{δxk}依然是混沌的。这就意味着是正常流量进入系统引起了流量变化,没有ddos攻击流量,没有发生ddos攻击。

若λk=0,则{δxk}持一个平稳状态,这意味着系统中没有新的流量进入,当然也没有发生ddos攻击。

若λk<0,则{δxk}不再是混沌的,这就意味着流量的变化是由于ddos攻击流量进入系统,这里发生了ddos攻击。

lyapunov指数在分析过程中的实际物理意义

lyapunov指数是基于混沌理论的ddos攻击方法检测的关键,关于它的数学意义,在第二章已有详述。但如何理解lyapunov指数在网络流量中的物理意义,这会在本小节说明。

lyapunov指数可以表示为:λk≈{ln(δxk/δx0)}/tk,它表示了实际流量和预测正常流量的误差在经过时间k的时候的指^数分离情况,在此公式中δxk是我们之前说的预测误差值,δxk=xk-xk。

该指数在运用仿真过程中的难点是δx0的实际物理意义。按照数学意义类推的话δx0应该为实际流量和预测流量初值的误差。即但对于一个预测序列中的某一个数是由t时刻之前的数决定的。t0是序列的开端,因此从理论上说是不存在的。

经过考虑,本发明虑一个流量序列的获取,在t=0时开始获取,在t=n时结束。但整个网络系统的流量绝不是从t=0开始,而是在这很早之前。所以我们只需选取t=0的位置就可以预测本发明是从所有序列的第五个数开始作为零点的。这样的话流量序列变成了x-4,x-3,x-2,x-1,x0,x1,x2,...,xn。这样有了实际的物理意义。

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