首页> 中国专利> 一种应用层DDoS分布式拒绝服务攻击防御方法

一种应用层DDoS分布式拒绝服务攻击防御方法

摘要

本发明涉及一种应用层DDoS分布式拒绝服务攻击防御方法,它的方法易于实现,时间复杂度低,准确度高,而且对用户透明,不影响用户访问。它分两个阶段:训练阶段和工作阶段,训练阶段使用真实的合法访问流量作为训练数据,生成基准矩阵用于工作阶段的实时检测与保护,该应用层DDoS设备需串联部署在应用服务器前,使来访流量在进入服务器前先经过防御设备的过滤。

著录项

  • 公开/公告号CN102638474A

    专利类型发明专利

  • 公开/公告日2012-08-15

    原文格式PDF

  • 申请/专利权人 山东大学;

    申请/专利号CN201210139585.6

  • 发明设计人 王风宇;鄢海涛;林丰波;陈传通;

    申请日2012-05-08

  • 分类号H04L29/06(20060101);

  • 代理机构37221 济南圣达知识产权代理有限公司;

  • 代理人张勇

  • 地址 250061 山东省济南市历下区经十路17923号

  • 入库时间 2023-12-18 06:16:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-27

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20140917 终止日期:20160508 申请日:20120508

    专利权的终止

  • 2014-09-17

    授权

    授权

  • 2012-10-03

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20120508

    实质审查的生效

  • 2012-08-15

    公开

    公开

说明书

技术领域

本发明涉及一种计算机网络安全技术,尤其涉及一种应用层DDoS分布式拒绝服务攻击 防御方法。

背景技术

应用层DDoS攻击近年来逐渐流行,与传统的网络层DDoS类似,应用层DDoS攻击也是 以受害端无法对外提供服务为目的,但二者在实现上又有明显区别。与网络层DDoS相比, 应用层DDoS攻击的报文数据与正常通信无异,不具备传统DDoS攻击的统计特性,因此网络 层DDoS防御算法无法应对应用层DDoS攻击。

Kandula等[Srikanth Kandula,Dina Katabi,Matthias Jacob,Arthur B.Botz-4-sale:surviving  organized DDoS attacks that mimic flash crowds.Proceedings of the 2nd conference on Symposium  on Networked Systems Design&Implementation-Volume 2]设计了一种基于“Puzzle”的检测与 防御机制,当怀疑发生DDoS攻击时,要求用户回答一些简单的问题以判断对方是否为正常 用户,但该方法需要用户参与,对合法用户的访问造成一定干扰。Walfish等[Walfish M, Vutukurum,Balakrishnan H,etal.DDos Defense by Offense.Proc.Of SIGCOMM′06(2006)301-312 pages]提出“Speak out”策略,当DDoS发生时,受害主机要求所有客户端都增大带宽,此方 法假设攻击端采用尽力攻击的方式,已用完了可用带宽,只有合法用户才能增大带宽。该方 法局限性明显,可能会使链路带宽更紧张,以致影响到网络的其它部分。Ranjan等[Ranjan S, Swaminathan R,Uysal M,et al.DDos-resilient scheduling to counter application layer attacks under  imperfect detection.Proceedings of IEEE INFOCOM,Ba rcelona,Spain,2006.4]提出控制HTTP请求 速率的方法来防御DDoS,主张利用统计方法提取HTTP会话特征并判断每个会话的异常性, 然后通过控制HTTP速率来抵抗DDoS攻击,但该方法需要得到客户端的支持,且可能会干扰 用户的正常浏览。

