一种防御网站DDoS攻击的方法和流量清洗设备的制作方法

文档序号:7753782阅读:394来源:国知局
专利名称:一种防御网站DDoS攻击的方法和流量清洗设备的制作方法
技术领域
本发明涉及分布式拒绝服务(DDoS,Distributed Denial of Service)技术领域, 尤其涉及一种防御网站DDoS攻击的方法和流量清洗设备
背景技术
随着hternet的不断发展,接入网络用户和各种应用的服务器越来越多,而由于 ^ternet在设计时首要考虑的是接入网络的便利性而没有充分考虑到安全性,导致各种网络应用都在越来越多地受到日益严重的安全威胁,尤其是各种DDoS攻击,更是对应用服务器威胁最大也是最常见的攻击手段。对于目前网络上部署最多的TOB服务器来说,超文本传输协议(HTTP,HyperText Transfer Protocol)泛洪(Flood)是其面临的最常见的一种DDoS攻击形式。攻击者通过仿冒若干虚假IP地址向WEB服务器发起请求,导致WEB服务器在回应这些请求时,大规模消耗CPU资源;如果请求的页面包含较多数据(例如图片、视频),就会造成WEB服务器的出口带宽被挤占,进而无法响应正常的客户端的请求。现有的防御HTTP Flood的比较有效的方法是HTTP重定向,如图1为现有技术中用于防御HTTP Flood的HTTP重定向方法流程图,包括以下步骤步骤101 客户端向服务器发送HTTP GET请求,请求的地址记为XXX ;步骤102 服务器向客户端发送HTTP重定向(REDIRECT)报文,重定向的目的地址是随机地址,记为YYY ;步骤103 根据该HTTP重定向报文,客户端向服务器发送HTTP GET请求,请求的地址为YYY ;步骤104 服务器再次向客户端发送HTTP重定向报文,重定向的目的地址是客户端原先请求的地址,即XXX ;步骤105 根据该HTTP重定向报文,客户端向服务器发送HTTP GET请求,请求的地址为XXX。上述HTTP重定向报文中通常包含一个统一资源标识符(URI,UniformResources Identifier),要求该客户端访问该URI指定的地址。服务器采用上述HTTP重定向方法防御客户端的HTTP Flood攻击,如果客户端采用虚假的IP地址,那么其不可能收到重定向报文,更不可能根据重定向报文来访问正确的地址,由此可以达到防御攻击的效果。上述防御方式存在一个潜在的漏洞,S卩,如果攻击者不是构造虚假的IP地址,而是控制若干傀儡机来发起HTTP请求的话,由于傀儡机(此时作为攻击设备)能够收到并识别出包含URI的重定向报文,并访问该URI指定的地址,因此,上述防御方式无法区分出傀儡机(即攻击设备)和正常设备,也就无法防御网站DDoS攻击。

发明内容
本发明提供了一种防御网站DDoS攻击的方法,能够区分出傀儡机(即攻击设备)和正常设备,进而防御网站DDoS攻击。本发明还提供了一种防御网站DDoS攻击的流量清洗设备,能够区分出傀儡机(即攻击设备)和正常设备,进而防御网站DDoS攻击。本发明的技术方案是这样实现的一种防御网站分布式拒绝服务(DDoS)攻击的方法,包括A、流量清洗设备接收来自客户端的访问请求,所述访问请求要求访问的地址为初始地址;B、流量清洗设备向该客户端反馈第一确认报文,所述第一确认报文携带采用程序语言编写的命令,要求该客户端访问第一随机地址;C、流量清洗设备判断是否接收到该客户端访问所述第一随机地址的请求消息,如果接收到,则向该客户端反馈重定向指令,要求该客户端访问所述初始地址。一种防御网站DDoS攻击的流量清洗设备,包括第一反馈模块,用于接收到来自客户端的要求访问初始地址的访问请求后,向该客户端反馈第一确认报文,所述第一确认报文携带采用程序语言编写的命令,要求该客户端访问第一随机地址;判断模块,用于在第一反馈模块反馈第一确认报文之后,判断是否接收到该客户端访问所述第一随机地址的请求消息,如果接收到,则指示第二反馈模块进行反馈;第二反馈模块,用于根据判断模块的指示,向该客户端反馈重定向指令,要求该客户端访问所述初始地址。可见,本发明提出的防御网站DDoS攻击的方法和设备,当流量清洗设备收到来自客户端的访问请求(该访问请求要求访问的地址记为初始地址)后,向该客户端反馈确认报文,该确认报文携带采用程序语言编写的命令,要求该客户端访问随机地址;由于一般的傀儡机无法识别出该命令,也就无法按照要求访问随机地址;当流量清洗设备接收不到客户端访问该随机地址的请求消息时,则可以判定该客户端为攻击设备(即傀儡机)。因此, 本发明能够识别出攻击设备和正常设备,从而达到防御网站DDoS攻击的效果。


