当前位置:巨优公文网>范文大全 > 公文范文 > 一种改进的DDOS攻击检测与防御系统设计摘要

一种改进的DDOS攻击检测与防御系统设计摘要

时间:2022-12-07 20:45:07 公文范文 来源:网友投稿

摘要:提出一种检测与防御的路由器架构,即在服务器与外界输入之间放置具有检测与过滤功能的路由器以防范攻击。检测中,运用报文差检测算法,对网络中当前数据流量进行监测与分析,实现攻击检测。防御中,将路由器作为外界与服务器之间的TCP握手代理,通过对网络中TCP数据包进行分析筛选保证服务器的正常工作。

关键词:报文差检测算法;TCP握手代理;NetFPGA;路由器架构

中图分类号:TP393.08文献标识码:A文章编号:16727800(2011)012013104

作者简介:王亦品(1989-),男,江苏盐城人,东南大学信息科学工程学院硕士研究生,研究方向为计算机通讯工程;范志明(1990-),男,山西临汾人,东南大学信息科学工程学院硕士研究生,研究方向为计算机通讯工程。1实现方案

1.1设计原理

在正常的服务器通信中,路由器主要发挥流量监测的功能即对网络中存在的数据流量进行实时监测,并采用报文差检验算法对得到的数据流量进行实时处理与分析,以判断当前网络数据是否存在异常。当发现异常时,会认为有攻击产生,并自动切换到防御状态。

在防御状态中,对于每个由外界发起的TCP连接都会在路由器处进行TCP三次握手的预处理即将路由器作为服务器的代理,确认客户端是否可完成完整的TCP三次握手。对于通过认证的TCP连接请求,路由器会再作为客户端代理与服务器进行TCP握手,如此等价实现客户端与服务器的TCP的握手连接,之后客户端便可与服务器进行正常的TCP通信了。在此过程中,路由器会开辟出一块空间作为TCP信息存储队列,该系统共用到了两个队列分别为外界TCP申请队列、确认正常的TCP信息队列,其功能将在1.2.4中提到。下图1对整个设计原理进行了简要描述。

图1系统设计原理

1.2模块化设计

1.2.1DDOS攻击源产生

无论对于系统的设计还是测试,合理的DDOS攻击源都必不可少即要能在短时间内产生大量的具有虚假源地址的TCP/IP数据包,并将这些数据包同时发送至同一服务器主机。对此,实验中以TCP/IP包发送工具HPING为基础上设计出一个能够采用虚假源地址发送TCP包的DDOS攻击器。 其设计原理是通过更改IP包头设置中的对应字节,得到需要类型的数据包包括IP包的源地址,目的地址以及通信协议等,然后将其从对应网络端口发出。

1.2.2网络数据流量监测模块

该模块用于实现将网络中流过服务器的TCP包数量,以图形方式动态显示,从而便于人员观测当前网络流量状态,其设计原理主要分为数据包的获取解析与流量图的绘制。

在设计中,通过编写接口程序,对经过网络端口的IP包包头进行校验,以此判断包的类型。当检测到TCP的SYN包、数据包等特殊包后,响应计数器记录加一,并将此记录反馈至绘图模块,实现对网络TCP流量的图形观测。

1.2.3DDOS攻击检测模块

在SYN Flooding攻击中, 攻击者向服务器发送大量伪造源IP地址的SYN 请求包, 服务器返回SYN /ACK应答包后得不到确认, 就会不断地对伪造的IP 地址进行重试直至超时丢弃, 由于SYN 连接请求的速度远大于服务器超时丢弃的处理速度。 因此, 服务器的半连接列表很快就被塞满, 致使客户的正常请求得不到响应, 以实现拒绝服务的目的。

介于DDOS这种攻击特性,系统运用正确建立连接数的差别实现对DDOS攻击检测报警。首先对TCP连接信号SYN进行抽样,设d为检测周期,SYN_n为抽样间隔内源端网络中SYN包的数量,FIN_n为FIN包的数量。

记:det_n = SYN_n –FIN_n

一般情况下, det_ n与网络的规模、抽样间隔相关, 为减少上述因素的影响, 提高算法的通用性, 对det_n 进行归一化处理:

记:

det_n= det_n/SYN_ n= (SYN_n –FIN_n)/SYN_ nn=1,2……

实验中给出一个门限值h,当_n≥h,则报警。

1.2.4TCP连接代理模块

当路由器检测到流量异常时,会自动进入智能防御方式。在此阶段,路由器会接受到分别来自服务器与外界输入两个方向的TCP数据包,因此需要在路由器上建立两个缓存队列,分别为外界TCP队列以及确认正常的TCP信息队列。

外界TCP队列(队列1)主要用于记录外界向服务器发起的TCP连接信息,其中主要包括该TCP连接的MAC源地址、IP源地址、IP源端口、IP目的端口、路由器向外部提供的序列号SEQ、连接状态标志位State。通过此队列所记录的信息,路由器实现了与外界输入的模拟TCP三次握手过程。

