防范cc攻击的方法和装置的制作方法

文档序号:7760675阅读:228来源:国知局
专利名称:防范cc攻击的方法和装置的制作方法
技术领域
本发明涉及网络通信技术领域,特别涉及防范挑战黑洞(CC Challenge Collapsar)攻击的方法和装置。
背景技术
随着因特网(Internet)的不断发展,接入网络的用户和各种应用服务器越来越多。而由于hternet在设计时首要考虑的是接入网络的便利性,并没有充分考虑到接入网络的安全性,这导致越来越多的网络应用受到日益严重的安全威胁,比如分布式拒绝服务 (DDoS)攻击等。TOB服务器是目前hternet网络上部署最多的应用服务器,因此,针对TOB服务器的DDoS攻击也是最为常见。现有针对DDoS攻击比较有效的防御方案是TCP Syn Cookie, 也就是由DDoS防护设备通过单向或双向代理的方式代理客户端发过来的syn报文,先和客户段完成TCP握手,如果客户端能够通过握手验证,说明是真实的,而那些伪造源IP的客户端无法通过握手验证,以此来达到防范DDoS攻击的目的。但是,近年以来,基于页面的DDoS攻击(称为CC攻击)逐渐成为DDoS攻击的主要手段,危害也逐渐加大。所谓CC攻击,指的是通过攻击程序比如代理服务器或者其他控制系统如肉鸡等向WEB服务器发起大量HTTP连接。由于现有防御方案即TCP Syn Cookie 只能针对仿冒源IP的攻击,而对于CC攻击则无能为力,因为CC攻击的客户端都是真实存在的,必然会通过上述的握手验证,如此,CC攻击发起的大量HTTP连接就无法被拦截,这导致WEB服务器资源被大量消耗,直至无法正常提供服务。

发明内容
本发明提供了防范CC攻击的方法和装置,以便通过有效区分自然人和攻击程序, 拦截CC攻击。本发明提供的技术方案包括—种防范CC攻击的方法,该方法应用于设置在被保护的web服务器之前的流量清洗设备上,该方法包括A,所述流量清洗设备接收到客户端向所述web服务器发送的第一请求报文后,判断所述第一请求报文携带的源IP地址是否存在于已建立的认证通过白名单中,如果是,继续发送所述第一请求报文至所述web服务器;否则,发送重定向命令至所述客户端,以使所述客户端接收到所述重定向命令后向所述流量清洗设备发起第二请求报文,并执行步骤 B ;B,所述流量清洗设备对接收的第二请求报文进行验证,如果验证通过,则向所述客户端推送确认页面,所述确认页面要求使用所述客户端的用户输入该确认页面中显示的确认码;C,所述流量清洗设备对用户输入的确认码进行验证,如果验证通过,则将所述源
5IP地址加入所述认证通过白名单中,并再次发送重定向命令至所述客户端,以使所述客户端向所述web服务器发送第一请求报文,之后返回执行步骤A。一种防范CC攻击的装置,该装置设置在被保护的web服务器之前,包括判断单元,用于接收到客户端向所述web服务器发送的第一请求报文后,判断所述第一请求报文携带的源IP地址是否存在于已建立的认证通过白名单中,如果是,继续发送所述第一请求报文至所述web服务器;否则,发送重定向命令至所述客户端,以使所述客户端接收到所述重定向命令后重新发起第二请求报文;第一验证单元,用于对接收的第二请求报文进行验证,如果验证通过,则向所述客户端推送确认页面,所述确认页面要求使用所述客户端的用户输入该确认页面中显示的确认码;第二验证单元,用于对用户输入的确认码进行验证,如果验证通过,则将所述源IP 地址加入所述认证通过白名单中,并再次发送重定向命令至客户端,以使所述客户端向所述web服务器发送第一请求报文。由以上技术方案可以看出,本发明中,如果发送请求报文的客户端被自然人使用, 则在流量清洗设备向所述客户端推送确认页面时,自然人很显然可以正确识别确认页面中的确认码,也可以输入正确的确认码。如此,即可通过流量清洗设备对用户输入的确认码的验证,访问被保护的web服务器。而如果客户端为攻击程序,比如为代理或者木马,由于目前的技术无法使攻击程序快速正确识别确认码,因此,攻击程序不能在通过流量清洗设备对确认码的验证,进而也就无法真正访问web服务器。也就是说,本发明通过对确认码验证能够区分自然人和攻击程序,达到防范CC攻击的目的。