图1为现有技术中用于防御HTTP Flood的HTTP重定向方法流程图;图2为本发明防御网站DDoS攻击的方法流程图;图3为正常设备访问服务器时,流量清洗设备采用本发明防御方法的处理流程图;图4为攻击设备访问服务器时,流量清洗设备采用本发明防御方法的处理流程图。
具体实施例方式傀儡机一般能够根据HTTP协议识别出简单的HTTP重定向报文,但是,一般的傀儡机并不利用浏览器程序发起访问请求,也就无法识别采用JavMcript等程序语言编写的命令。根据这一特性,本发明在流量清洗设备接收到来自客户端的访问请求后,向客户端反馈确认报文,该报文中携带采用JavMcript等程序语言编写的命令,要求该客户端访问指定的地址;由于傀儡机无法识别该命令,也就无法访问指定的地址,流量清洗设备就能够识别出傀儡机,进而防御傀儡机的攻击。基于上述设计思路,本发明提出一种防御网站DDoS攻击的方法,如图2为本发明防御网站DDoS攻击的方法流程图,该方法包括步骤201 流量清洗设备接收来自客户端的访问请求,所述访问请求要求访问的地址为初始地址;步骤202 流量清洗设备向该客户端反馈第一确认报文,所述第一确认报文携带采用程序语言编写的命令,要求该客户端访问第一随机地址;步骤203 流量清洗设备判断是否接收到该客户端访问所述第一随机地址的请求消息,如果接收到,则继续执行步骤204 步骤204 流量清洗设备向该客户端反馈重定向指令,要求该客户端访问所述初始地址。之后,客户端就可以按照流量清洗设备的指令访问初始地址。上述步骤204中,流量清洗设备反馈的重定向指令可以是普通的HTTP重定向命令;也可以是第二确认报文,该第二确认报文携带采用程序语言编写的命令,要求该客户端访问所述初始地址。另外,步骤203可以进一步包括如果流量清洗设备接收到客户端访问所述第一随机地址的请求消息,则判定该客户端为正常设备,并将该客户端的IP地址加入可信列表。所述的流量清洗设备位于服务器前端,用于对服务器进行保护。本发明还可以结合现有的防御DDoS攻击的方法,先对通过仿冒虚假IP发起DDoS 攻击的攻击设备进行防御,具体方式为在上述步骤201之后,并在步骤202之前进一步包括步骤2010 流量清洗设备向该客户端反馈重定向报文,要求该客户端访问第二随机地址;步骤2011 流量清洗设备判断是否接收到该客户端访问所述第二随机地址的请求消息,如果接收到,则继续执行步骤202。由于主流的浏览器都支持Java语言,那么正常设备都会执行Java重定向脚本,重定向到正确的地址;而作为攻击设备的傀儡机一般不能识别Java语言;因此,上述确认报文可以携带是采用Java kript语言编写的命令。以下举具体的实施例详细介绍。如图3为正常设备访问服务器时,流量清洗设备采用本发明防御方法的处理流程图。包括以下步骤步骤301 客户端向流量清洗设备发送GET请求,请求访问的地址记为XXX,该地址为初始地址。步骤302 流量清洗设备向客户端反馈HTTP重定向(REDIRECT)报文,重定向的目的地址是一个随机的地址,记为YYY。此处的随机地址不能等同于初始地址。步骤303 按照上述HTTP重定向报文,客户端再次向流量清洗设备发送GET请求, 请求访问的地址是YYY。
步骤304 流量清洗设备向客户端反馈确认报文,如2000K报文,该报文中包含 Java kript语言编写的重定向命令。例如该重定向命令为javascript: :window. location, href = ‘ ZZZ';其含义为要求客户端重定向至1ZZ”所表示的地址。此处ZU是另一个随机地址,不能等同于初始地址。步骤305 由于客户端是正常设备,因此能够识别出该确认报文中的重定向命令, 客户端按照命令向流量清洗设备发送访问“ττν,的请求消息(即get zzz消息)。步骤306 流量清洗设备收到GET ZZZ消息,判定该客户端为正常设备,则将该客户端的IP地址加入可信列表。为了将该客户端重定向至其最初请求访问的初始地址,继续执行步骤307。步骤307:流量清洗设备向客户端反馈确认报文,如2000K报文,该报文中包含 Java kript语言编写的重定向命令。例如该重定向命令为javascript: :window. location, href = ‘ XXX';其含义为要求客户端重定向至“XXX”所表示的地址。此处XXX是该客户端最初请求访问的初始地址。或者,步骤307中,流量清洗设备也可以向客户端反馈HTTP重定向(REDIRECT)报文,重定向的目的地址是初始地址“XXX”。之后,客户端就可以按照该重定向命令访问地址XXX,至此,正常设备完成了对地址XXX的正常访问。如果采用本发明简化的防御方法,则流量清洗设备可以不对客户端进行与现有防御技术中相同的重定向操作,即在上述步骤301之后,直接执行步骤304。如图4为攻击设备访问服务器时,流量清洗设备采用本发明防御方法的处理流程图。包括以下步骤 步骤401 客户端向流量清洗设备发送GET请求,请求访问的地址记为XXX,该地址为初始地址。步骤402 流量清洗设备向客户端反馈HTTP重定向(REDIRECT)报文,重定向的目的地址是一个随机的地址,记为YYY。此处的随机地址不能等同于初始地址。步骤403 在本实施例中,假设客户端是一个傀儡机,而不是仿冒虚假IP发起攻击的攻击设备,则该客户端能够识别出HTTP重定向报文,按照上述HTTP重定向报文,客户端向流量清洗设备发送GET请求,请求访问的地址是YYY。步骤404:流量清洗设备向客户端反馈确认报文,如2000K报文,该报文中包含 Java kript语言编写的重定向命令。例如该重定向命令为javascript: :window. location, href = ‘ ZZZ';其含义为要求客户端重定向至1ZZ”所表示的地址。此处TUL是另一个随机地址,不能等同于初始地址。步骤405 由于客户端是攻击设备,无法识别出该确认报文中的重定向命令,客户端会认为本次请求已经成功,不会再向流量清洗设备发送请求报文,而流量清洗设备没有收到后续报文,则不会把这个客户端加入可信列表中,流量清洗设备判定该客户端为攻击设备。至此,流量清洗设备成功防御了该客户端发起的DDoS攻击。如果采用本发明简化的防御方法,则流量清洗设备可以不对客户端进行与现有防御技术中相同的重定向操作, 即在上述步骤401之后,直接执行步骤404。本发明还提出一种防御网站DDoS攻击的流量清洗设备,包括第一反馈模块,用于接收到来自客户端的要求访问初始地址的访问请求后,向该客户端反馈第一确认报文,所述第一确认报文携带采用程序语言编写的命令,要求该客户端访问第一随机地址;判断模块,用于在第一反馈模块反馈第一确认报文之后,判断是否接收到该客户端访问所述第一随机地址的请求消息,如果接收到,则指示第二反馈模块进行反馈;第二反馈模块,用于根据判断模块的指示,向该客户端反馈重定向指令,要求该客户端访问所述初始地址。上述设备中,第二反馈模块反馈的重定向指令可以为普通的HTTP重定向命令;也可以为第二确认报文,所述第二确认报文携带采用程序语言编写的命令,要求该客户端访问所述初始地址。上述设备还可以包括重定向模块,用于接收到来自客户端的要求访问初始地址的访问请求后,向该客户端反馈重定向报文,要求该客户端访问第二随机地址;所述判断模块,还可以用于在重定向模块反馈重定向报文之后,判断是否接收到该客户端访问所述第二随机地址的请求消息,如果接收到,则指示所述第一反馈模块进行反馈;所述第一反馈模块,还可以用于根据判断模块的指示,向该客户端反馈第一确认报文。上述判断模块还可以用于,如果接收到客户端访问所述第一随机地址的请求消息,则判定该客户端为正常设备,并将该客户端的IP地址加入可信列表。上述程序语言可以为Java kript语言。综上可见,本发明提出的防御网站DDoS攻击的方法和流量清洗设备,可以利用 Java Script脚本等重定向命令区分出攻击设备和正常设备,从而达到防御网站DDoS攻击的效果。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种防御网站分布式拒绝服务DDoS攻击的方法,其特征在于,所述方法包括A、流量清洗设备接收来自客户端的访问请求,所述访问请求要求访问的地址为初始地址;B、流量清洗设备向该客户端反馈第一确认报文,所述第一确认报文携带采用程序语言编写的命令,要求该客户端访问第一随机地址;C、流量清洗设备判断是否接收到该客户端访问所述第一随机地址的请求消息,如果接收到,则向该客户端反馈重定向指令,要求该客户端访问所述初始地址。
2.根据权利要求1所述的方法,其特征在于,所述重定向指令为第二确认报文,所述第二确认报文携带采用程序语言编写的命令,要求该客户端访问所述初始地址。
3.根据权利要求1或2所述的方法,其特征在于,在步骤A之后、并在步骤B之前进一步包括流量清洗设备向该客户端反馈重定向报文,要求该客户端访问第二随机地址;流量清洗设备判断是否接收到该客户端访问所述第二随机地址的请求消息,如果接收到,则继续执行所述步骤B。
4.根据权利要求1或2所述的方法,其特征在于,所述步骤C进一步包括如果流量清洗设备接收到客户端访问所述第一随机地址的请求消息,则判定该客户端为正常设备,并将该客户端的IP地址加入可信列表。
5.根据权利要求1或2所述的方法,其特征在于,所述程序语言是Javakript语言。
6.一种防御网站DDoS攻击的流量清洗设备,其特征在于,所述设备包括第一反馈模块,用于接收到来自客户端的要求访问初始地址的访问请求后,向该客户端反馈第一确认报文,所述第一确认报文携带采用程序语言编写的命令,要求该客户端访问第一随机地址;判断模块,用于在第一反馈模块反馈第一确认报文之后,判断是否接收到该客户端访问所述第一随机地址的请求消息,如果接收到,则指示第二反馈模块进行反馈;第二反馈模块,用于根据判断模块的指示,向该客户端反馈重定向指令,要求该客户端访问所述初始地址。
7.根据权利要求6所述的设备,其特征在于,所述第二反馈模块反馈的重定向指令为第二确认报文,所述第二确认报文携带采用程序语言编写的命令,要求该客户端访问所述初始地址。
8.根据权利要求6或7所述的设备,其特征在于,所述设备还包括重定向模块,用于接收到来自客户端的要求访问初始地址的访问请求后,向该客户端反馈重定向报文,要求该客户端访问第二随机地址;所述判断模块,还用于在重定向模块反馈重定向报文之后,判断是否接收到该客户端访问所述第二随机地址的请求消息,如果接收到,则指示所述第一反馈模块进行反馈;所述第一反馈模块,还用于根据判断模块的指示,向该客户端反馈第一确认报文。
9.根据权利要求6或7所述的设备,其特征在于,所述判断模块还用于,如果接收到客户端访问所述第一随机地址的请求消息,则判定该客户端为正常设备,并将该客户端的IP 地址加入可信列表。
10.根据权利要求6或7所述的设备,其特征在于,所述程序语言为JavMcript语言。
全文摘要
本发明提出一种防御网站分布式拒绝服务(DDoS)攻击的方法和流量清洗设备,其中方法包括A、流量清洗设备接收来自客户端的访问请求,所述访问请求要求访问的地址为初始地址;B、流量清洗设备向该客户端反馈第一确认报文,所述第一确认报文携带采用程序语言编写的命令,要求该客户端访问第一随机地址;C、流量清洗设备判断是否接收到该客户端访问所述第一随机地址的请求消息,如果接收到,则向该客户端反馈重定向指令,要求该客户端访问所述初始地址。本发明能够区分出傀儡机和正常设备,进而防御网站DDoS攻击。
文档编号H04L12/56GK102316082SQ20101022254
公开日2012年1月11日 申请日期2010年7月6日 优先权日2010年7月6日
发明者李伟辰, 陈光辉 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1