一种针对DDoS攻击的防御方法

文档序号:7964054阅读:247来源:国知局
专利名称:一种针对DDoS攻击的防御方法
技术领域
本发明涉及一种计算机网络安全技术,特别涉及一种针对DDoS攻击的网络设备安全防御的方法。
背景技术
TCP(Transmission Control Protocol)协议是目前广泛应用的一种网络传输控制协议,它是一个面向连接的协议。在网络中,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接,为了建立这一连接,一般的步骤是第一步,请求端(通常称为客户端)发送一个SYN报文段(报文段1),指明客户打算连接的服务器的端口,以及初始序号ISN;第二步,服务器发回包含服务器的初始序号的SYN报文段(报文段2)作为应答,同时,将确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认,一个SYN将占用一个序号;第三步,客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(报文段3)。这三个报文段完成TCP连接的建立,这个过程也称为三次握手(three-way handshake)。
目前,网络上存在一种针对TCP连接三次握手过程的网络攻击模式,其攻击方式是在第二步服务器端发送连接应答报文后,客户端恶意地不发送第三次确认报文,由此导致服务器端一直等待第三次握手信息,并且会反复发送第二次应答报文给客户端,从而占用大量的服务器资源,最终导致服务器无法对其他客户进行服务,被称为拒绝服务攻击(Denial of Service,DoS)。而操纵网络上大量的PC机对服务器发起的集体攻击被称为分布式拒绝服务攻击(Distributed Denial of Service,DDoS)。由于分布式拒绝服务攻击是利用TCP连接需要进行“三次握手”的特性,通过正常的TCP连接途径进行攻击以消耗服务器资源为目的的,因此,对网络防御常见的方法是增加服务器的数量,以增加服务方的服务能力来应付处理大量的攻击信息。但是这种方法需要大量的资金来采购硬件和维护服务器,对于很多资金并不富余和没有必要采用大量服务器的公司来说是很不切实际的做法。
在本发明作出之前,公开号为CN1697397A的中国发明专利“一种实现网络设备防攻击的方法”中,公开了一种针对名为TCP SYN Flood的DDoS类型网络攻击的防御方法,它采用在网络设备中记录每个用户IP建立的TCP连接数量,通过判断该用户IP的连接数是否超过预定值,如果超过,则丢弃从该用户IP发过来的超过连接数量的TCP SYN报文的方法,通过限制单个用户IP的连接数量来限制该IP对网络设备发动的TCP SYN Flood攻击。该方法在防止单个用户对网络设备进行的DDoS攻击的时候是比较有效的,但是,随着网络设备处理能力的发展,单个用户通过单台系统单个IP发动TCP SYN Flood攻击,对目前的网络设备造成的影响已经不是特别地严重,而目前出现的新型网络攻击更多的是从多个不同的IP地址(包含伪造的)发动TCP SYN Flood攻击,在这种情况下,上述技术方案中所描述的记录并限制用户IP连接数量的防御方法就无法有效地防御多个IP同时发动的攻击,并且,还会因为要记录太多的IP信息而消耗设备资源。

