程 伟(1.宜宾学院网管中心,四川宜宾644007;2.成都柒零后科技有限公司,四川成都610000)
一种部署在邻近路由器上的DDoS二维防御模型
程伟1,2
(1.宜宾学院网管中心,四川宜宾644007;2.成都柒零后科技有限公司,四川成都610000)
面对DDoS对网络的严重威胁,提出一种二维防御模型来抵御DDoS对网络中主机(主要对象是服务器)的攻击,该防御模型以邻近服务器的路由器为平台,采用双重手段抵御DDoS攻击,从而实现目标服务器的安全保护.该防御模型基于邻近路由器,主要包括两个功能层次:第一层,限流保护层,即限制流向服务器的数据流量;第二层,攻击包筛除层,在限流的情况下,将不符合路由规则的攻击包筛选出来并丢弃,有效地缓解了流向服务器的数据流量,从而保证信道的合理负载及服务器的正常工作.通过仿真和实验,该二维防御模型对DDoS的攻击具有较好的防御效果,能有效地减少流向服务器的攻击包数量,保护目标服务器并使之正常运行.
DDoS;分布式拒绝服务;网络攻击;网络安全
ChengW.Two-DimensionalDefenseModel AgainstDDoSBased on AdjacentRouter[J].Journal of Yibin University, 2015,15(6):70-75.
DDoS(Distributed Denial of Service),即分布式拒绝服务,来源于DoS且在DoS的基础上采用了分布式攻击技术,DDoS可以说是DoS分布式升级版.攻击者在因特网中的多个节点上植入傀儡程序,这些被植入了傀儡程序的节点在攻击者主控端的控制下,同时向网络中的某一攻击目标(攻击目标一般为具有重要作用的服务器,简称目标服务器)发送大量的数据包,这些数据包会导致两方面的严重后果:一方面,攻击者首先将攻击客户端(即傀儡程序)植入因特网的节点上,这些节点可能是一般用户的主机,也可能是服务器,一旦被植入攻击客户端,该节点就成了攻击者的傀儡节点.攻击者发出远程组播攻击指令,傀儡节点收到攻击指令后,便向指令中的目标服务器发送大量的数据包,这些数据包将阻塞连接目标服务器的信道;另一方面,由于这些数据包符合协议规范,从根本上来说是合法的数据包,因此,目标服务器就会对这些数据包进行响应处理,但由于数据量巨大,超过了目标服务器的处理能力,使得目标服务器严重超载而瘫痪,导致合法用户正当的请求服务无法得到响应而超时,即拒绝服务.至此,攻击者的攻击目标实现,其攻击案例屡见不鲜[1-4].因此,DDos成了因特网所面临的一种危害大、防御难、范围广的攻击手段,其攻击原理如图1所示.
图1 DDoS攻击原理示意图
DDoS防御之所以难,是因为它利用了TCP/IP协议本身的安全缺陷,就攻击包本身而言,它是符合协议规范的;对目标服务器来说,这些攻击包也是合法的,从而使得目标服务器义无反顾地处理和响应,致使其因严重负荷而崩溃.显而易见,DDoS攻击成功的根本原因在于数据量庞大,因此不必去分辨攻击包,应重点控制攻击包的流量,只要能将攻击包的流量控制在信道的正常负载范围内,控制在目标服务器的处理能力之内,那么信道就不会被阻塞,目标服务器不会瘫痪且有余力处理合法用户请求.
文献[5]采用了在“节点对”之间进行流量检测的方式,对异常流量进行记录,构建了流量记录矩阵,将流量分为异常流量和正常流量,但是这种方法只能判定是否发生DDoS攻击,没有提出有效的抵御方法.文献[6]中的研究者在骨干网上进行流量分析发现,流量大小相对稳定,一经发现突发性流量暴增,则认为发生了DDoS攻击,其功效和文献[5]一样,且存在误判的可能.但众多的研究者已经发现,对流量的研究有助于找到抵御DDoS攻击的办法.
此外,还有研究者致力于DDoS攻击包的检测研究,在文献[7]中,采用对包的长度、包头信息、协议等进行对比,从而判别出攻击包,这种方法存在不可忽略的误差.文献[8]路径认证PI(path identification)技术要求数据包携带路径中的各节点指纹,从而通过指纹来判定该包是否为攻击包,但是这种方法的开销大.显然,攻击包的检测也是DDoS的另一研究热点.
流量控制和攻击包检测都是有效的方法,应充分发挥这两类研究方法的优势,因此,在文中,提出了一种全新的防御模型,该模型基于流量控制和攻击包检测筛除的双重策略,从两方面对DDoS进行抵御,故称之为二维防御模型.
1.1模型的结构
二维防御模型的结构简单,避免了结构复杂带来的内耗和开销,主要包含两个功能层:第一层为限流保护层,负责对流向目标服务器的数据流量进行合理限制;第二层为攻击包筛除层,在限流保护后,启动包筛除功能,从进入邻近路由器的流量中,判定出攻击包并筛除,如图2所示.
1.2模型的基本原理
该模型工作在邻近目标服务器路由器上(以下简称邻近路由器),邻近路由器是目标服务器的最后屏障,所有数据包的转发都通过邻近路由器完成,是流向目标服务器的数据转发中心,因此,二维防御模型的工作平台为邻近路由器.其工作的基本原理如图3所示.
图3 二维防御模型的工作原理示意图
在限流保护层,通过检测进入邻近路由器的流量进行采样,根据采样信息判定是否限流,如果达到限流条件,则启动限流保护,否则继续循环采样.在限流后,再对所有通过邻近路由器流向目标服务器的数据流进行攻击包判定,符合筛除条件的则被认为是攻击包而被筛除,符合不筛除条件的数据包被转发到目标服务器.攻击包筛除层和限流保护层的协同处理降低了流向服务器的流量,避免了信道的阻塞和服务器的瘫痪,能有效抵御DDoS的攻击.
从图3可以看出,二维防御模型主要有两个功能模块,即限流保护层和攻击包筛除层.二者既各司其职,又协同统一地完成DDoS的防御任务.
2.1二维防御模型的限流保护
限流保护的首要条件是确定限流的标准,即,在单位时间内,通过邻近路由器流向服务器的流量是否达到上限极值,该极值为阈值,超过该阈值,目标服务器便会因超载而瘫痪;低于阈值,数据流量处于服务器正常处理范围内,服务器便保持正常的工作状态.
2.1.1流量阈值的获取
阈值是该防御模型启动限流保护的关键指标,阈值的设定必须以目标服务器的实际处理能力为第一要素,文献[8]中采用了统计历史数据流量的方法来判定DDoS攻击,该方法对于判定DDoS攻击具有较好的作用,但是存在大数据访问的误判,即不能区分突发的大数据访问和DDoS攻击.
在该防御模型中,为了获得流量阈值,采用了模拟DDoS攻击的方式,检测出服务器能承受的极限数据流量.在模拟DDoS攻击方法中,以目标服务器为攻击目标,对其进行DDoS攻击,直到目标服务器的内存、CPU等核心设备达到极限处理能力时,记录下目标服务器能处理的最大数据流量值,该流量值便是服务器的限流阈值J,它是防御模型进行限流保护的唯一依据.
2.1.2模型的限流保护
根据图3,L是每次测得的经过邻近路由器流向服务器的实际流量值;J是服务器的流量阈值,超过该值,服务器就超载,低于该值,服务器就能正常处理数据包;d是误差常量,它的取值由阈值决定,小于等于阈值的10%,也可以根据具体的需要进行设置,它的存在是为了保证攻击包的流量永远达不到阈值,因为一旦达到阈值,服务器就存在危险,所以d不能为0;Δt为流量采集间隔时间,该值太小,会造成采集频繁而开销大,该值太大又会导致发生DDoS攻击时,不能及时发现流量暴增而作出反应,因此,Δt的取值以检测攻击为准,它的取值为:
其中:T是阈值流量J在路由器上的周转时间,δ是常量,它的存在使得Δt恒小于T,即检测时间间隔永远小于限流阈值J在路由器上的周转时间,也就是说,当最大的攻击流量J到达路由器,还没有被完全转发给目标服务器时,路由器已经检测到暴增的攻击数据流了,使得路由器来得及进行限流保护.而δ的取值比较关键,如果取得太小,那么攻击数据流的大部分数据都通过了,路由器才检测到攻击;取得太大,又会造成路由器过于频繁的检测产生较大的内耗.因此,δ的取值应结合实际路由器的性能参数而制定,使得路由器能及时发现攻击数据流.
可见,模型的限流保护主要是根据周期检测邻近路由器端口流向目标服务器的数据流量,当流量L的值小于J-d时,流量不能构成威胁,从而每隔Δt继续检测;当流量L≥J-d,也就是说流量迫近了阈值J,应立即启动限流保护,保证服务器不被过多的攻击包淹没.
2.2模型的攻击包筛除
DDoS攻击数据包本身符合协议规范,即数据包的本质是合法的.因此,从数据包本身来鉴别一个数据包是否为攻击包是不可取的,但是,攻击包中的包头中携带了源IP地址,从路由器中的路由机制可以根据源IP地址筛选出一部分不符合路由规则的数据包,而这部分被筛除的数据包则是攻击者为了不被回溯追踪而发出的伪IP数据包.
2.2.1伪IP攻击包
图1显示,攻击者在实施攻击时,主要是利用傀儡节点发送巨量的数据包,而各种回溯检测技术能轻易地检测出攻击者,所以,为了防止被回溯追踪,这些节点在发送数据包的时候采用了伪IP地址,即节点所发送的攻击包中,源IP地址并不是节点的真实IP地址,而是伪造的其他节点的IP地址,这样的数据包称为伪IP包,一旦采用这种方法,IP回溯检测也无济于事.真实IP包和伪IP包对比见图4.
图4 真实IP包和伪IP包对比图
在图4a中,主机的IP地址为IP1,采用真实IP地址发送数据给服务器时,一旦采用回溯检测,便很容易回溯追踪到主机;在图4b中,主机的IP地址为IP2,如果主机采用伪IP x地址(x是不为2的任何值)发送数据包,服务器收到IP x数据包时,即使回溯追踪也不成功,使得攻击节点IP2具有较好的隐蔽性.
而DDoS攻击当前主要采用图4b中的方式进行伪IP包攻击,攻击节点具有很好的隐秘性,回溯追踪已经无效,使得DDoS的攻击更加难以防御.
2.2.2伪IP包筛除方法
从DDoS攻击的本质来看,它之所以攻击成功是因为傀儡节点多,流向目标服务器的攻击包多,防御关键还是在于卸掉过多的攻击包流量.基于此,防御模型在路由器中对攻击包进行判定并筛除一部分攻击包,使得攻击包流量减少,即使有一部分攻击包通过,它的流量也不足以使得服务器超载瘫痪,因此,从流量中筛除攻击包,降低流量是一种有效的防御手段.
伪IP包筛除的原理在于根据路由器的最短路由机制,将那不符合最短路由机制、不经过该路由器的伪IP包筛选丢弃,从而降低了流向服务器的流量,减轻了服务器的负担,使之有余力处理网络中合法用户的请求服务.其原理如图5所示.
图5 伪IP包攻击拓扑图
图5是一个随机的网络拓扑图的一部分,通过该图来分析说明伪IP包的攻击及筛除过程,在图中,任意假设3个研究对象,分别是5、9、10号节点,其中5为目标服务器,9是目标服务器的邻近路由器,负责转发流向服务器5的数据流,也是防御模型的工作平台,10为攻击节点.当10对5发起攻击的时候,它所发出的攻击包的源IP地址不是IP10,而是除开IP10以外的任何一个节点的IP地址,用以下攻击函数表示攻击者、目标服务器、伪造IP之间的关系:
式2表示10攻击5时,10能通过伪造1、2、3、4、6、7、8、9这些节点的IP地址来伪造数据包,即,除开它自己的IP10外,其余所有的IP地址都是可以用来伪造它的数据包.
攻击开始后,路由器9收到了大量的攻击包,这些攻击包是伪IP攻击包,它们的IP地址是IP x,其中x={1、2、3、4、6、7、8、9},路由器9收到数据包以后,根据最短路径规则判断,按照最短路径,该节点的数据包是否会经过路由器转发,即路由表中是否含有该路由信息,如果有就转发给服务器,如果没有就判定为攻击包并丢弃.
以上过程用类C代码表示如下:
Struct packet
{
Char*ip;
String data;//用结构体来存储数据包信息
……
}
router(){//路由器上的筛选模块
void*pointer,*p;//pointer指向路由表,P指向数据包
pointer=address(router-table);
*p=malloc(sizeof(packet()));
While(end){//循环结束的条件是指针pointer已经指向路由表末尾
If(mess.ip=*pointer.aimip)//如果路由表中有此IP地址,则说明该信息为合法包,否则被认为是攻击包并丢弃
{Accept(packet());Send(packet());}
else
{Release(malloc(packet()));Pointer++;}
}
}
如攻击者伪造IP1给服务器发送攻击包,根据最短路由规则,1发给5的数据包的路径是path1(1、4、5),即1号节点的数据包不会经过路由器9转发,因此,路由器9判定IP1是攻击包并丢弃;路由器9收到IP2数据包时,同样根据最短路径规则,对IP2进行最短路由规则判定,发现2发给5的数据包路径是path2(2、6、5),不需要经过路由器9转发,同样判定IP2数据包是伪造数据包并丢弃;以此类推,在模仿3、4、6节点的IP地址发送伪IP包的时候,路由器采用最短路径规则进行判定并丢弃.在采用IP9和IP5伪造数据包时因不符合路由规则而同样被丢弃.
但是,攻击者在模仿节点7和8的时候,路由器收到的数据包分别是IP7和IP8,根据最短路径的路由规则,7的路径path7(7、8、9、5),8的路径是path8 (8、9、5),这符合最短路径规则而被转发给服务器5,也就是说在所有的节点中,只有模仿7、8的伪IP包流向了服务器,而模仿其余节点的伪IP包都没能到达服务器就被邻近路由器9丢弃了.
因此,在以上拓扑结构中,通过以上最短路径筛除规则,伪IP包的丢包率达到了70%,即在所有发送到邻近路由器9的数据包中,有70%的伪IP包因为不符合最短路径路由规则而被丢弃,卸掉了一部分的攻击流量,减少了服务器的负担.尤其是在限流的基础上,采用上述方法便能降低攻击流量,使服务器能在正常的负载下,有余地完成部分正当用户的请求服务,从而有效地抵御了DDoS的攻击.
为了检验二维防御模型的效能,进行了以NS2 (network simulator version 2)为仿真模拟平台的模拟仿真实验.在试验中,模拟的邻近路由器为企业级的华为R2220可限流路由器;模拟的服务器为常用的商业服务器IBM System X3550(797831C);以15个随机的网络拓扑结构为实验案例;采用100个流量发生器模拟每个网络拓扑结构中的节点;所模拟的网络协议为TCP/IP,实验分为3个部分,分别是:①模拟攻击获取服务器的流量阈值J;②限流保护策略验证服务器的工作状态;③最短路径规则筛除伪IP包的效用.
3.1模拟攻击获取阈值J
实验的主要目的在于获得目标服务器能处理的阈值流量J,它是模型限流保护的主要依据.对其中的模拟服务器节点按照IBM System X3550 (797831C)的实际标准进行配置,从而该节点被模拟成了一台虚拟的目标服务器.在实验过程中,100个流量发生器模拟DDoS傀儡节点向目标服务器发送攻击数据包,数据包流量基数以1MB/s开始,每经过5 s便以2倍的方式递增,通过观察模拟服务器的运行状态判定其是否正常.经过一段时间的模拟攻击后,便能观察出目标服务器的状态发生了变化,为阈值的确定提供了直接依据.其流量和服务器性能的对比如图6所示.
图6 流量、性能对比曲线图
从图6可以看出,在t=45 s时,即流量达到50 GB时,CPU的利用率和内存的占用率基本达到了极限,即100%;t=50 s时,当流量继续增加2倍,CPU和内存的占用率为100%;t=55 s时,二值保持恒定.从以上曲线可得,流量的阈值应该为t=45 s时的流量值,此时阈值J=50GB,当流量超过50 GB时,仿真系统中设定的IBM System X3550(797831C)服务器内存和CUP即将达到极限,一旦流量突破极限,则该服务器就因为负载过大而瘫痪.因此,必须要保证流量低于阈值就开始限流保护.根据限流保护的规定,L=J-d,d=10%×J,所以,流量L=45 GB时必须限流,一旦超过45GB,则马上达到阈值,服务器便崩溃.
采用实验方法可以获得所有服务器能处理数据流量的阈值,为后续的限流保护提供直接的依据.
3.2限流保护仿真
当流量L逼近J-d时,必须对路由器的转发流量进行限制,否则,到达服务器的数据包流量将突破阈值而使服务器崩溃,在4.1节的仿真试验中已经得到了验证,图6进行了直接的展示.因此,限流保护是将数据流量控制在服务器的安全范围内,目的在于保证服务器的正常运行而不致崩溃.
在模型中,所有的服务器邻近路由器均为可限流路由器,采用和4.1节相同的仿真实验环境,路由器为华为R2220可限流路由器,当100个流量发生器向经过路由器向服务器发送数据流时,严格控制L的极限值为J-d,即L=45GB时,流量逼近服务器阈值J(J=50GB),在限流和不限流的情况下,服务器出现了两种不同的运行状态,其状态对比如图7所示.
图7 有无限流保护的服务器状态对比
从图7可知,当流量增加到45GB时,无论有无限流控制,服务器的状态显示为正常,当流量逼近50GB时,1为有限流保护,此时限流为45GB,虽然外部流量不断增加,但是限流路由器的流量限制为45 GB,所以服务器保持正常的工作状态;2为无限流保护的情况,当流量达到45GB时,服务器状态正常,当超过45GB,逼近50GB时,服务器状态显示瘫痪,没有任何数据响应.
因此,采用限流保护能将流向服务器的数据流限制在阈值J之下,即L.此时,无论外部的数据流以什么样的比例增长,限流保护的流量依然是L,都能保证服务器的正常工作而不会发生瘫痪;如果不限流保护,那么一旦数据流量达到阈值,则服务器在瞬间被数据流阻塞而陷入瘫痪.
3.3最短路径路由筛除伪IP包仿真实验
防御模型的第二层次是基于第一层限流保护的基础上,对经过邻近路由器流向服务器的数据流进行伪IP包筛除,利用3.2.2节中的最短路径筛除伪IP包的方法,能将一部分伪IP包删掉,降低了流向服务器的数据流,使得服务器有余力去处理一部分正当的响应请求(不是所有的正当请求都能得到响应),缓解了DDoS的攻击.
在实验中,将15个随机的网络拓扑结构进行2.2.2节中的伪IP包筛除,对于每一个拓扑结构,算出其伪IP包的筛除率,结果如表1所示.
其最终的统计结果如图8所示.
表1 拓扑结构丢包率
图8 伪IP包筛除率统计
从表1和图8可知,对于随机的15个拓扑结构而言,采用伪IP包筛除方法,都能成功地将伪IP包筛除一部分,最小值为30%,最大值为70%,平均效率为51%,即限流保护后,51%的伪IP包因不符合路由规则而被防御模型筛除.从而极大地缓解了服务器的负担,使得服务器有能力去响应部分正当用户的请求,达到了防御DDoS的目的.
根据DDoS的攻击特性,二维防御模型从限流保护和伪IP包筛除两方面着手抵御DDoS攻击,限流保护旨在限制流向服务器的数据流量,使得数据流控制在服务器能处理的阈值之下,保证了服务器的正常工作而不会瘫痪;伪IP包筛除的目的在于限流后,利用路由规则筛除不符合路由规则的伪IP包,从而降低流向服务器的数据流量,使得服务器有余力去响应合法用户的正当请求,从而有效地抵御DDoS的攻击.
以上两个层次既独立工作,又相互协同,实现了对服务器的保护,经过仿真实验,在抵御DDoS的攻击方面具有良好的效果.
[1]51CTO.com.2013年热点DDoS攻击事件深度剖析[EB/OL].(2013-10-15)[2015-03-03].http://netsecurity.51cto.com/art/2013 10/413127.htm.
[2]北京中联互动科技发展有限公司.2014年DDoS攻击事件[EB/OL].[2015-03-08].http://www.fwqtg.net/2014ddos.htm l.
[3]太平洋电脑网.黑客常规攻击方式之DDoS攻击[EB/OL].(2014-01-08)[2015-03-12].http://network.pconline.com.cn/412/412500 0_2.html.
[4]防护宝.2014年DDoS攻击事件[EB/OL].[2015-03-16].https://www.fanghubao.com/help/98.
[5]Luo H,Hu G,Yao X.DDoS attack detection based on global net⁃work properties of network traffic anomaly[J].Computer Applica⁃tions,2007,27(2):314-317.
[6]Yuan J,Mills K.Monitoring themacroscopic effectof DDoS flood⁃ing attacks.IEEE Trans on Dependable and Secure Computing[J].2005,2(4):324-335.doi:10.1109/TDSC.2005.50.
[7]Lakhina A,Crovella M,Diot C.Mining anomalies using traffic fea⁃ture distributions[J].Proc of the ACM SIGCOMM Philadelphia, 2005.doi:10.1145/1080091.1080118.
[8]Zhuang X,Lu K,Wang L,et al.A detectingmethod of DDoS at⁃tacks based on traffic statistics[J].Computer Engineering(in Chi⁃nesewith English abstract),2004,30(22):127-129.
(编校:李青)
Tw o-Dimensional Defense Model Against DDoSBased on Ad jacent Router
CHENGWei1,2
(1.Network Management Center,Yibin University,Yibin,Sichuan 644007,China;2.Chengdu Qilinghou Technology Co.,Ltd.,Cheng⁃du,Sichuan 610000,China)
Faced with the serious threatDDoSposes to the network,a two-dimensional defensemodelagainstDDoSwas proposed,which wasbased on the router close to the server and defenses the DDoSby Dual strategy.It includes two func⁃tional architectures,the first one is traffic limited protection layerwhich controls the traffic that flows to the server;the second one is attack-packets screening layerwhich filters the bogus IP packets by routing rules,thus reducing the pack⁃ets flowing to server and providing a guarantee to channel for reasonable load and normalwork.Simulation and experi⁃ments show that the two-dimensional defensemodel plays a good effectagainstDDoS,especially in reducing the traffic to the serverand supporting it to functionwell.
DDoS;distributed denialofservice;network attack;network security
TP393.08
A
1671-5365(2015)06-0070-06
2015-04-29修回:2015-05-18
程伟(1972-),男,高级实验师,本科,研究方向为信息处理、网络通信及安全
网络出版时间:2015-05-20 09:39网络出版地址:http://www.cnki.net/kcms/detail/51.1630.Z.20150520.0939.002.html
引用格式:程伟.一种部署在邻近路由器上的DDoS二维防御模型[J].宜宾学院学报,2015,15(6):70-75.