图1为本发明实施例提供的基本流程图;图2为本发明实施例提供的详细流程图;图3为本发明实施例提供的装置结构图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明提供的技术方案包括图1所示的流程。参见图1,图1为本发明实施例提供的基本流程图。在图1所示的流程执行之前, 先在被保护的web服务器之前设置流量清洗设备,由该流量清洗设备对经过的流量进行清洗来达到保护该web服务器的目的。之后,如图1所示,该流量清洗设备可执行以下操作步骤101,流量清洗设备接收到客户端向web服务器发送的第一请求报后,判断所述第一请求报文携带的源IP地址是否存在于已建立的认证通过白名单中,如果是,继续发送所述第一请求报文至所述web服务器;否则,发送重定向命令至所述客户端,以使所述客户端接收到所述重定向命令后重新发起第二请求报文,并执行步骤102。其中,第二请求报文是向流量清洗设备发起的,其与第一请求报文访问的URL不同。
步骤102,流量清洗设备对接收的第二请求报文进行验证,如果验证通过,则向所述客户端推送确认页面,所述确认页面要求使用该客户端的用户输入该确认页面中显示的确认码。步骤103,流量清洗设备对用户输入的确认码进行验证,如果验证通过,则将所述源IP地址加入所述认证通过白名单中,并再次发送重定向命令至所述户端,以使所述客户端向所述web服务器发送第一请求报文,之后返回执行步骤101。如果所述客户端被自然人使用,则自然人很显然可以正确识别确认页面中的确认码,进而可以输入正确的确认码。而如果所述客户端为攻击程序,比如为代理或者木马,由于目前的技术无法使攻击程序快速正确识别确认码,因此,攻击程序不能在步骤103中通过验证,进而也就无法真正访问web服务器。至此,通过上面流程实现了本发明实施例提供的基本流程。在上述流程中,第一请求报文、第二请求报文都可为HTTP请求,下面以HTTP请求为例对本发明实施例提供的方法进行详细描述。参见图2,图2为本发明实施例提供的详细流程图。如图2所示,该流程可包括以下步骤步骤201,在被保护的web服务器(记为服务器1)之前设置流量清洗设备。步骤202,流量清洗设备监测服务器1的流量,如果监测到该服务器1的流量超过设定门限,或者监测到服务器1的HTTP请求数量超过设定上限,则开启自然人行为验证功能。步骤203,流量清洗设备在接收到客户端向服务器1发送的第一 HTTP请求后,判断所述第一 HTTP请求携带的源IP地址是否存在于已建立的认证通过白名单中,如果是,执行步骤204,否则,执行步骤205。也就是时,在流量清洗设备开启自然人行为验证功能后,才可执行步骤203 ;而在流量清洗设备开启自然人行为验证功能之前,流量清洗设备则可直接发送HTTP请求至服务器1。步骤204,继续发送第一 HTTP请求至服务器1。如此,即可由服务器1对该第一 HTTP请求进行响应。步骤205,判断第一 HTTP请求携带的源IP地址是否存在于已建立的黑名单中,如果是,执行步骤206,否则,执行步骤207。需要说明的是,步骤203中的白名单和步骤205中的黑名单都可动态更新,具体可按照IP地址的时间长度进行更新。比如,以步骤204中的白名单为例,步骤205中的黑名单类似,则如果一 IP地址在白名单中的时间超过设定时间比如一分钟,则将该IP地址从白名单中删除。步骤206,丢弃该第一 HTTP请求。结束当前流程。步骤207,从第一 HTTP请求提取出统一资源定位符URL(记为URL1),在该提取的 URLl中附加经过设定规则生成的字符形成字符串A,将字符串A携带在重定向命令中发送至所述客户端。本步骤207中,经过设定规则生成的字符附加在URLl中的位置具体不限,比如,附加在URLl之前、附加在URLl之后、或者附加在URLl的中间等。以经过设定规则生成的字
7符附加在URLl之后为例,如果第一 HTTP请求中的URL为www. abed, com,按照设定规则生成的字符为$ge34 I #,则步骤207形成的字符串A为www. abed. com$ge34 | #。另外,本步骤207中的设定规则具体实现时可为消息认证码函数等,本发明实施例并不具体限定。步骤208,客户端接收到重定向命令后,重新发起URL为字符串A的第二 HTTP请求。步骤209,流量清洗设备获取第二 HTTP请求携带的URL,判断获取的URL是否为字符串A,如果是,则确定验证通过,执行步骤210 ;否则,认为第二 HTTP请求为新的HTTP请求,将第二 HTTP请求作为第一 HTTP请求,返回执行步骤203中的判断操作。步骤210,向客户端推送确认页面,所述确认页面要求使用该客户端的用户输入该确认页面中显示的确认码。本步骤210中,确认码可以包括英文字符、数字、特殊字符中的至少一个,并且,为了避免光学字符识别(OCR)软件对该确认码识别,需要保证确认页面显示的确认码经过模糊、变形处理。此外,作为本发明实施例的一个扩展,该确认码还可以是随机生成的一个运算表达式,要求使用该客户端的用户输入运算结果,或者为一系列颜色不同的字符,要求使用该客户端的用户输入其中某种颜色的字符作为确认码等,本发明实施例并不具体限定。步骤211,流量清洗设备对用户输入的确认码进行验证,如果验证通过,则将所述源IP地址加入所述认证通过白名单中,之后执行步骤212 ;否则,结束当前流程。如果是自然人使用该客户端,当然可以正确识别确认页面中的确认码,也能输入正确的确认码,在确认码通过验证之后,流量清洗设备会把该源IP地址加入白名单中,并继续执行步骤212。而如果是攻击程序比如代理或者木马,由于目前的技术无法保证其快速正确的识别这些确认码,自然无法通过验证,也就无法真正访问服务器1。本步骤211通过对确认码验证能够区分自然人和攻击程序,达到防范CC攻击的目的。需要说明的是,本实施例中,为了减轻流量清洗设备的压力,可以在步骤210推送确认页面之前记录源IP地址,在执行步骤211的验证时,先判断当前时间与记录所述源IP 地址的时间之差是否在预定时间内,如果是,继续执行对用户输入的确认码进行验证的操作;否则,将所述源IP地址加入黑名单中,并删除所述源IP地址的记录,结束当前流程。优选地,本发明实施例中,在步骤211验证不通过时,丢弃该接收的HTTP请求,并记录该源IP地址发送的HTTP请求未通过的次数,当该次数达到设定值时,可将该源IP地址加入黑名单中,即先屏蔽该源IP地址发送的HTTP请求一段时间。步骤212,再次返回一个重定向命令,以使客户端识别出该重定向命令之后,重新发起一个HTTP请求,该HTTP请求具体可为上述第一 HTTP请求,之后,返回步骤203。本步骤212中,重定向命令中的URI为原始URI,即字符串A去掉附加字符后剩下的字符,其实质上为第一 HTTP请求携带的URL。比如,如果字符串A如上所述为www. abed. com$ge;34|#,则本步骤212中重定向命令的URL为www. abed, com。当返回步骤203时,由于白名单中已存在该第一 HTTP请求携带的源IP地址,因此,该第一 HTTP请求会匹配流量清洗设备的白名单,被流量清洗设备放过,到达服务器1,由服务器1对其进行响应。至此,对本发明实施例提供的详细流程进行了描述。
下面对本发明实施例提供的装置进行描述。参见图3,图3为本发明实施例提供的装置结构图。该装置实质上可为上面描述的流量清洗设备,其设置在被保护的web服务器之前,如图3所示,该装置可包括判断单元301,用于接收到客户端向所述web服务器发送的第一请求报文后,判断所述第一请求报文携带的源IP地址是否存在于已建立的认证通过白名单中,如果是,继续发送所述第一请求报文至所述web服务器;否则,发送重定向命令至所述客户端,以使所述客户端接收到所述重定向命令后重新发起第二请求报文;第一验证单元302,用于对接收的第二请求报文进行验证,如果验证通过,则向所述客户端推送确认页面,所述确认页面要求使用该客户端的用户输入该确认页面中显示的确认码;第二验证单元303,用于对用户输入的确认码进行验证,如果验证通过,则将所述源IP地址加入所述认证通过白名单中,并再次发送重定向命令至所述客户端,以使该客户端向所述web服务器发送第一请求报文。优选地,如图3所示,所述装置还包括监测单元304,用于在监测到所述web服务器的流量超过设定门限,或者在监测到所述web服务器的请求报文数量超过设定上限时开启所述装置配置的自然人行为验证功能;判断单元301是在所述自然人行为验证功能被开启后执行判断操作的。本实施例中,判断单元301在发送重定向命令至客户端之前进一步包括判断所述第一请求报文携带的源IP地址是否存在于已建立的黑名单中,如果是, 丢弃所述第一请求报文,否则,继续执行发送重定向命令至客户端的操作;第一验证单元302在推送确认页面之前进一步包括记录所述源IP地址;第二验证单元303对用户输入的确认码进行验证通过以下模块实现第二判断模块3031,用于判断当前时间与记录所述源IP地址的时间之差是否在预定时间内;验证模块3032,用于在第二判断模块3031的判断结果为是时,继续执行对用户输入的确认码进行验证的操作;在第二判断模块3031的判断结果为否时,将所述源IP地址加入黑名单中,并删除所述源IP地址的记录,结束当前流程。本实施例中,判断单元301通过以下模块实现发送重定向命令至客户端提取模块3011,用于从第一请求报文中提取出统一资源定位符URL ;发送模块3012,用于在该提取的URL中附加经过设定规则生成的字符形成字符串,将所述字符串携带在所述重定向命令中发送至客户端;本实施例中,所述客户端接收到重定向命令后重新发起第二请求报文包括所述客户端接收到所述重定向命令后重新发起URL为所述字符串的第二请求报文;基于此,本实施例中,第一验证单元302具体实现时可包括获取模块3021,用于获取所述第二请求报文携带的URL ;第一判断模块3022,用于判断获取的URL是否为所述字符串,如果是,则确定验证通过;否则,认为第二请求报文为新请求报文,将所述第二请求报文作为第一请求报文,返回判断单元中的判断操作。
以上对本发明实施例提供的装置进行了描述。由以上技术方案可以看出,本发明中,如果发送请求报文的客户端被自然人使用, 则在流量清洗设备向所述客户端推送确认页面时,自然人很显然可以正确识别确认页面中的确认码,也可以输入正确的确认码。如此,即可通过流量清洗设备对用户输入的确认码的验证,访问被保护的web服务器。而如果客户端为攻击程序,比如为代理或者木马,由于目前的技术无法使攻击程序快速正确识别确认码,因此,攻击程序不能在通过流量清洗设备对确认码的验证,进而也就无法真正访问web服务器。也就是说,本发明通过对确认码验证能够区分自然人和攻击程序,达到防范CC攻击的目的。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种防范CC攻击的方法,其特征在于,该方法应用于设置在被保护的web服务器之前的流量清洗设备上,该方法包括A,所述流量清洗设备接收到客户端向所述web服务器发送的第一请求报文后,判断所述第一请求报文携带的源IP地址是否存在于已建立的认证通过白名单中,如果是,继续发送所述第一请求报文至所述web服务器;否则,发送重定向命令至所述客户端,以使所述客户端接收到所述重定向命令后向所述流量清洗设备发起第二请求报文,并执行步骤B ;B,所述流量清洗设备对接收的第二请求报文进行验证,如果验证通过,则向所述客户端推送确认页面,所述确认页面要求使用所述客户端的用户输入该确认页面中显示的确认码;C,所述流量清洗设备对用户输入的确认码进行验证,如果验证通过,则将所述源IP地址加入所述认证通过白名单中,并再次发送重定向命令至所述客户端,以使所述客户端向所述web服务器发送第一请求报文,之后返回执行步骤A。
2.根据权利要求1所述的方法,其特征在于,所述步骤A的判断是在所述流量清洗设备开启自然人行为验证功能后执行的;其中,所述流量清洗设备在监测到所述web服务器的流量超过设定门限,或者在监测到所述 web服务器的请求报文数量超过设定上限时开启自然人行为验证功能。
3.根据权利要求1所述的方法,其特征在于,所述步骤A中,流量清洗设备发送重定向命令至客户端包括所述流量清洗设备从第一请求报文中提取出统一资源定位符URL,在该提取的URL中附加经过设定规则生成的字符形成字符串,将所述字符串携带在所述重定向命令中发送至所述客户端;所述步骤A中,客户端接收到重定向命令后向流量清洗设备发起第二请求报文包括 所述客户端接收到所述重定向命令后重新发起URL为所述字符串的第二请求报文。
4.根据权利要求3所述的方法,其特征在于,所述步骤B中,流量清洗设备对接收的第二请求报文进行验证包括所述流量清洗设备获取所述第二请求报文携带的URL,判断获取的URL是否为所述字符串,如果是,则确定验证通过;否则,认为第二请求报文为新请求报文,将所述第二请求报文作为第一请求报文,返回步骤A中的判断操作。
5.根据权利要求3所述的方法,其特征在于,所述步骤C中再次发送重定向命令至客户端包括将所述第二请求报文的URL还原为所述第一请求报文的URL ;将所述第一请求报文的 URL携带在重定向命令中发送至所述客户端。
6.根据权利要求1所述的方法,其特征在于,所述步骤A中,在发送重定向命令至客户端之前进一步包括判断所述第一请求报文携带的源IP地址是否存在于已建立的黑名单中,如果是,丢弃所述第一请求报文,否则,继续执行发送重定向命令至客户端的操作;所述步骤B中,流量清洗设备在推送确认页面之前进一步包括记录所述源IP地址;所述步骤C中,流量清洗设备对用户输入的确认码进行验证包括判断当前时间与记录所述源IP地址的时间之差是否在预定时间内,如果是,继续执行对用户输入的确认码进行验证的操作;否则,将所述源IP地址加入黑名单中,并删除所述源IP地址的记录,结束当前流程。
7.—种防范CC攻击的装置,其特征在于,该装置设置在被保护的web服务器之前,包括判断单元,用于接收到客户端向所述web服务器发送的第一请求报文后,判断所述第一请求报文携带的源IP地址是否存在于已建立的认证通过白名单中,如果是,继续发送所述第一请求报文至所述web服务器;否则,发送重定向命令至所述客户端,以使所述客户端接收到所述重定向命令后重新发起第二请求报文;第一验证单元,用于对接收的第二请求报文进行验证,如果验证通过,则向所述客户端推送确认页面,所述确认页面要求使用所述客户端的用户输入该确认页面中显示的确认码;第二验证单元,用于对用户输入的确认码进行验证,如果验证通过,则将所述源IP地址加入所述认证通过白名单中,并再次发送重定向命令至所述客户端,以使所述客户端向所述web服务器发送第一请求报文。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括监测单元,用于在监测到所述web服务器的流量超过设定门限,或者在监测到所述web 服务器的请求报文数量超过设定上限时开启所述装置配置的自然人行为验证功能; 所述判断单元是在所述自然人行为验证功能被开启后执行判断操作的。
9.根据权利要求7所述的装置,其特征在于,所述判断单元在发送重定向命令至客户端之前进一步包括判断所述第一请求报文携带的源IP地址是否存在于已建立的黑名单中,如果是,丢弃所述第一请求报文,否则,继续执行发送重定向命令至客户端的操作;所述第一验证单元在推送确认页面之前进一步包括记录所述源IP地址;所述第二验证单元对用户输入的确认码进行验证通过以下模块实现第二判断模块,用于判断当前时间与记录所述源IP地址的时间之差是否在预定时间内;验证模块,用于在所述第二判断模块的判断结果为是时,继续执行对用户输入的确认码进行验证的操作;在所述第二判断模块的判断结果为否时,将所述源IP地址加入黑名单中,并删除所述源IP地址的记录,结束当前流程。
10.根据权利要求7所述的装置,其特征在于,所述判断单元通过以下模块实现发送重定向命令至客户端提取模块,用于从第一请求报文中提取出统一资源定位符URL ; 发送模块,用于在该提取的URL中附加经过设定规则生成的字符形成字符串,将所述字符串携带在所述重定向命令中发送至客户端;所述客户端接收到重定向命令后重新发起第二请求报文包括所述客户端接收到所述重定向命令后重新发起URL为所述字符串的第二请求报文; 所述第一验证单元包括获取模块,用于获取所述第二请求报文携带的URL ;第一判断模块,用于判断获取的URL是否为所述字符串,如果是,则确定验证通过;否则,认为第二请求报文为新请求报文,将所述第二请求报文作为第一请求报文,返回判断单元中的判断操作。
全文摘要
本发明提供了一种防范CC攻击的方法和装置,其中,该方法应用于设置在被保护的web服务器之前的流量清洗设备上,包括A,流量清洗设备接收到客户端向web服务器发送的第一请求报文后,判断第一请求报文携带的源IP地址是否存在于已建立的认证通过白名单中,如果是,继续发送第一请求报文至web服务器;否则,发送重定向命令至所述客户端,以使该客户端接收到重定向命令后重新发起第二请求报文,并执行步骤B;B,流量清洗设备对接收的第二请求报文进行验证,如果验证通过,则向所述客户端推送确认页面,确认页面要求使用该客户端的用户输入该确认页面中显示的确认码;C,流量清洗设备对用户输入的确认码进行验证,如果验证通过,则将源IP地址加入认证通过白名单中,并再次发送重定向命令至所述客户端,以使该客户端向web服务器发送第一请求报文,之后返回执行步骤A。采用本发明,通过有效区分自然人和攻击程序,拦截CC攻击。
文档编号H04L29/06GK102413105SQ20101029155
公开日2012年4月11日 申请日期2010年9月25日 优先权日2010年9月25日
发明者李伟辰, 王飓 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1