专利名称:分布式攻击阻止方法及装置的制作方法
技术领域:
本发明涉及通信领域,具体而言,涉及一种分布式攻击阻止方法及装置。
技术背景
CC攻击是DDOS (分布式拒绝服务)的一种,相比其它的DDOS攻击CC似乎更有技术含量一些。这种攻击见不到虚假IP,见不到特别大的异常流量,但造成服务器无法进行正常连接,由此可见其危害性。最让站长们忧虑的是这种攻击技术含量低,利用工具和一些 IP代理一个初、中级的电脑水平的用户就能够实施攻击。
在CC攻击中,攻击者控制某些主机不停地发送大量数据包给对方服务器造成服务器资源完全占用,一直到宕机崩溃。CC主要是用来攻击页面的,当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(有多少线程就可以模拟多少用户) 不停地访问那些需要大量数据操作(需要大量CPU时间)的页面,造成服务器资源的占用, CPU长时间处于100%使用率,永远都有处理不完的连接直至网络拥塞,正常的访问被中止。
CC攻击可分为两种攻击方式,第一种是代理CC攻击黑客借助代理服务器生成指向受害主机的合法网页请求,实现DDOS和伪装。第二种是肉鸡CC攻击黑客利用CC攻击软件,控制大量肉鸡发动攻击。
在网络安全设备中,传统的防CC攻击手段基本上都基于对服务器访问的频率设置阈值进行限制。大致有以下两种。
一种主要是基于访问频率的阈值的限制,当访问频率达到用户设定的阈值后,便丢弃后续数据。图1是根据现有技术的防CC攻击手段示意图一,如图1所示,其中虚线线条代表攻击流量,实线线条代表正常流量。假如用户设置的阈值为N(次)/秒,当流经 Firewal 1的http Get次数达到N次/秒这个频率后,Firewal 1会丢弃超过这个阈值的http Get请求;如上图所示,他不会去识别是否是CC的攻击流量。该技术最大的缺点是当丢弃 http Get请求时,只负责丢弃超过阈值部分流量,这部分流量中包含攻击流量和正常流量, 导致部分攻击流量被放过;同时部分正常流量被丢弃。
另一种是在服务器上通过软件进行限制,通常的做法是在Web引擎中开发基于访问频率的阈值的限制。该技术主要是基于访问频率的阈值的限制,当访问频率达到用户设定的阈值后,便丢弃后续数据。图2是根据现有技术的防CC攻击手段示意图二,如图2所示假如用户设置的阈值为N(次)/秒,当防CC攻击模块统计的http Get次数达到N次/ 秒这个频率后,引擎会丢弃超过这个阈值的http Get请求;如上图所示,他不会去识别是否是CC的攻击流量。该技术最大的缺点就是当丢弃http Get请求时,只负责丢弃超过阈值部分流量,这部分流量中包含攻击流量和正常流量,导致部分攻击流量被放过;同时部分正常流量被丢弃。另外,由于不同用户的Web服务器用到的引擎不同,导致需要为每个用户开发单独的防cc攻击模块,通用性较差。发明内容
本发明提供了一种分布式攻击阻止方法及装置,以至少解决相关技术中在达到预设访问量或访问频率时,直接丢弃超过阈值的流量,影响正常访问网站的问题。
根据本发明的一个方面,提供了一种分布式攻击阻止方法,包括接收到客户端向第一 URL发送的请求报文;向客户端发送携带有第二 URL的应答报文,其中第二 URL是根据第一 URL生成的;接收到客户端向第二 URL发送的请求报文;向网络服务器发送请求报文。
优选地,第二 URL是根据第一 URL和第一验证码生成的,第一验证码是根据系统选择的密钥和/或客户端的客户端信息生成的。
优选地,在向网络服务器发送请求报文之前,还包括验证客户端向第二 URL发送的请求报文中携带的第二验证码与第一验证码是否一致;如果判断结果为是,则执行向网络服务器发送删除第二验证码后的请求报文的操作。
优选地,在向网络服务器发送请求报文之前,还包括验证客户端向第二 URL发送的请求报文中携带的第二验证码是否正确;如果判断结果为是,则执行向网络服务器发送删除第二验证码后的请求报文的操作。
优选地,系统选择的密钥是随机生成的。
优选地,客户端信息包括以下至少之一客户端的URI、客户端的互联网协议IP地址、客户端的端口地址、客户端的浏览器类型。
优选地,在接收到客户端向第二URL发送的请求报文之前,还包括采用HTTP重定向应答自动触发客户端向第二 URL发送请求报文。
优选地,在向客户端发送携带有第二 URL的应答报文之前,还包括在应答报文中携带执行脚本,其中执行脚本用于自动触发客户端向第二 URL发送请求报文。
根据本发明的另一个方面,提供了一种分布式攻击阻止装置,包括第一接收模块,用于接收客户端向第一 URL发送的请求报文;第一发送模块,用于向客户端发送携带有第二 URL值的应答报文,其中第二 URL是根据第一 URL生成的;第二接收模块,用于接收客户端向第二 URL发送的请求报文;第二发送模块,用于向网络服务器发送请求报文。
通过本发明,分布式攻击阻止装置向客户端发送携带第二 URL值的应答报文,只有接收到该客户端向第二 URL值发送的二次请求时,才会向网络服务器发送该请求报文, 解决了在达到预设访问量或访问频率时,直接丢弃超过阈值的流量,影响正常访问网站的问题,进而保证了普通用户能正常地访问网站。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中
图1是根据现有技术的防CC攻击手段示意图一;
图2是根据现有技术的防CC攻击手段示意图二 ;
图3是根据本发明实施例的分布式攻击阻止方法的流程图一;
图4是根据本发明实施例的分布式攻击阻止方法的流程图二 ;
图5是根据本发明优选实施例的分布式攻击阻止方法的示意图6是根据本发明实施例的分布式攻击阻止装置的结构框图7是根据本发明优选实施例的分布式攻击阻止装置的结构框图一;
图8是根据本发明优选实施例的分布式攻击阻止装置的结构框图二。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明提供了一种分布式攻击阻止方法,图3是根据本发明实施例的分布式攻击阻止方法的流程图一,如图3所示,包括如下的步骤S302至步骤S308。
步骤S302,接收到客户端向第一 URL发送的请求报文。
步骤S304,向客户端发送携带有第二 URL的应答报文,其中第二 URL是根据第一 URL生成的。
步骤S306,接收到客户端向第二 URL发送的请求报文。
步骤S308,向网络服务器发送请求报文。
相关技术中,在接收到来自客户端的请求报文时,分布式攻击阻止装置在达到预设访问量或访问频率时,直接丢弃超过阈值的流量,从而影响部分正常的访问。通过本发明实施例,分布式攻击阻止装置向客户端发送携带第二 URL值的应答报文,只有接收到该客户端向第二 URL值发送的二次请求时,才会向网络服务器发送该请求报文,分布式攻击无法进行二次请求,从而避免了分布式攻击且保证了对网站正常的访问。
优选地,第二 URL是根据第一 URL和第一验证码生成的,第一验证码是根据系统选择的密钥和/或客户端的客户端信息生成的。
优选地,在向网络服务器发送请求报文之前,还包括验证客户端向第二 URL发送的请求报文中携带的第二验证码与第一验证码是否一致;如果判断结果为是,则执行向网络服务器发送删除第二验证码后的请求报文的操作。在本优选实施例中,通过验证两次验证码是否一致,即可判断此次访问是否是普通用户的正常访问,如果是正常的访问,则发送请求报文,在用户与网络服务器之间建立连接。
优选地,在向网络服务器发送请求报文之前,还包括验证客户端向第二 URL发送的请求报文中携带的第二验证码是否正确;如果判断结果为是,则执行向网络服务器发送删除第二验证码后的请求报文的操作。在本优选实施例中,通过验证第二次验证码是否正确正确,即可判断此次访问是否是普通用户的正常访问,如果是正常的访问,则发送请求报文,在用户与网络服务器之间建立连接。
优选地,系统选择的密钥是随机生成的。通过本优选实施例,系统不需进行过多计算即可生成所需密钥,节约了系统的资源。
优选地,客户端信息包括以下至少之一客户端的URI、客户端的互联网协议IP地址、客户端的端口地址、客户端的浏览器类型。
优选地,在接收到客户端向第二URL发送的请求报文之前,还包括采用HTTP重定向应答自动触发客户端向第二 URL发送请求报文。
优选地,在向客户端发送携带有第二 URL的应答报文之前,还包括在应答报文中携带执行脚本,其中执行脚本用于自动触发客户端向第二 URL发送请求报文。
图4是根据本发明实施例的分布式攻击阻止方法的流程图一,如图4所示,包括如下的步骤S402至步骤S412。
步骤S402,客户端发送http request报文。
步骤S404,Firewall代替Web server回应的应答报文。
步骤S406,客户端的再次(请求+验证)请求报文。
步骤S408,Firewal 1处理后转发请求报文。
步骤S410,Web Server 发送 response 报文。
步骤 S412,Firewall 转发 Web Server 的 response 报文。
采用http请求再次验证技术,当收到一个http请求报文时,不将该请求提交给服务器处理,而是模拟服务器向请求段发送一个经过构造的应答报文,应答报文中嵌入URL 值。
TCP是http协议的底层承载协议,因此在进行CC攻击的时候,也会占用服务器的协议栈中的连接;在我们的解决方案中不做TCP的代理。即允许三次握手的建立。
客户端发送的请求,例如GET/xxx HTTP/1. 1,被发送给分布式攻击阻止装置时,分布式攻击阻止装置直接给客户端返回应答码为302的临时重定向应答。重定向后的URL = URL+Parameter,参数的内容为分布式攻击阻止装置随机生成的加密的验证码。
客户端在得到应答后,会根据重定向的内容,再次发起请求,由于分布式攻击阻止装置给客户端返回的重定向后的URL为原始URL+Parameter,所以客户端会再次向服务器发起请求。
设备在收到第二次请求之后,会验证连接后面参数的值是否与期待值相同。如果一致,则去掉第二次的请求中的参数后,将请求发送给HTTP Server0
如果是利用自动化工具进行分布式攻击,由于工具不具备浏览器的功能,无法解析应答码,并构造新的请求,所以步骤C3)就不会执行,这样便过滤掉了所有的攻击流量。
本发明所要解决的技术问题包括以下几点。
1、传统以限制速率方式防CC攻击最大的问题就是限制不准,会放过大量攻击流量,同时会丢弃一部分正常流量;利用此方法可以100%识别攻击流量,并全部过滤掉。
2、通过代理服务器发动的CC攻击可以全部过滤。
3、通过肉鸡发动的CC攻击可以全部过滤。
4、无需用户设置,自动识别攻击行为并过滤。
下面将结合实例对本发明实施例的实现过程进行详细描述。
某公司的Web服务器频繁遭受大量的CC攻击,导致正常业务中断,部署传统防CC 攻击设备后,仍有部分用户无法正常访问该服务器。需求如下
1)有效防护针对Web服务器的CC攻击;
2)降低防护产品的误判率,不允许丢弃正常用户的访问;
3)不需要对防护设备进行复杂配置。
图5是根据本发明优选实施例的分布式攻击阻止方法的示意图。如图5所示,虚线线条代表来自真实IP的攻击流量,点线线条代表来自虚假源IP的攻击流量,实线线条代表正常流量。
通过本优选实施例,在未对防护设备进行复杂配置的情况下,有效地阻止了分布式攻击,同时保证了正常用户的访问。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种分布式攻击阻止装置,该装置可以用于实现上述分布式攻击阻止方法。图6是根据本发明实施例的分布式攻击阻止装置的结构框图,如图6所示包括第一接收模块62、第一发送模块64、第二接收模块66和第二发送模块68。下面对其结构进行详细描述。
第一接收模块62,用于接收客户端向第一URL发送的请求报文;第一发送模块64, 用于向客户端发送携带有第二URL值的应答报文,其中第二URL是根据第一 URL生成的;第二接收模块66,用于接收客户端向第二 URL发送的请求报文;第二发送模块68,用于向网络服务器发送请求报文。
图7是根据本发明优选实施例的分布式攻击阻止装置的结构框图一,如图7所示, 上述装置还包括第一验证模块610,用于验证客户端向第二 URL发送的请求报文中携带的第二验证码与第一验证码是否一致;第一执行模块612,连接至第一验证模块610,用于在判断结果为是的情况下,执行向网络服务器发送删除第二验证码后的请求报文的操作。
图8是根据本发明优选实施例的分布式攻击阻止装置的结构框图二,如图8所示, 上述装置还包括第二验证模块614,用于验证客户端向第二 URL发送的请求报文中携带的第二验证码是否正确;第二执行模块616,连接至第二验证模块614,用于在判断结果为是的情况下,执行向网络服务器发送删除第二验证码后的请求报文的操作。
需要说明的是,装置实施例中描述的分布式攻击阻止装置对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。
综上所述,根据本发明提供的上述实施例,提供了一种分布式攻击阻止方法及装置。通过本发明,分布式攻击阻止装置向客户端发送携带第二 URL值的应答报文,只有接收到该客户端向第二 URL值的二次请求时,才会向网络服务器发送该请求报文,,解决了在达到预设访问量或访问频率时,直接丢弃超过阈值的流量,影响正常访问网站的问题,进而保证了普通用户能正常地访问网站。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种分布式攻击阻止方法,其特征在于包括接收到客户端向第一 URL发送的请求报文;向所述客户端发送携带有第二 URL的应答报文,其中所述第二URL是根据所述第一URL 生成的;接收到所述客户端向所述第二 URL发送的所述请求报文;向网络服务器发送所述请求报文。
2.根据权利要求1所述的方法,其特征在于,所述第二URL是根据所述第一URL和第一验证码生成的,所述第一验证码是根据系统选择的密钥和/或所述客户端的客户端信息生成的。
3.根据权利要求2所述的方法,其特征在于,在向网络服务器发送所述请求报文之前, 还包括验证所述客户端向所述第二 URL发送的所述请求报文中携带的第二验证码与所述第一验证码是否一致;如果判断结果为是,则执行向所述网络服务器发送删除所述第二验证码后的所述请求报文的操作。
4.根据权利要求2所述的方法,其特征在于,在向网络服务器发送所述请求报文之前, 还包括验证所述客户端向所述第二 URL发送的所述请求报文中携带的第二验证码是否正确;如果判断结果为是,则执行向所述网络服务器发送删除所述第二验证码后的所述请求报文的操作。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述系统选择的密钥是随机生成的。
6.根据权利要求2至4中任一项所述的方法,其特征在于,所述客户端信息包括以下至少之一所述客户端的URI、所述客户端的互联网协议IP地址、所述客户端的端口地址、所述客户端的浏览器类型。
7.根据权利要求1至4中任一项所述的方法,其特征在于,在接收到所述客户端向所述第二 URL发送的所述请求报文之前,还包括采用HTTP重定向应答自动触发所述客户端向所述第二 URL发送所述请求报文。
8.根据权利要求1至4中任一项所述的方法,其特征在于,在向所述客户端发送携带有第二 URL的应答报文之前,还包括在所述应答报文中携带执行脚本,其中所述执行脚本用于自动触发所述客户端向所述第二 URL发送所述请求报文。
9.一种分布式攻击阻止装置,其特征在于包括第一接收模块,用于接收客户端向第一 URL发送的请求报文;第一发送模块,用于向所述客户端发送携带有第二 URL值的应答报文,其中所述第二 URL是根据所述第一 URL生成的;第二接收模块,用于接收所述客户端向所述第二 URL发送的所述请求报文;第二发送模块,用于向网络服务器发送所述请求报文。
全文摘要
本发明公开了一种分布式攻击阻止方法及装置,该方法包括接收到客户端向第一URL发送的请求报文;向客户端发送携带有第二URL的应答报文,其中第二URL是根据第一URL生成的;接收到客户端向第二URL发送的请求报文;向网络服务器发送请求报文。本发明保证了普通用户能正常地访问网站。
文档编号H04L29/08GK102510386SQ20111044231
公开日2012年6月20日 申请日期2011年12月26日 优先权日2011年12月26日
发明者刘洪亮, 常磊, 张斌 申请人:山石网科通信技术(北京)有限公司