发明内容
本发明的目的在于克服现有技术存在的不足,提供一种效果好、易实现的针对DDoS攻击的网络设备安全防御方法。
本发明所采用的技术方案是当网络设备在接收到TCP连接报文时进行如下步骤的操作①依据检测规则判断网络设备当前是否处于被攻击状态,如果出现检测规则中的状态之一,认为网络设备被攻击,执行步骤②,否则进行步骤③;所述的检测规则是a.系统中第一次握手的半连接队列中的SYN报文数量超过正常值;b.系统中第一次握手的半连接队列中的SYN报文超过了最大容量的95%;c.系统中第一次握手的半连接队列中的SYN报文增长速度超过其极限值;②将系统中停留时间超过1秒的SYN报文进行抛弃;③执行系统正常的TCP连接过程。
所述的SYN报文数量的正常值为网络设备日常处理中的平均值。
所述的SYN报文增长速度的极限值为网络设备处理正常突发流量时每秒新增TCP连接数的最大值。
在目前的操作系统中,对TCP协议的实现通常是要维护一个半连接队列来接收新的第一次握手信息,当该队列中的第一次握手信息超过队列所能容纳的范围时,该队列便无法再接收新的TCP第一次握手信息,从而无法与客户端建立TCP连接来提供服务,一般情况下,当检测到下列情况之一时,便可视为系统已受到DDoS攻击1、半连接队列中的SYN报文数量超过全部所能容纳量的95%;2、半连接队列中的SYN报文数量在单位时间内增长速度过快;3、半连接队列中的SYN报文量超过正常值。若网络设备依据上述检测规则判断自身正在遭受DDoS攻击,那么将对网络设备中存在的第一次握手信息的集合进行处理,依据抛弃规则来判断所有第一次握手信息中的属于攻击的部分,然后抛弃被认定为DDoS攻击的第一次握手信息,从而保证系统有足够资源处理新进来的第一次握手信息,然后接受新进入的第一次握手信息,并向客户端发送第二次握手信息,等待客户端第三次握手信息的到来。
由于TCP协议会保存第一次握手的半连接队列(SYN队列),它是为了保证连接不丢失报文而建立的,而以当前的网络铺设情况来看,出现由于网络线路问题而丢失消息的情况已经越来越少了,也就是说绝大部分的正常客户端在进行三次握手的时候不会停留在第一次握手阶段很长时间,因此,按照正常情况,半连接队列中的SYN报文数量是有正常值的,而且,其中的SYN报文停留时间是非常短的,因此,可将半连接队列中等待时间过长的SYN报文视为恶意攻击执行抛弃,按照平均的统计时间在1秒左右,就可有效防御网络设备遭到DDoS的攻击。
与现有技术相比,本发明的优点是由于依据检测规则启用了网络设备是否受到攻击的判断程序,并将占用系统资源的攻击性的第一次握手请求抛弃,因此,有效地帮助系统提高对抗DDoS攻击的能力,并且在承受DDoS攻击的时候依然能够接收新的客户访问,从而,针对DDoS对网络设备攻击实现了方便、有效的安全防御,有利于推广应用。


图1是本发明实施例所提供的技术方案的流程图。
具体实施例方式
下面结合附图及实施例对本发明作进一步描述。
实施例一本实施例提供的技术方案是当客户端发送第一次握手信息到服务器端的时候,调用检测规则,判断服务器是否处于被攻击状态,若没有受到任何攻击,系统则接受客户端发来的第一次握手信息,并向客户端发送第二次握手信息,等待客户端第三次握手信息的到来;若服务器依据检测规则判断自身正在遭受DDoS攻击,那么将对服务器中存在的第一次握手信息的集合进行处理,依据抛弃规则来判断所有第一次握手信息中的属于攻击的部分,然后抛弃被认定为DDoS攻击的第一次握手信息,从而保证系统有足够资源处理新进来的第一次握手信息,并接受新进入的第一次握手信息,向客户端发送第二次握手信息,等待客户端第三次握手信息的到来。
参见附图1,在本实施例中,当网络设备在接收到TCP连接报文时进行如下步骤的操作步骤10TCP连接第一次握手信息到来;步骤20启动DDoS攻击检测模块,即调用检测规则;步骤30服务器依据检测规则判断是否当前处于被攻击状态,所述的检测规则是a.系统中的第一次握手的半连接队列(SYN队列)中的SYN报文数量是否超过正常值,一般情况下,该正常值可以按网络设备日常处理中的一个平均值来设定;b.系统中的第一次握手的半连接队列(SYN队列)中的SYN报文是否超过了最大容量的95%;d.系统中的第一次握手的半连接队列(SYN队列)中的SYN报文增长速度是否超过其极限值,所述的增长速度的极限值为网络设备处理正常突发流量时每秒新增TCP连接数的最大值,可以根据不同网络设备来设定该值;步骤40如果没有检测到步骤30所述规则中出现的情况,则转到步骤70继续执行系统正常的TCP连接,如果出现步骤30所述规则中的任何一种情况,则判断系统正遭受DDoS攻击,转入步骤50;步骤50启动防御方案,调用步骤60中的抛弃规则抛弃DDoS攻击报文;
步骤60启动抛弃规则将系统中停留时间超过1秒的SYN报文进行抛弃,执行完毕后转到步骤70继续执行系统正常的TCP连接;步骤70执行系统正常的TCP连接过程接受新的第一次握手信息、向客户端发送第二次握手信息,等待客户端发送第三次握手信息,建TCP连接。
针对DDoS攻击,采用本实施例所述的防御技术方案对网络设备进行测试,硬件测试平台服务器1台,普通PC机5台;服务器软件平台Redhat Linux2.4;测试方法利用5台加载了DDoS攻击软件的PC机对服务器进行DDoS攻击,不断增加攻击的信息数量,测试CPU和RAM的占用率的情况,并且尝试正常的服务器访问请求。表1为不使用任何防御措施的情况下的测试数据结果;表2为使用本实施例所提供的服务器安全防御技术方案后的测试数据结果。
表1