国防科技大学Yu Jie等[Jie Yu,Zhoujun Li,Huowang Chen,et al.A Detection and Offense  Mechanism to Defend Against Application Layer DDos Attacks.Third International Conference on  Networking and Services(ICNS′07).DOI:10.1109/ICNS.2007.5]将应用层上的DDoS攻击进行抽象 建模,并提出了在受害主机端建立攻防结合的防御机制DOW,结合异常检测方法与代价方法 来减少攻击会话速率、攻击请求速率和高工作量请求的比重。Yu Jie等[Jie Yu,Fangfang Cheng, Liming Lu,et al.A Lightweight Mechanism to Mitigate Application Layer DDos Attacks.Proceedings  of Infoscale′09 2009.]还提出了使用轻量级信任管理机制来防御DDoS攻击的方法,模拟仿真表 明,该机制具有较低的漏报率,能够大幅提高合法用户请求获得服务的概率。中山大学谢逸 [Xie Y,Yu SZ.A novel model for detecting application layer DDoS attacks.In Proc.First International Multi Sympo Siumson Computer and Computational Sciences(IMSCCS.06).2006.56-63pages.]等 提出基于用户浏览行为的统计异常检测,算法用隐半马尔可夫模型来模拟合法用户,如果来 访用户的行为与模拟的合法用户行为有差异,则认为该用户异常,但该方法模型参数的选取 会极大地影响检测率和误报率,在实际的环境中应用比较困难。江南大学嵇海进[嵇海进,蔡明. 基于可信度的应用层DDoS攻击防御方法.计算机工程与设计,2007.19(28),4619-4621]等提出 基于可信度的应用层DDoS攻击防御方法,该方法从客户端请求的发送速度、响应请求需使 用的资源量两个角度来定义客户请求的可信度,优先服务高可信度的用户但同时也照顾低可 信度的用户,该方法不能准确界定和屏蔽攻击源,只是降低为可疑者服务的质量,存在误判 的问题,而且随着攻击源的增加,攻击者仍然能达到目的。中科院肖军[肖军,云晓春,张永铮. 基于会话异常度模型的应用层分布式拒绝服务攻击过滤.计算机学报,2010.33(9). DOI:10.3724/SP.J.1016.2010.00000]等提出利用应用层信息建立访问行为异常属性和会话异常 度模型,利用此模型区分合法与非法用户,并将模型与不同的转发策略结合,获取最好的转 发性能。

目前已有的应用层DDoS防御方法,或多或少都存在一定问题。有的方法时空复杂度较 高,难以在生产环境中运行,例如基于DOW模型或统计异常检测模型的算法;有的方法会 影响到网络正常运行,代价较高,如“Speak Out”策略;有的方法会影响到用户的浏览体验, 如“Puzzle”机制。

发明内容

本发明的目的就是为解决上述问题,提供一种应用层DDoS分布式拒绝服务攻击防御方 法,它的方法易于实现,时间复杂度低,准确度高,而且对用户透明,不影响用户访问。

为实现上述目的,本发明采用如下技术方案:

一种应用层DDoS分布式拒绝服务攻击防御方法,它分两个阶段:训练阶段和工作阶段, 训练阶段使用真实的合法访问流量作为训练数据,生成基准矩阵用于工作阶段的实时检测与 保护,该应用层DDoS设备需串联部署在应用服务器前,使来访流量在进入服务器前先经过 防御设备的过滤,其具体步骤为:

1)训练阶段

1-1)取高峰时段服务器的正常访问流量作为训练数据,仅需客户端至服务端的流量即可; 此时准备两个1000×1000的全0矩阵S、M;

1-2)当来访流量到达时,按照四元组对流量进行分类,四元组相同的归入同一个流,其 中四元组为:源IP地址、目的IP地址、目地端口、协议号;

1-3)忽略无上层协议负载的数据包,仅处理带上层协议数据的数据包(下文称之为请求数 据包),记录下包长和到达时间,计算与前一请求数据包之间的时间间隔,判断是否满足归一 化要求,即是否已捕获了属于同一流的3个数据包(请参见图1:归一化示意图),如满足则 进行下一步;否则返回步骤1-2);

1-4)对请求数据的包长和时间间隔进行归一化处理,如下:

设p为客户端向服务端发出的请求数据包,Δt为各请求报文到达服务端的时间间隔,n 为请求数据包的总个数,则一个流可记为:

F=(pi,Δti){1≤i≤n,n=count(pi)}    (1)

由于本方法不考虑报文内容,仅使用数据包长度和到达时间间隔,因此设报文长度 li=lengt(hpi),公式(1)可改写为:

F=(li,Δti){1≤i≤n,n=count(pi)}    (2)

通过公式(2),将客户端发往服务端的请求数据包序列映射为包长和时间间隔序列。下面 对这个包长和时间间隔序列做归一化处理,公式如下:

Xj=Norm(li)*100+Norm(li+1)*10+Norm(li+2)Yj=Norm(Δti)*100+Norm(Δti+1)*10+Norm(Δti+2)

(3)

其中,Norm()为归一化函数,li为一次归一化处理中的第1个请求数据包长度,li+1为第2 个请求数据包长度,li+2为第3个请求数据包长度;Δti为第1个请求数据包与其前一包的时间 间隔,Δti+1为第2个请求数据包与第1个请求数据包的时间间隔,Δti+2为第3个请求数据包与 第2个请求数据包的时间间隔,n为属于同一流的请求数据包的总数。Norm()函数可采用均 匀归一化,或按照实际情况取非均匀的归一化;