表1外界TCP队列的数据单元存储信息

MAC源地址(48 bits)IP源地址 (32 bits)IP源端口 (16 bits)IP目的端口 (16 bits) 向外界提供的序列号SEQ (32 bits)表1描述了外界TCP队列存储单元信息,经计算,一个数据单元所占空间为144 bits=18 Byte

确认正常的TCP信息队列(队列2),主要用来完成对TCP数据包过滤即符合条件的TCP包可以直接通过,否则丢弃,以缓解服务器压力。

下面主要讨论了TCP包有外界发起与TCP包有服务器发起两个过程中,路由器的工作流程。

当TCP包由外界发起时,工作流程如图2所示。

图2外界发起TCP时路由器工作流程

当TCP包由服务器发起时,工作流程如图3所示:

图3服务器发起TCP时路由器工作流程

1.3系统的功能与指标

实验中分别从路由器所能承受的Syn攻击速度与队列占用空间容量两个指标对其进行分析,下面是理论计算中用到的符号:

Syn_speed 表示DDOS的攻击速度

T表示正常TCP握手连接中第一次握手与第三次握手的时间间隔即TCP建立时间

L表示路由器中用来存储外界TCP信息的队列长度

速度指标:

根据分析,要想保证一个正常的TCP连接信号不会因队列过满而挤掉,要求L≥Syn_speed*T(1)查询数据手册,路由器(以NETFPGA为例)的工作频率为125MHZ,并且假设扫描一个数据单元需要4个时钟信号,则要想保证每个SYN包到来时,路由器能够对整个数据队列进行一次完整扫描,要求1Syn_speed≥1125M(2)容量指标:

查询数据手册,NETFPGA可用于存储数据的空间有4.5MB,假设开辟的数据队列空间为2MB,对于外界TCP队列中每一个数据单元根据之前所述其长度为18B,因此从容量角度考虑要求:L*18<2*106(3)指标分析:

结合以上3式,可以得到

Syn_speed*T*18≤2*106——路由器本身容量限制

Syn_speed2*T≤1254*106——路由器主频限制

以上两式反应出DDOS攻击速度Syn_speed 与握手间隔T之间的制约关系。同时通过对比计算,发现在T<105s时,主频限制占主导因素,且时间越小其影响作用越大。考虑到实际情况只需分析主频限制条件下,SYN极限速率与建立时间T的关系情况。

图4SYN攻击速率、队列空间与TCP建立时间关系

图4所示两图中,左图描述的是Syn_speed极限速率与TCP建立时间的关系示意图,可以发现在TCP建立时间增大时,SYN_speed明显减小,受到严重制约。

当T=0.1sSyn_speed=17000

当T=1sSyn_speed=5500

当T=30sSyn_speed=1000

右图描述了队列所占空间随TCP建立时间变化。经计算得,当T<30s时,队列空间均小于600K,完全不受硬件空间限制。经过分析:

(1)在硬件设施中,运算速度成为制约Syn_speed的主要因素。要想提高路由器抗DDOS攻击能力,需要提高运算速度;

(2)硬件条件一定的情况下,Syn_speed主要受TCP建立时间的制约。在网络状况不佳时(设建立TCP所需时间为1s),Syn_speed的极限为5500;在网络状况良好时(建立TCP所需时间为0.1 s),Syn_speed的极限为17000;

(3)在硬件状况不变的情况下,要想提高服务器的抗击能力,可尝试路由器级联结构,将网络流量分割给多个路由器处理。

2性能测试

2.1测试环境

在测试中共需要4台电脑,完成整个过程测试。4台电脑的要求及其作用分别为:①一台要求是装有NefFPGA开发板的台式电脑,其系统为CentOS 5.0。该电脑主要用于与NetFPGA进行通信;②另外3台电脑对系统无明显限制,正常Windows XP及其以上的操作系统均可。

在测试中,使用一台作为服务器用于接收外界发送的数据,剩余两台作为数据的发送源,其中一台正常发送TCP数据包,另一台对服务器进行DDOS攻击。将4台电脑连成局域网模拟整个过程。

2.2系统测试流程

2.2.1无DDOS攻击正常情况测试

测试目的:得出正常情况下的TCP链接情况,便于和DDOS攻击的情况比较。

操作描述:①设定发送信息(A)和接收信息(B)主机的IP;②由主机A ping主机B,在终端里输入:hping 192.168.0. 1 –i u1000;③抓取TCP链接的SEQ,ACK等信息,观察是否完成了三次握手。

结果分析:

图5正常情况下抓包程序显示结果

