一种基于在线交互式web动态防御的防应用ddos方法
技术领域
1.本发明涉及防应用ddos方法技术领域,更具体地,涉及一种基于在线交互式web动态防御的防应用ddos方法。
背景技术:
2.随着互联网上的数据量呈指数级增长,分布式拒绝服务 (ddos) 攻击变得越来越常见。事实上,ddos 攻击是当今互联网安全中主要关注的问题。与其他类型的网络攻击不同,ddos 攻击不会试图破坏网络的安全边界,它旨在通过大型连接的在线设备集(统称为僵尸网络)将大量恶意流量发送到目标服务器、服务或网络,使联机服务不可用。目标设备将被假流量超载,无法响应正常的访问流量。换句话说,ddos 攻击就像高速公路的交通堵塞,阻止正常交通到达其期望的目的地。
3.常见ddos攻击可大致分为三类:针对硬件,比如网络设备、路由器、交换机的dos、针对网络层核心实现的dos、针对应用层攻击的dos。ddos攻击的根源在于网络服务的公开性、面向对象的不确定性以及服务提供方资源的有限性,这些因素决定了当前还没有完善的解决方案。本发明采用了tcp cookie技术来提高ddos攻击的防御效果。
4.在ddos攻击中,攻击工具并不与服务器建立一个有效的tcp状态,它们只是拼命向服务器发送tcp syn单一
报文。所以当服务器发过来tcp syn ack时,根本没有相应的tcp连接来接收这个服务器发回来的报文,并根据这个报文到相应的 tcp连接状态而发任何有效的报文回去。因此,可以通过验证一个tcp连接是否是有效的连接,来确定这个连接是否是正常用户所发起的正常网络业务。
5.首先,需要解决的就是怎样能够不保存tcp的状态信息,又能够判断tcp连接的有效性。tcp cookie是一个特别的tcp序列号,服务器通过这个序列号,可以恢复这个tcp连接的整个状态信息。
保护层接收到tcp syn报文后,保护层要发送一个tcp syn ack回去,tcp的序列号是tcp syn cookie,根据这个cookie,一个完整的tcp状态可以恢复出来。注意这时保护层并不保存任何tcp状态,它在等着客户端是否能发送一个tcp ack回来,如果回来,就证明远程客户是一个有效的正常操作的客户。而当没有收到这个tcp ack时,就会发现这个源地址来的报文是不正常的报文,以后也不会让这个源地址来的报文通过。从而达到过滤ddos网络流量的目的,如图1所示。
6.但是,采用tcp cookie技术抵御ddos攻击时,当tcp连接出现ddos攻击异常时,为了发现ddos攻击异常,保护层都会重新进行连接尝试,有的甚至会尝试连接三、四次之多,非常消耗保护层的
时间,并且,如果攻击的强度较大,那么这个tcp cookie库必须是一个十分庞大的结构,在攻击过程中,其增长速度会是十分可怕的。有可能会使得系统资源在保存tcp cookie上耗费完,从而造成服务器没有办法对正常用户的syn报文反应,从而实际上形成了ddos攻击的效果。
技术实现要素:
7.本发明的目的在于提供一种基于在线交互式web动态防御的防应用ddos方法,该方法不需要多次进行连接尝试就能较短时间、较少发起来发现ddos攻击异常,节省资源,且不需要庞大的tcp cookie库。
8.为达到上述目的,提供了一种基于在线交互式web动态防御的防应用ddos方法,包括以下
步骤:步骤s1.在服务层前设有保护层;保护层包括tcp cookie库和黑名单列表;步骤s2.设置保护层tcp cookie库的超时时间和快速老化机制;步骤s3.保护层拦截所有的tcp syn报文和tcp rst报文并作为tcp cookie存储至tcp cookie库内;步骤s4.保护层向某一发送端回送一个tcp ack;步骤s5.对保护层的tcp cookie库进行超时检查,若保护层在超时时间内接收到该发送端发送的tcp rst报文,则执行步骤s6;若保护层在超过超时时间后仍未接收到该发送端发送的tcp rst报文,则执行步骤s7;步骤s6.保护层会判断这个发送端为客户端,并将该发送端发起的新连接通过保护层连接服务器;服务器端根据应用协议重新发起连接;保护层执行步骤s8;步骤s7.保护层会判断这个发送端为ddos攻击端,并将该发送端发送的tcp syn报文从tcp cookie库删除,并将该发送端的ip地址、端口加入黑名单列表;保护层执行步骤s8;步骤s8.计算出tcp cookie库的tcp cookie的条数,根据快速老化机制调整超时时间;步骤s9.重新从步骤s3开始顺序执行。
9.特别的,所述快速老化机制具体包括以下步骤:根据实际需要和tcp cookie库存储tcp cookie的条数最大值;划分若干个条数区间,每个条数区间对应一个时间值,且依循条数越大时间值越小的原则;接收tcp cookie的条数,tcp cookie的条数所在的条数区间对应的时间值即为超时时间。
10.特别的,所述tcp cookie库存储tcp cookie的条数最大值为20万条。
11.特别的,所述划分若干个条数区间的具体方法为:划分18万条以下为一个条数区间对应的时间值为10s,划分18万条至19万条为一个条数区间对应的时间值为5s,划分19万条至20万条为一个条数区间对应的时间值为2s。
12.特别的,所述保护层还包括用于检测tcp rst报文是否具有正确性、可靠性的cookie。
13.特别的,所述超时检查为使用c++编程的st lhash map的实现方式进行,根据tcp cookie的生成时间进行检索,检索当前时间点减去超时时间以前的tcp cookie的tcp rst报文数据。
14.特别的,所述应用协议为http协议或是telnet协议。
15.特别的,所述步骤s6中,保护层执行步骤s7的同时还执行以下步骤:设定一段安全时间,通过路由自动转移网络流量方向,不使用保护层,而让服务器直接接收网络流量;过了一段安全时间,通过路由自动转移网络流量方向,使用保护层,重新执行步骤s3。
16.特别的,所述自动转移网络流量方向为自动插入静态路由或者bgp路由来指导网络流量的方向的转移。
17.本发明的有益效果如下所示:1.本发明提出的一种基于在线交互式web动态防御的防应用ddos方法,在tcp连接出现ddos攻击异常时,并不需要多次进行连接尝试,消耗保护层的时间,这是因为保护层回送的是一个tcp ack报文,而不是tcp syn ack报文。当客户端接收到这个tcp ack 报文时,会认为tcp的连接出现了异常,它就会向服务器端发送一个tcp rst分组来重置当前的tcp连接,那就不需要保护层反复确认和等待了。
18.2.本发明在攻击的强度较大时,由于采用超时时间和快速老化机制,快速老化机制是根据实际需要和tcp cookie库存储tcp cookie的条数最大值来调整超时时间,对保护层的tcp cookie库进行超时检查,若保护层在超过超时时间后仍未接收到该发送端发送的tcp rst报文,保护层会判断这个发送端为ddos攻击端,并将该发送端发送的tcp syn报文从tcp cookie库删除,并将该发送端的ip地址、端口加入黑名单列表。由于自动快速删除数据能释放更多数据空间,因此,不需要tcp cookie库必须是一个十分庞大的结构,且不会使得系统资源在保存tcp cookie上耗费完,从而造成服务器没有办法对正常用户的syn报文反应,从而实际上形成了ddos攻击的效果。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为背景技术中保护层与客户端之间的tcp链接验证示意图。
21.图2为本发明实施例的保护层与客户端之间的tcp链接验证示意图。
具体实施方式
22.下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
23.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
24.需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
25.此外,术语“水平”、“竖直”、“悬垂”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
26.如图2所示,本发明实施例一种基于在线交互式web动态防御的防应用ddos方法,包括:一种基于在线交互式web动态防御的防应用ddos方法,包括以下步骤:步骤s1.在服务层前设有保护层;保护层包括tcp cookie库和黑名单列表;步骤s2.设置保护层tcp cookie库的超时时间和快速老化机制;步骤s3.保护层拦截所有的tcp syn报文和tcp rst报文并作为tcp cookie存储至tcp cookie库内;步骤s4.保护层向某一发送端回送一个tcp ack;步骤s5.对保护层的tcp cookie库进行超时检查,若保护层在超时时间内接收到该发送端发送的tcp rst报文,则执行步骤s6;若保护层在超过超时时间后仍未接收到该发送端发送的tcp rst报文,则执行步骤s7;步骤s6.保护层会判断这个发送端为客户端,并将该发送端发起的新连接通过保护层连接服务器;服务器端根据应用协议重新发起连接;应用协议为http协议或是telnet协议。保护层执行步骤s8;步骤s7.保护层会判断这个发送端为ddos攻击端,并将该发送端发送的tcp syn报文从tcp cookie库删除,并将该发送端的ip地址、端口加入黑名单列表;保护层执行步骤s8;步骤s8.计算出tcp cookie库的tcp cookie的条数,根据快速老化机制调整超时时间;步骤s9.重新从步骤s3开始顺序执行。
27.快速老化机制具体包括以下步骤:根据实际需要和tcp cookie库存储tcp cookie的条数最大值;划分若干个条数区间,每个条数区间对应一个时间值,且依循条数越大时间值越小的原则;接收tcp cookie的条数,tcp cookie的条数所在的条数区间对应的时间值即为超时时间。本发明实施例的tcp cookie库存储tcp cookie的条数最大值为20万条。划分若干个条数区间的具体方法为:划分18万条以下为一个条数区间对应的时间值为10s,划分18万条至19万条为一个条数区间对应的时间值为5s,划分19万条至20万条为一个条数区间对应的时间值为2s。
28.本发明实施例的保护层还包括用于检测tcp rst报文是否具有正确性、可靠性的cookie。
29.本发明实施例的超时检查为使用c++编程的st lhash map的实现方式进行,根据tcp cookie的生成时间进行检索,检索当前时间点减去超时时间以前的tcp cookie的tcp rst报文数据。对tcpcookie库的操作,有一个关键性的问题,是对超时判断时的遍历问题。因为cookie库的庞大,对其遍历是一个很耗时耗资源的问题,本发明实施例采用上述方法进行检索,能够完美解决该问题。
30.步骤s6中,保护层执行步骤s7的同时还执行以下步骤:设定一段安全时间,通过路由自动转移网络流量方向,不使用保护层,而让服务器直接接收网络流量;过了一段安全时间,通过路由自动转移网络流量方向,使用保护层,重新执行步骤s3。自动转移网络流量方向为自动插入静态路由或者bgp路由来指导网络流量的方向的转移。一般的服务器不是经常遭受ddos攻击的,如果在平时也需要所有的链接都经过保护层的验证,将是一件很浪费
的事情。本发明实施例采用上面步骤能在安全时间让服务器直接接收网络流量,节省了保护层资源,而通过路由自动转移网络流量方向,在现代网络中己经是很常用的技术了。
31.本发明实施例的有益效果如下所示:1.本发明实施例提出的一种基于在线交互式web动态防御的防应用ddos方法,在tcp连接出现ddos攻击异常时,并不需要多次进行连接尝试,消耗保护层的时间,这是因为保护层回送的是一个tcp ack报文,而不是tcp syn ack报文。当客户端接收到这个tcp ack 报文时,会认为tcp的连接出现了异常,它就会向服务器端发送一个tcp rst分组来重置当前的tcp连接,那就不需要保护层反复确认和等待了。
32.2.本发明实施例在攻击的强度较大时,由于采用超时时间和快速老化机制,快速老化机制是根据实际需要和tcp cookie库存储tcp cookie的条数最大值来调整超时时间,对保护层的tcp cookie库进行超时检查,若保护层在超过超时时间后仍未接收到该发送端发送的tcp rst报文,保护层会判断这个发送端为ddos攻击端,并将该发送端发送的tcp syn报文从tcp cookie库删除,并将该发送端的ip地址、端口加入黑名单列表。由于自动快速删除数据能释放更多数据空间,因此,不需要tcp cookie库必须是一个十分庞大的结构,且不会使得系统资源在保存tcp cookie上耗费完,从而造成服务器没有办法对正常用户的syn报文反应,从而实际上形成了ddos攻击的效果。
33.虽然结合附图描述了本发明的实施方式,但是专利所有者可以在所附权利要求的范围之内做出各种变形或修改,只要不超过本发明的权利要求所描述的保护范围,都应当在本发明的保护范围之内。
技术特征:
1.一种基于在线交互式web动态防御的防应用ddos方法,其特征在于,包括以下步骤:步骤s1.在服务层前设有保护层;保护层包括tcp cookie库和黑名单列表;步骤s2.设置保护层tcp cookie库的超时时间和快速老化机制;步骤s3.保护层拦截所有的tcp syn报文和tcp rst报文并作为tcp cookie存储至tcp cookie库内;步骤s4.保护层向某一发送端回送一个tcp ack;步骤s5.对保护层的tcp cookie库进行超时检查,若保护层在超时时间内接收到该发送端发送的tcp rst报文,则执行步骤s6;若保护层在超过超时时间后仍未接收到该发送端发送的tcp rst报文,则执行步骤s7;步骤s6.保护层会判断这个发送端为客户端,并将该发送端发起的新连接通过保护层连接服务器;服务器端根据应用协议重新发起连接;保护层执行步骤s8;步骤s7.保护层会判断这个发送端为ddos攻击端,并将该发送端发送的tcp syn报文从tcp cookie库删除,并将该发送端的ip地址、端口加入黑名单列表;保护层执行步骤s8;步骤s8.计算出tcp cookie库的tcp cookie的条数,根据快速老化机制调整超时时间;步骤s9.重新从步骤s3开始顺序执行。2.根据权利要求1所述的一种基于在线交互式web动态防御的防应用ddos方法,其特征在于:所述快速老化机制具体包括以下步骤:根据实际需要和tcp cookie库存储tcp cookie的条数最大值;划分若干个条数区间,每个条数区间对应一个时间值,且依循条数越大时间值越小的原则;接收tcp cookie的条数,tcp cookie的条数所在的条数区间对应的时间值即为超时时间。3. 根据权利要求2所述的一种基于在线交互式web动态防御的防应用ddos方法,其特征在于:所述tcp cookie库存储tcp cookie的条数最大值为20万条。4.根据权利要求3所述的一种基于在线交互式web动态防御的防应用ddos方法,其特征在于:划分若干个条数区间的具体方法为:划分18万条以下为一个条数区间对应的时间值为10s,划分18万条至19万条为一个条数区间对应的时间值为5s,划分19万条至20万条为一个条数区间对应的时间值为2s。5. 根据权利要求1所述的一种基于在线交互式web动态防御的防应用ddos方法,其特征在于:所述保护层还包括用于检测tcp rst报文是否具有正确性、可靠性的cookie。6. 根据权利要求1所述的一种基于在线交互式web动态防御的防应用ddos方法,其特征在于:所述超时检查为使用c++编程的st lhash map的实现方式进行,根据tcp cookie的生成时间进行检索,检索当前时间点减去超时时间以前的tcp cookie的tcp rst报文数据。7.根据权利要求1所述的一种基于在线交互式web动态防御的防应用ddos方法,其特征在于:所述应用协议为http协议或是telnet协议。8.根据权利要求1所述的一种基于在线交互式web动态防御的防应用ddos方法,其特征在于:所述步骤s6中,保护层执行步骤s7的同时还执行以下步骤:设定一段安全时间,通过路由自动转移网络流量方向,不使用保护层,而让服务器直接接收网络流量;过了一段安全时间,通过路由自动转移网络流量方向,使用保护层,重新执行步骤s3。9.根据权利要求8所述的一种基于在线交互式web动态防御的防应用ddos方法,其特征在于:所述自动转移网络流量方向为自动插入静态路由或者bgp路由来指导网络流量的方
向的转移。
技术总结
本发明公开一种基于在线交互式WEB动态防御的防应用DDoS方法,包括以下步骤:步骤S1.在服务层前设有保护层;保护层包括TCP cookie库和黑名单列表;步骤S2.设置保护层TCP cookie库的超时时间和快速老化机制;步骤S3.保护层拦截所有的TCP SYN报文和TCP RST报文并作为TCP cookie存储至TCP cookie库内;步骤S4.保护层向某一发送端回送一个TCP ACK;步骤S5.对保护层的TCP cookie库进行超时检查,执行步骤S6或执行步骤S7;步骤S8.根据快速老化机制调整超时时间。本发明能较短时间、较少发起来发现DDoS攻击异常,节省资源。节省资源。节省资源。
技术研发人员:
凌颖 杨春燕 黎新 余通 宾冬梅 韩松明 谢铭 卢杰科 唐福川 明少锋
受保护的技术使用者:
广西电网有限责任公司电力科学研究院
技术研发日:
2022.08.10
技术公布日:
2022/12/12