Xj,Yj分别为数据包长度和时间间隔在归一化处理后得到的值,从公式(3)可以看出,Xj和 Yj的值均位于(0,999)区间。

1-5)将(3)式得到的每一组节奏值(Xj,Yj)视为1000X1000矩阵S中的元素下标,由此将请求 报文节奏映射到矩阵上;矩阵初始值为0,每当求得报文节奏(Xj,Yj)时,矩阵S在(Xj,Yj)处的元 素值加1;设单位时间t内报文节奏在矩阵元素(i,j)处的值为C(i,j),则该处的落点速度为:

S(i,j)=C(i,j)/t    (4)

称在单位时间(内形成的矩阵为节奏速度矩阵;

1-6)对k个单位时间的连续数据进行处理,获得矩阵(i,j)处在不同单位时间段内的速度值 (S1,S2……Sk),取

M(i,j)=max1nk(Sn)---(5)

即,取矩阵元素S(i,j)在k个时段内的最大值为矩阵M在(i,j)处的值。如此计算矩阵每个元 素落点速度的最大值,用所有元素的最大值构成一个新的矩阵M,称为最大节奏速度矩阵, 作为工作阶段使用的基准矩阵;

2)工作阶段

2-1)载入训练阶段得到的基准矩阵M,准备一个黑名单列表,用于存放被认定为攻击者 的IP地址;

2-2)捕获数据包,并检查该包的源IP地址是否在黑名单中。如果在,则丢弃该包;如果 不在,则进入下一步;

2-3)重复训练阶段第1-2)~1-5)的算法,获取实时流量在单位时间t内的节奏速度矩阵 S′;

2-4)比较矩阵S′与M各元素的值,如果S′(i,j)>>M(i,j),则判定发生了DDoS攻击,将对应 的下标(i,j)加入可疑点位列表L,转入第2-3)步;否则转入第2-1)步,生成下一个单位时间 的节奏速度矩阵;

2-5)如果列表L不为空,在处理后续请求报文,生成报文节奏时,将生成的节奏值与L 中的值比对,如果节奏值在L中存在,则将该流加权;如果某个流的权值超过阀值,则判定 该流为DDoS攻击流,将源IP地址加入黑名单并丢弃其流量;

2-6)监视每一轮的实时节奏速度矩阵S′,当S′(i,j)<=M(i,j)时,从L中删除(i,j)。

所述步骤2-1)~2-3)中,处理带上层协议数据的数据包时,仅处理TCP负载大于0的数据 包。

本发明的有益效果:

1)、时空复杂度低

本算法时空复杂度低,对硬件环境要求不高。先讨论时间复杂性,算法对到来的数据包 仅处理一次,计算报文长度和到达间隔,然后按4元组进行流分类,可使用hash表实现,复 杂度为O(1);在判断DDoS发生时,需要对比实时生成的速度矩阵与训练出的速度矩阵,但 仅需比较实时速度矩阵中大于0的元素,数量远小于矩阵元素总数,无论如何,其复杂度仍 是常数。

再讨论空间复杂性,在一个计算周期内,算法必须保存用户端的节奏值,用于计算生成 该周期的节奏速度矩阵。本文取计算周期为1分钟,按最大可能值计算,一周期内的客户端 为1万个,每个客户端的节奏值为500个(相当于1500个请求报文),则占用内存值为 10000*500*4Bytes=19MB,加上两个节奏速度矩阵(训练矩阵与实时矩阵)2*1000*1000*4 Bytes=7.6MB,二者合计占用内存27M左右,普通硬件环境即可满足要求。

2)、DDoS判别准确率高,攻击源误识率低

使用多个真实流量数据进行实验,结果证明本算法判断DDoS准确率为100%,对攻击源 的识别准确率也为100%,最大误识率为1.5%。下表是部分实验结果:

附图说明

图1为请求数据包归一化示意图;

图2为本发明的网络部署图;

图3为训练阶段流程图;

图4为工作阶段流程图。

具体实施方式

下面结合附图与实施例对本发明做进一步说明。

图2中,应用层DDoS防御设备即采用本方法的设备,部署在内网出口。外网进入的访 问流量先经过防御设备的保护与过滤,然后可经过防火墙处理,或直接进入应用服务器。

本方法也可直接在防火墙设备中实现,成为防火墙功能的一部分。

本发明的具体步骤为:

1.训练阶段