图5中可以看到主机A的IP为169.254.133.36,主机B的IP为169.254.184.127。首先由主机A向B发送SYN请求连接信号,然后主机B回复A一个SYN/ACK,表明已经接到请求,并且将ACK至1,主机A在接到返回信号后再向B发送一个ACK信号,这样主机A与B的连接就建立了。 测试结果与预期相同。

2.2.2遭受DDOS攻击下的测试

测试目的:观察DDOS攻击下的TCP链接情况,便于数据包的筛选。

操作描述:①设定发送信息(A)和接收信息(B)主机的IP;②主机A通过设定虚假IP(192.168.0.3-192.168.0.8),向主机B发送DDOS攻击,在终端里输入hping –a 200.200.200.200 192.168.0.2 –i u1000;③比较DDOS攻击下的TCP链接与正常情况下的区别。

结果分析:

图6遭受攻击境况下抓包程序显示结果

主机A的IP为192.168.0.2,主机B的IP为192.168.0.1。从图中可以看出,在遭受DDOS攻击时,由主机B向A发送SYN请求连接信号,且使用的是虚假源地址,且该地址在动态变化中,然后主机A回复B一个SYN/ACK,但之后主机B不会在给A发ACK确认信号,也就是TCP三次握手连接并没有真正建立。

2.2.3针对DDOS攻击的检测测试

本文采用2000年DARPA第5周第2天的检测评估数据作为实验背景数据图7描述了正常情况中,SYN 与FIN包的变化关系在此基础上,通过hping由主机A对主机B进行DDOS攻击,以50packets/s的速率发送SYN flooding,攻击检测算法在发包3分钟后开始检测,我们以10s为检测周期,连续抽样200次,测量在不同的门限值的条件下,算法的误警率。表3给出了该过程的计算结果:

图7正常情况下SYN与FIN包关系

表2DDOS攻击检测结果

攻击次数判决门限正确判断次数误警次数误警率2000.751574321.5%2000.651643618%2000.551722814%2000.451663417%由此得到当门限值取0.55时,误警率最低,正确判断率达到86%,与其余门限值相比已经足够高,基本上能够对DDOS攻击做出检测。

2.2.4针对DDOS攻击的防御测试

测试目的:通过比较一台遭遇攻击的主机和一台加上了防御模块的主机遭受攻击程度,得出该防御系统的性能。

操作描述:①设定发送信息主机(A和C)和接收信息主机(B和D)的IP;②让主机A拟造虚假IP发送DDOS攻击,主机C发送正常的TCP数据包;③主机B和主机C同时接收来自主机A和主机C的数据包,其中主机B加上了防御模块,而主机D是直接接受;④分别检测两种情况下的数据流量,通过流量图显示差别。

结果分析:

图8正常情况下的发包量

上图为正常TCP包的累计量,主机C以每秒2个包的速度进行发包。

图9遭受DDOS攻击时的发包量

在上图中主机A以每秒400包左右的速度发送DDOS攻击。

从主机B上接收到得数据流量如上图所示,从中可以看出其中DDOS攻击的数据包基本被滤除,留下的数据包基本上是有主机C发送的正确的数据包。测试结果与预期相同。

图10路由器过滤后数据流量

3结束语

防范DDOS攻击是一个系统工程,本系统也仅能做到防御SYN FLOOD类的DDOS攻击,防范总类繁多的DDOS攻击仅依靠某一种技术是不现实的。只有事先增强对DDOS攻击的防御能力,DDOS攻击时及时对其进行检测,受到DDOS攻击后及时进行可靠的防御,综合运用各种技术,对DDOS攻击进行抵抗,从而增加攻击者的攻击成本,使绝大多数攻击因成本开销过大而放弃。

本文的探究仅仅只是一个开始,因为时间和知识储备的不足,仍然有待改进。

参考文献:

[1]刘志雷.基于变动和式累积检验算法的DDOS攻击检测[J].计算机仿真,2009(8).

[2]ALBERTO LEONGARCIA,INDRA WIDJAJA.Communication Network[M].北京:清华大学出版社,2005.

[3]田耘,徐文波.Xilinx FPGA开发实用教程[M].北京:清华大学出版社,2008.

[4]孙航.Xilinx可编程逻辑器件的高级应用与设计技巧[M].北京:电子工业出版社,2004.

[5]王春平,张晓华,赵翔.Xilinx可编程逻辑器件设计与开发[M].北京:人民邮电出版社,2011.

[6]孙知信.网络异常流量识别与监控技术研究[M].北京:清华大学出版社,2005.

[7]陆佳华,杨卫,周剑,等.零存整取NetFPGA开发指南[D].北京:北京航空航天大学,2010.

(责任编辑:余晓)

推荐访问:防御 改进 摘要 攻击 检测

版权所有:巨优公文网 2018-2024 未经授权禁止复制或建立镜像[巨优公文网]所有资源完全免费共享

Powered by 巨优公文网 © All Rights Reserved.。备案号:沪ICP备18054162号-1