表2

参见表1,当DDoS攻击的速度达到11500个/秒的时候,服务器的CPU已经满载,此时,对服务器的正常访问已经无法打开网页。
参见表2,当DDoS攻击的速度达到15000个/秒的时候,虽然服务器的内存消耗较大,但此时仍然可以对服务器进行正常访问。
从表1、表2的测试数据中可以看出,在采用了本发明所提供的DDoS防御方法的情况下,CPU的资源占用极大的降低了,在承受15000个/秒的数据包攻击的时候仍然能够保持在60%左右的占用率,性能提高了50%以上;而由于抛弃规则的原因,虽然占用了一定的内存,但比在不使用DDoS防御方法的情况下提高了40%的性能,并且在承受15000/秒的数据包攻击的情况下,依然能够为用户提供正常的访问服务。
由此可见,本发明所提供的技术方案能有效地帮助系统提高对抗DDoS攻击的能力,并且在承受DDoS攻击的时候依然能够接收新的客户访问,这是因为在新的第一次握手请求到来的时候,将会抛弃占用系统资源的攻击性的第一次握手请求,以保证新请求能够被接受,从而,针对DDoS对网络设备攻击实现了方便、有效的安全防御,有利于推广应用。
权利要求
1.一种针对DDoS攻击的防御方法,其特征在于当网络设备在接收到TCP连接报文时进行如下步骤的操作①依据检测规则判断网络设备当前是否处于被攻击状态,如果出现检测规则中的状态之一,认为网络设备被攻击,执行步骤②,否则进行步骤③;所述的检测规则是a.系统中第一次握手的半连接队列中的SYN报文数量超过正常值;b.系统中第一次握手的半连接队列中的SYN报文超过了最大容量的95%;c.系统中第一次握手的半连接队列中的SYN报文增长速度超过其极限值;②将系统中停留时间超过1秒的SYN报文进行抛弃;③执行系统正常的TCP连接过程。
2.根据权利要求1所述的一种针对DDoS攻击的防御方法,其特征在于所述的SYN报文数量的正常值为网络设备日常处理量的平均值。
3.根据权利要求1所述的一种针对DDoS攻击的防御方法,其特征在于所述的SYN报文增长速度的极限值为网络设备处理正常突发流量时每秒新增TCP连接数的最大值。
全文摘要
本发明涉及一种计算机网络安全技术,特别涉及一种针对DDoS攻击的网络设备安全防御的方法。它采用的技术方案是启用网络设备是否受到攻击的判断程序,依据的检测规则是1.半连接队列中的SYN报文数量超过全部所能容纳量的95%;2.半连接队列中的SYN报文数量在单位时间内增长速度过快;3.半连接队列中的SYN报文量超过正常值;如出现上述状况之一便视为网络设备受到攻击,执行抛弃程序,将占用系统资源的攻击性的停留时间超过1秒的SYN报文进行抛弃,它能有效地帮助系统提高对抗DDoS攻击的能力,并且在承受DDoS攻击的时候依然能够接收新的客户访问,从而,针对DDoS对网络设备攻击实现了方便、有效的安全防御,有利于推广应用。
文档编号H04L9/00GK1972286SQ20061009822
公开日2007年5月30日 申请日期2006年12月5日 优先权日2006年12月5日
发明者周嘉伟, 金士尧, 许宏琪, 陈强 申请人:苏州国华科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1