1-1)、取高峰时段服务器的正常访问流量作为训练数据,仅需客户端至服务端的流量即 可。准备两个1000×1000的全0矩阵S、M;

1-2)、当来访流量到达时,按照四元组(源/目的IP地址、目地端口、协议号)对流量进行 分类,四元组相同的归入同一个流;

1-3)、忽略无上层协议负载的数据包,仅处理带上层协议数据的数据包(下文称之为请求 数据包),记录下包长和到达时间,计算与前一请求数据包之间的时间间隔,判断是否满足归 一化要求,即是否已捕获了属于同一流的3个数据包(请参见图1:归一化示意图),如满足 则进行下一步;否则返回步骤1-2);

1-4)、对请求数据的包长和时间间隔进行归一化处理,如下:

设p为客户端向服务端发出的请求数据包,Δt为各请求报文到达服务端的时间间隔,n 为请求数据包的总个数,则一个流可记为:

F=(pi,Δti){1≤i≤n,n=count(pi)}    (1)

由于本方法不考虑报文内容,仅使用数据包长度和到达时间间隔,因此设报文长度 li=lengt(hpi),公式(1)可改写为:

F=(li,Δti){1≤i≤n,n=count(pi)}    (2)

通过公式(2),将客户端发往服务端的请求数据包序列映射为包长和时间间隔序列。下面 对这个包长和时间间隔序列做归一化处理,公式如下:

Xj=Norm(li)*100+Norm(li+1)*10+Norm(li+2)Yj=Norm(Δti)*100+Norm(Δti+1)*10+Norm(Δti+2)

(3)

其中,Norm()为归一化函数,li为一次归一化处理中的第1个请求数据包长度,li+1为第2 个请求数据包长度,li+2为第3个请求数据包长度;Δti为第1个请求数据包与其前一包的时间 间隔,Δti+1为第2个请求数据包与第1个请求数据包的时间间隔,Δti+2为第3个请求数据包与 第2个请求数据包的时间间隔,n为属于同一流的请求数据包的总数。Norm()函数可采用均 匀归一化,或按照实际情况取非均匀的归一化;

Xj,Yj分别为数据包长度和时间间隔在归一化处理后得到的值,从公式(3)可以看出,Xj和 Yj的值均位于(0,999)区间。

1-5)将(3)式得到的每一组节奏值(Xj,Yj)视为1000X1000矩阵S中的元素下标,由此将请求 报文节奏映射到矩阵上;矩阵初始值为0,每当求得报文节奏(Xj,Yj)时,矩阵S在(Xj,Yj)处的元 素值加1;设单位时间t内报文节奏在矩阵元素(i,j)处的值为C(i,j),则该处的落点速度为:

S(i,j)=C(i,j)/t    (4)

称在单位时间t内形成的矩阵为节奏速度矩阵;

1-6)对k个单位时间的连续数据进行处理,获得矩阵(i,j)处在不同单位时间段内的速度值 (S1,S2……Sk),取

M(i,j)=max1nk(Sn)---(5)

即,取矩阵元素S(i,j)在k个时段内的最大值为矩阵M在(i,j)处的值。如此计算矩阵每个元 素落点速度的最大值,用所有元素的最大值构成一个新的矩阵M,称为最大节奏速度矩阵, 作为工作阶段使用的基准矩阵。

训练阶段的流程图见图3。

2、工作阶段

2-1)、载入训练阶段得到的基准矩阵M,准备一个黑名单列表,用于存放被认定为攻击 源的IP地址;

2-2)、捕获数据包,并检查该包的源IP地址是否在黑名单中。如果在,则丢弃该包;如 果不在,则进入下一步;

2-3)、重复训练阶段第1-2)~1-5)的算法,获取实时流量在单位时间t内的节奏速度矩 阵S′;

2-4)、比较矩阵S′与M各元素的值,如果S′(i,j)>>M(i,j),则判定发生了DDoS攻击,将对应 的下标(i,j)加入列表L,转入第3步;否则转入第1步,生成下一个单位时间的节奏速度矩阵;

2-5)、如果列表L不为空,在处理后续请求报文,生成报文节奏时,将生成的节奏值与L 中的值比对,如果节奏值在L中存在,则将该流加权;如果某个流的权值超过阀值,则判定 该流为DDoS攻击流,丢弃其流量;

2-6)、监视每一轮的实时节奏速度矩阵S′,当S′(i,j)<=M(i,j)时,从L中删除(i,j)。

工作阶段的流程图见图4。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号