CN112187793A - 一种ACK Flood攻击的防护方法及装置 - Google Patents
一种ACK Flood攻击的防护方法及装置 Download PDFInfo
- Publication number
- CN112187793A CN112187793A CN202011038308.7A CN202011038308A CN112187793A CN 112187793 A CN112187793 A CN 112187793A CN 202011038308 A CN202011038308 A CN 202011038308A CN 112187793 A CN112187793 A CN 112187793A
- Authority
- CN
- China
- Prior art keywords
- client
- ack
- message
- address
- sequence number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种ACK Flood攻击的防护方法及装置,用以解决在不断开客户端和服务器之间的连接的前提下,提高识别非法客户端的精确度的问题。该方法包括:中间防护设备针对拦截的每一客户端发送的ACK报文,基于在客户端发送ACK报文之前中间防护设备返回给客户端的ACK响应报文中的一段报文段,生成探测报文;丢弃ACK报文,将探测报文返回客户端;当确定客户端返回探测响应报文时,检测其中是否包含SACK选项;如果是,则根据SACK信息判定客户端是否为合法客户端;当确定客户端为合法客户端时,将客户端重传的ACK报文发送至相应的目标服务器;否则,将重传的ACK报文丢弃;如果否,则将客户端重传的ACK报文丢弃。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种ACK Flood攻击的防护方法及装置。
背景技术
在使用TCP(Transmission Control Protocol,传输控制协议)传输数据时,客户端和服务器需要先通过三次握手建立TCP连接,在建立TCP连接后,客户端和服务器就可以通过确认(Acknowledgement,ACK)报文(即:带确认标志位的传输控制协议报文)进行数据传输。服务器接收到客户端发送的ACK报文后,判断该ACK报文中携带的源IP(InternetProtocol,互联网协议)地址和源端口是否保存在本地会话列表中,如果未保存在本地会话列表中,则判定该ACK报文是非法报文,并将其丢弃。
一般情况下,攻击者通过向服务器发送大量携带有虚假源IP地址和端口的ACK报文,向服务器发起攻击,这种攻击即为ACK Flood攻击(即:带确认标志位的传输控制协议报文泛洪攻击),ACK Flood攻击是最常用的DDoS(Distributed denial of service attack,分布式拒绝服务攻击)方式之一,服务器在接收到这些携带有虚假源IP地址和端口的ACK报文后,查询本地会话列表时需要耗费大量处理资源,这样,不仅影响服务器对合法ACK报文的处理,还可能导致服务器瘫痪。
为了防御ACK Flood攻击,当前主流的防护方法有以下二种:
(1)中间防护设备在启动ACK Flood防护之后,丢弃其接收到的所有ACK报文,无论这些ACK报文是来自合法的客户端还是来自非法的客户端,这样,丢弃ACK报文的次数大于预设的重传次数后,会导致客户端断开与服务器的TCP连接,各个客户端会重新与服务器建立TCP连接,通过验证TCP三次握手来识别合法客户端。然而,这种方法虽然能够通过针对SYN(Synchronize Sequence Numbers,同步序列编号)报文的防护来识别非法客户端,但是其中断了合法客户端和服务器的连接,而当前很多合法客户端尤其是游戏业务和移动客户端等存在这样的协议行为:对于建立起的TCP连接,当连接断开后不再重连,进而,影响了合法客户端的业务。
(2)利用TCP的重传机制:中间防护设备丢弃其接收到的所有ACK报文后,合法客户端在固定时间段内未接收到相应的ACK响应报文时,会重传该ACK报文,而非法客户端可能无法在固定时间段内进行重传,从而就可以识别出非法客户端。然而,此方法比较容易被突破,如果非法客户端碰巧在固定时间段内重传了ACK报文,那么中间防护设备就会将其误识别为合法客户端,从而影响了中间防护设备识别非法客户端的准确度。
因此,如何在不断开客户端和服务器之间的连接的前提下,提高识别非法客户端的精确度,是现有技术亟待解决的技术问题之一。
发明内容
为了解决在不断开客户端和服务器之间的连接的前提下,提高识别非法客户端的精确度的问题,本发明实施例提供了一种ACK Flood攻击的防护方法及装置。
第一方面,本发明实施例提供了一种ACK Flood攻击的防护方法,包括:
中间防护设备针对拦截的每一客户端发送的ACK报文,基于在所述客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,其中,所述ACK响应报文为目标服务器通过所述中间防护设备返回给所述客户端的;
丢弃所述ACK报文,并将生成的探测报文返回至所述客户端;
当确定所述客户端基于接收到的所述探测报文返回相应的探测响应报文时,检测所述探测响应报文中是否包含SACK选项;
当检测到所述探测响应报文中包含所述SACK选项,根据所述SACK选项相应的SACK信息判定所述客户端是否为合法客户端;当确定所述客户端为合法客户端时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文发送至相应的目标服务器;否则,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃;
当检测到所述探测响应报文中不包含所述SACK选项时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃。
本发明实施例提供的ACK Flood攻击的防护方法中,中间防护设备针对拦截的每一客户端发送的ACK报文,基于在该客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,其中,所述ACK响应报文为目标服务器通过所述中间防护设备返回给所述客户端的,进而,丢弃所述ACK报文,并将生成的探测报文返回至所述客户端,当确定所述客户端基于接收到的所述探测报文返回相应的探测响应报文时,检测所述探测响应报文中是否包含SACK(Selective ACK,选择确认)选项,如果所述探测响应报文中包含SACK选项,则根据SACK选项相应的SACK信息判定所述客户端是否为合法客户端,如果所述客户端为合法客户端,则将该客户端重传的所述ACK报文以及该客户端后续发送的所有ACK报文发送至相应的目标服务器,如果判定所述客户端为非法客户端,则将该客户端重传的ACK报文以及后续发送的所有ACK报文丢弃,如果所述探测响应报文中不包含SACK选项时,则直接将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃,相比于现有技术,本发明实施例中,中间防护设备将在拦截的客户端当前发送的ACK报文之前由目标服务器通过该中间防护设备返回给所述客户端的ACK响应报文中的一段报文段携带在探测报文中,发送给所述客户端,对所述客户端是否为合法客户端进行探测,由于中间防护设备向客户端返回的是已发送过的目标服务器向客户端发送的ACK响应报文中的一段内容,此时,合法的客户端会在探测响应报文中的TCP选项中包含SACK字段,并通过SACK信息通知所述客户端已经接收到了这段报文段,而非法客户端返回的探测响应报文中不会包含此SACK信息,以此来判定所述客户端是合法客户端还是非法客户端,实现了在不断开客户端和服务器的连接的前提下,提高了识别非法客户端的精确度,并且,针对每一客户端,中间防护设备只需判定一次客户端是否为合法客户端,当客户端为合法客户端时,对其重传的ACK报文以及后续发送的所有ACK报文均直接放行,发送给目标服务器,当客户端为非法客户端时,将其重传的ACK报文以及后续发送的所有ACK报文均直接丢弃,进而,有效节约了目标服务器的处理资源。
较佳地,基于在所述客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,具体包括:
获取所述ACK报文携带的第一源IP地址、第一目的IP地址、第一源端口、第一目的端口、第一序列号和第一确认号;
将所述第一源IP地址作为第二目的IP地址,将所述第一目的IP地址作为第二源IP地址,将所述第一源端口作为第二目的端口,将所述第一目的端口作为第二源端口;
将所述第一确认号减去X作为第二序列号,其中,X为大于或等于2的整数,将所述第一序列号减去Y作为第二确认号,其中,Y为大于或等于0的整数,并设置报文长度为大于或等于1且小于X的整数,所述报文长度为所述报文段的长度;
根据所述第二源IP地址、所述第二目的IP地址、所述第二源端口、所述第二目的端口、所述第二序列号、所述第二确认号以及所述报文长度,生成所述探测报文。
较佳地,根据所述SACK选项相应的SACK信息判定所述客户端是否为合法客户端,具体包括:
获取所述SACK信息中包含的起始序列号以及结束序列号;
当确定所述起始序列号的值与所述第二序列号相同,且所述结束序列号的值等于所述第二序列号与所述报文长度之和时,则判定所述客户端是合法客户端;否则,判定所述客户端是非法客户端。
可选地,所述方法,还包括:
当确定在预设时间段内未收到所述客户端发送的探测响应报文时,向所述客户端重新发送所述探测报文。
第二方面,本发明实施例提供了一种ACK Flood攻击的防护装置,包括:
生成单元,用于针对拦截的每一客户端发送的ACK报文,基于在所述客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,其中,所述ACK响应报文为目标服务器通过所述中间防护设备返回给所述客户端的;
返回单元,用于丢弃所述ACK报文,并将生成的探测报文返回至所述客户端;
检测单元,用于当确定所述客户端基于接收到的所述探测报文返回相应的探测响应报文时,检测所述探测响应报文中是否包含SACK选项;
第一处理单元,用于当检测到所述探测响应报文中包含所述SACK选项,根据所述SACK选项相应的SACK信息判定所述客户端是否为合法客户端;当确定所述客户端为合法客户端时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文发送至相应的目标服务器;否则,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃;
第二处理单元,用于当检测到所述探测响应报文中不包含所述SACK选项时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃。
较佳地,所述生成单元,具体用于获取所述ACK报文携带的第一源IP地址、第一目的IP地址、第一源端口、第一目的端口、第一序列号和第一确认号;将所述第一源IP地址作为第二目的IP地址,将所述第一目的IP地址作为第二源IP地址,将所述第一源端口作为第二目的端口,将所述第一目的端口作为第二源端口;将所述第一确认号减去X作为第二序列号,其中,X为大于或等于2的整数,将所述第一序列号减去Y作为第二确认号,其中,Y为大于或等于0的整数,并设置报文长度为大于或等于1且小于X的整数,所述报文长度为所述报文段的长度;根据所述第二源IP地址、所述第二目的IP地址、所述第二源端口、所述第二目的端口、所述第二序列号、所述第二确认号以及所述报文长度,生成所述探测报文。
较佳地,所述第一处理单元,具体用于获取所述SACK信息中包含的起始序列号以及结束序列号;当确定所述起始序列号的值与所述第二序列号相同,且所述结束序列号的值等于所述第二序列号与所述报文长度之和时,则判定所述客户端是合法客户端;否则,判定所述客户端是非法客户端。
可选地,所述装置,还包括:
发送单元,用于当确定在预设时间段内未收到所述客户端发送的探测响应报文时,向所述客户端重新发送所述探测报文。
本发明提供的ACK Flood攻击的防护装置的技术效果可以参见上述第一方面或第一方面的各个实现方式的技术效果,此处不再赘述。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明所述的ACK Flood攻击的防护方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明所述的ACK Flood攻击的防护方法中的步骤。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的ACK Flood攻击的防护方法的实施流程示意图;
图2为本发明实施例提供的生成探测报文的实施流程示意图;
图3为本发明实施例提供的判定客户端是否为合法客户端的实施流程示意图;
图4为本发明实施例提供的ACK Flood攻击的防护装置的结构示意图;
图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了解决在不断开客户端和服务器之间的连接的前提下,提高识别非法客户端的精确度的问题,本发明实施例提供了一种ACK Flood攻击的防护方法及装置。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
如图1所示,其为本发明实施例提供的ACK Flood攻击的防护方法的实施流程示意图,可以包括以下步骤:
S11、中间防护设备针对拦截的每一客户端发送的ACK报文,基于在所述客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文。
具体实施时,客户端发送ACK报文与目标服务器进行数据传输,在客户端与目标服务器之间设置有中间防护设备,中间防护设备可以为防火墙等具有防护功能的安全设备。当中间防护设备检测到目标服务器返回的ACK响应报文流量超过预设阈值时,开启拦截功能,对客户端发送的ACK报文进行拦截,其中,所述预设阈值可以根据经验值自行设定,本发明实施例对此不作限定。
中间防护设备针对拦截的每一客户端发送的ACK报文,基于在所述客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,其中,所述ACK响应报文为目标服务器通过所述中间防护设备返回给所述客户端的。
具体地,按照如图2所示的流程生成探测报文,可以包括以下步骤:
S21、获取ACK报文携带的第一源IP地址、第一目的IP地址、第一源端口、第一目的端口、第一序列号和第一确认号。
具体实施时,中间防护设备针对拦截的每一客户端发送的ACK报文,获取所述ACK报文携带的四元组:源IP地址(第一源IP地址)、目的IP地址(记为第一目的IP地址)、源端口(记为第一源端口)、目的端口(记为第一目的端口)、序列号(记为第一序列号)和确认号(记为第一确认号),其中,所述第一目的IP地址,即为目标服务器的IP地址,目的端口,即为位于目标服务器上的一个指定端口。
S22、将所述第一源IP地址作为第二目的IP地址,将所述第一目的IP地址作为第二源IP地址,将所述第一源端口作为第二目的端口,将所述第一目的端口作为第二源端口。
具体实施时,中间防护设备将所述第一源IP地址作为第二目的IP地址,将所述第一目的IP地址作为第二源IP地址,将所述第一源端口作为第二目的端口,将所述第一目的端口作为第二源端口,即:将客户端的IP地址作为目的IP地址,将目标服务器的IP地址作为源IP地址,将客户端的端口作为目的端口,将目标服务器的端口作为源端口。将所述第二源IP地址、所述第二目的IP地址、所述第二源端口以及所述第二目的端口作为探测报文的四元组。
S23、将所述第一确认号减去X作为第二序列号,将所述第一序列号减去Y作为第二确认号,并设置报文长度为大于或等于1且小于X的整数。
具体实施时,中间防护设备将当前拦截的所述客户端发送的ACK报文的第一确认号减去X作为第二序列号,其中,X为大于或等于2的整数,将当前拦截的所述客户端发送的ACK报文的第一序列号减去Y作为第二确认号,其中,Y为大于或等于0的整数,并设置报文长度为大于或等于1且小于X的整数,所述报文长度为所述报文段的长度,所述报文段即:在客户端发送所述ACK报文之前目标服务器通过所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段。
本发明实施例中,可以用“SEQ1”表示所述客户端发送的ACK报文的第一序列号,用“SEQ_ACK1”表示所述客户端发送的ACK报文的第一确认号,则第二序列号可以表示为:SEQ_ACK1-X,X≥2,第二确认号可以表示为:SEQ1-Y,Y≥0,设置报文长度为Z,1≤Z<X,其中,Z的长度之所以设置为小于X,是为了保证选取的目标服务器通过所述中间防护设备返回给所述客户端的ACK响应报文中的报文段的长度不超过目标服务器向客户端返回的响应报文的总长度。
S24、根据所述第二源IP地址、所述第二目的IP地址、所述第二源端口、所述第二目的端口、所述第二序列号、所述第二确认号以及所述报文长度,生成所述探测报文。
具体实施时,中间防护设备根据所述第二源IP地址、所述第二目的IP地址、所述第二源端口、所述第二目的端口、所述第二序列号、所述第二确认号以及所述报文长度,生成所述探测报文。
假设在中间防护设备当前拦截客户端发送的ACK报文之前,目标服务器已向客户端返回1000字节的数据,中间防护设备当前拦截客户端发送的ACK报文的第一序列号(SEQ1)为200,第一确认号(SEQ_ACK1)为1001,可以设置X=50,则第二序列号为:SEQ_ACK1-X=1001-50=951,可以设置Y=1,则第二确认号为:SEQ1-Y=200-1=199,设置报文长度Z=10,表示将目标服务器已向客户端发送的1000字节的数据中的第951至961字节的数据携带在探测报文中返回至客户端,该探测报文也是ACK报文。
S12、丢弃所述ACK报文,并将生成的探测报文返回至所述客户端。
具体实施时,中间防护设备丢弃拦截的所述客户端发送的ACK报文,并将生成的包含有在客户端发送所述ACK报文之前目标服务器通过所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段的相关信息的探测报文返回至所述客户端。
S13、当确定所述客户端基于接收到的所述探测报文返回相应的探测响应报文时,检测所述探测响应报文中是否包含SACK选项,当检测到所述探测响应报文中包含SACK选项,则执行步骤S14,当检测到所述探测响应报文中不包含所述SACK选项时,则执行步骤S16。
具体实施时,中间防护设备当确定所述客户端基于接收到的所述探测报文返回相应的探测响应报文时,该探测响应报文也为ACK报文,首先将探测报文中携带的四元组和探测响应报文中各自携带的四元组进行匹配,当确定匹配后,再检测该探测响应报文的TCP选项(Option)中是否包含SACK字段,当检测到所述探测响应报文的TCP选项中包含SACK字段,则执行步骤S14,当检测到所述探测响应报文的TCP选项中不包含SACK字段,则执行步骤S16。SACK是TCP选项中的一种,它能使得接收方告诉发送方哪些报文段丢失,哪些报文段重传,哪些报文已经提前收到等信息,根据这些信息TCP就可以只重传那些真正丢失的报文段。
S14、根据所述SACK选项相应的SACK信息判定所述客户端是否为合法客户端,当确定所述客户端为合法客户端时,执行步骤S15,否则,执行步骤S16。
具体实施时,中间防护设备当检测到所述探测响应报文中包含所述SACK选项,根据所述SACK选项相应的SACK信息判定所述客户端是否为合法客户端。
具体地,按照如图3所示的流程判定客户端是否为合法客户端,可以包括以下步骤:
S31、获取客户端返回的探测响应报文中的SACK信息中包含的起始序列号以及结束序列号。
具体实施时,SACK信息标识报文段重传时,SACK信息中包含重传的起始序列号以及结束序列号,在SACK信息中,其左边(Left Edge)为起始序列号,右边(Right Edge)为结束序列号,获取所述起始序列号以及结束序列号。
S32、判断所述起始序列号的值与所述第二序列号是否相同、且所述结束序列号的值是否等于所述第二序列号与所述报文长度之和,如果是,则执行步骤S33,否则,执行步骤S34。
具体实施时,中间防护设备判断所述起始序列号的值与所述中间防护设备向所述客户端返回的探测报文中的第二序列号是否相同、且所述结束序列号的值是否等于所述第二序列号与所述报文长度之和,如果所述起始序列号的值与所述第二序列号相同,且所述结束序列号的值等于所述第二序列号与所述报文长度之和,则执行步骤S33,否则,执行步骤S34。
S33、判定所述客户端是合法客户端。
具体实施时,中间防护设备当确定所述起始序列号的值与所述第二序列号相同,且所述结束序列号的值等于所述第二序列号与所述报文长度之和时,则判定所述客户端是合法客户端。
仍延续步骤S24中的实例,如果客户端发送的探测响应报文中的SACK字段中的SACK信息的左边的起始序列号的值为:SEQ_ACK1-X=951,右边的结束序列号的值为:SEQ_ACK1-X+Z=961,则判定该客户端是合法客户端。
S34、判定所述客户端是非法客户端。
具体实施时,中间防护设备当确定不满足以下任一条件时:(1)中间防护设备当确定所述起始序列号的值与所述第二序列号相同,(2)所述结束序列号的值等于所述第二序列号与所述报文长度之和,则判定所述客户端是非法客户端。
仍延续步骤S24中的实例,如果客户端发送的探测响应报文中的SACK字段中的SACK信息的左边的起始序列号的值不等于951,右边的结束序列号的值等于961;或者左边的起始序列号的值等于951,而右边的结束序列号的值不等于961;或者左边的起始序列号的值既不等于951,右边的结束序列号的值也不等于961,则判定所述客户端为非法客户端。
S15、将所述客户端重传的ACK报文以及后续发送的所有ACK报文发送至相应的目标服务器。
具体实施时,本申请中使用TCP重传机制,当中间防护设备当确定所述客户端为合法客户端时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文直接发送至相应的目标服务器,而无需再次进行探测。
S16、将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃。
具体实施时,中间防护设备当确定所述客户端为非法客户端时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃,而不发送至目标服务器。
或者,中间防护设备当检测到所述探测响应报文中不包含所述SACK选项时,则判定所述客户端为非法客户端,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃。
一种可选的实施方式中,为了防止中间防护设备向客户端发送的探测报文丢失,当确定在预设时间段内未收到所述客户端发送的探测响应报文时,向所述客户端重新发送所述探测报文,如果在一定的时间之后,中间防护设备扔未收到客户端发送的探测响应报文,则认为该客户端为非法客户端,直接将该客户的重传的ACK报文及其后续发送的所有ACK报文丢弃。
本发明实施例提供的ACK Flood攻击的防护方法中,中间防护设备针对拦截的每一客户端发送的ACK报文,基于在该客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,其中,所述ACK响应报文为目标服务器通过所述中间防护设备返回给所述客户端的,进而,丢弃所述ACK报文,并将生成的探测报文返回至所述客户端,当确定所述客户端基于接收到的所述探测报文返回相应的探测响应报文时,检测所述探测响应报文中是否包含SACK选项,如果所述探测响应报文中包含SACK选项,则根据SACK选项相应的SACK信息判定所述客户端是否为合法客户端,如果所述客户端为合法客户端,则将该客户端重传的所述ACK报文以及该客户端后续发送的所有ACK报文发送至相应的目标服务器,如果判定所述客户端为非法客户端,则将该客户端重传的ACK报文以及后续发送的所有ACK报文丢弃,如果所述探测响应报文中不包含SACK选项时,则直接将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃,相比于现有技术,本发明实施例中,中间防护设备将在拦截的客户端当前发送的ACK报文之前由目标服务器通过该中间防护设备返回给所述客户端的ACK响应报文中的一段报文段携带在探测报文中,发送给所述客户端,对所述客户端是否为合法客户端进行探测,由于中间防护设备向客户端返回的是已发送过的目标服务器向客户端发送的ACK响应报文中的一段内容,此时,合法的客户端会在探测响应报文中的TCP选项中包含SACK字段,并通过SACK信息通知所述客户端已经接收到了这段报文段,而非法客户端返回的探测响应报文中不会包含此SACK信息,以此来判定所述客户端是合法客户端还是非法客户端,实现了在不断开客户端和服务器的连接的前提下,提高了识别非法客户端的精确度,并且,针对每一客户端,中间防护设备只需判定一次客户端是否为合法客户端,当客户端为合法客户端时,对其重传的ACK报文以及后续发送的所有ACK报文均直接放行,发送给目标服务器,当客户端为非法客户端时,将其重传的ACK报文以及后续发送的所有ACK报文均直接丢弃,进而,有效节约了目标服务器的处理资源。
基于同一发明构思,本发明实施例还提供了一种ACK Flood攻击的防护装置,由于上述ACK Flood攻击的防护装置解决问题的原理与ACK Flood攻击的防护方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,其为本发明实施例提供的ACK Flood攻击的防护装置的结构示意图,可以包括:
生成单元41,用于针对拦截的每一客户端发送的ACK报文,基于在所述客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,其中,所述ACK响应报文为目标服务器通过所述中间防护设备返回给所述客户端的;
返回单元42,用于丢弃所述ACK报文,并将生成的探测报文返回至所述客户端;
检测单元43,用于当确定所述客户端基于接收到的所述探测报文返回相应的探测响应报文时,检测所述探测响应报文中是否包含SACK选项;
第一处理单元44,用于当检测到所述探测响应报文中包含所述SACK选项,根据所述SACK选项相应的SACK信息判定所述客户端是否为合法客户端;当确定所述客户端为合法客户端时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文发送至相应的目标服务器;否则,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃;
第二处理单元45,用于当检测到所述探测响应报文中不包含所述SACK选项时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃。
较佳地,所述生成单元41,具体用于获取所述ACK报文携带的第一源IP地址、第一目的IP地址、第一源端口、第一目的端口、第一序列号和第一确认号;将所述第一源IP地址作为第二目的IP地址,将所述第一目的IP地址作为第二源IP地址,将所述第一源端口作为第二目的端口,将所述第一目的端口作为第二源端口;将所述第一确认号减去X作为第二序列号,其中,X为大于或等于2的整数,将所述第一序列号减去Y作为第二确认号,其中,Y为大于或等于0的整数,并设置报文长度为大于或等于1且小于X的整数,所述报文长度为所述报文段的长度;根据所述第二源IP地址、所述第二目的IP地址、所述第二源端口、所述第二目的端口、所述第二序列号、所述第二确认号以及所述报文长度,生成所述探测报文。
较佳地,所述第一处理单元44,具体用于获取所述SACK信息中包含的起始序列号以及结束序列号;当确定所述起始序列号的值与所述第二序列号相同,且所述结束序列号的值等于所述第二序列号与所述报文长度之和时,则判定所述客户端是合法客户端;否则,判定所述客户端是非法客户端。
可选地,所述装置,还包括:
发送单元,用于当确定在预设时间段内未收到所述客户端发送的探测响应报文时,向所述客户端重新发送所述探测报文。
基于同一技术构思,本发明实施例还提供了一种电子设备500,参照图5所示,电子设备500用于实施上述方法实施例记载的ACK Flood攻击的防护方法,该实施例的电子设备500可以包括:存储器501、处理器502以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如ACK Flood攻击的防护程序。所述处理器执行所述计算机程序时实现上述各个ACK Flood攻击的防护方法实施例中的步骤,例如图1所示的步骤S11。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如41。
本发明实施例中不限定上述存储器501、处理器502之间的具体连接介质。本申请实施例在图5中以存储器501、处理器502之间通过总线503连接,总线503在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器501可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器501也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器501是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器501可以是上述存储器的组合。
处理器502,用于实现如图4所示的一种ACK Flood攻击的防护方法,包括:
所述处理器502,用于调用所述存储器501中存储的计算机程序执行如图1中所示的步骤S11~步骤S16。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本发明提供的ACK Flood攻击的防护方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的ACK Flood攻击的防护方法中的步骤,例如,所述电子设备可以执行如图1中所示的步骤S11~步骤S16。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种ACK Flood攻击的防护方法,其特征在于,包括:
中间防护设备针对拦截的每一客户端发送的ACK报文,基于在所述客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,其中,所述ACK响应报文为目标服务器通过所述中间防护设备返回给所述客户端的;
丢弃所述ACK报文,并将生成的探测报文返回至所述客户端;
当确定所述客户端基于接收到的所述探测报文返回相应的探测响应报文时,检测所述探测响应报文中是否包含SACK选项;
当检测到所述探测响应报文中包含所述SACK选项,根据所述SACK选项相应的SACK信息判定所述客户端是否为合法客户端;当确定所述客户端为合法客户端时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文发送至相应的目标服务器;否则,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃;
当检测到所述探测响应报文中不包含所述SACK选项时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃。
2.如权利要求1所述的方法,其特征在于,基于在所述客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,具体包括:
获取所述ACK报文携带的第一源IP地址、第一目的IP地址、第一源端口、第一目的端口、第一序列号和第一确认号;
将所述第一源IP地址作为第二目的IP地址,将所述第一目的IP地址作为第二源IP地址,将所述第一源端口作为第二目的端口,将所述第一目的端口作为第二源端口;
将所述第一确认号减去X作为第二序列号,其中,X为大于或等于2的整数,将所述第一序列号减去Y作为第二确认号,其中,Y为大于或等于0的整数,并设置报文长度为大于或等于1且小于X的整数,所述报文长度为所述报文段的长度;
根据所述第二源IP地址、所述第二目的IP地址、所述第二源端口、所述第二目的端口、所述第二序列号、所述第二确认号以及所述报文长度,生成所述探测报文。
3.如权利要求2所述的方法,其特征在于,根据所述SACK选项相应的SACK信息判定所述客户端是否为合法客户端,具体包括:
获取所述SACK信息中包含的起始序列号以及结束序列号;
当确定所述起始序列号的值与所述第二序列号相同,且所述结束序列号的值等于所述第二序列号与所述报文长度之和时,则判定所述客户端是合法客户端;否则,判定所述客户端是非法客户端。
4.如权利要求1所述的方法,其特征在于,还包括:
当确定在预设时间段内未收到所述客户端发送的探测响应报文时,向所述客户端重新发送所述探测报文。
5.一种ACK Flood攻击的防护装置,其特征在于,包括:
生成单元,用于针对拦截的每一客户端发送的ACK报文,基于在所述客户端发送所述ACK报文之前所述中间防护设备返回给所述客户端的ACK响应报文中的一段报文段,生成探测报文,其中,所述ACK响应报文为目标服务器通过所述中间防护设备返回给所述客户端的;
返回单元,用于丢弃所述ACK报文,并将生成的探测报文返回至所述客户端;
检测单元,用于当确定所述客户端基于接收到的所述探测报文返回相应的探测响应报文时,检测所述探测响应报文中是否包含SACK选项;
第一处理单元,用于当检测到所述探测响应报文中包含所述SACK选项,根据所述SACK选项相应的SACK信息判定所述客户端是否为合法客户端;当确定所述客户端为合法客户端时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文发送至相应的目标服务器;否则,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃;
第二处理单元,用于当检测到所述探测响应报文中不包含所述SACK选项时,将所述客户端重传的ACK报文以及后续发送的所有ACK报文丢弃。
6.如权利要求5所述的装置,其特征在于,
所述生成单元,具体用于获取所述ACK报文携带的第一源IP地址、第一目的IP地址、第一源端口、第一目的端口、第一序列号和第一确认号;将所述第一源IP地址作为第二目的IP地址,将所述第一目的IP地址作为第二源IP地址,将所述第一源端口作为第二目的端口,将所述第一目的端口作为第二源端口;将所述第一确认号减去X作为第二序列号,其中,X为大于或等于2的整数,将所述第一序列号减去Y作为第二确认号,其中,Y为大于或等于0的整数,并设置报文长度为大于或等于1且小于X的整数,所述报文长度为所述报文段的长度;根据所述第二源IP地址、所述第二目的IP地址、所述第二源端口、所述第二目的端口、所述第二序列号、所述第二确认号以及所述报文长度,生成所述探测报文。
7.如权利要求6所述的装置,其特征在于,
所述第一处理单元,具体用于获取所述SACK信息中包含的起始序列号以及结束序列号;当确定所述起始序列号的值与所述第二序列号相同,且所述结束序列号的值等于所述第二序列号与所述报文长度之和时,则判定所述客户端是合法客户端;否则,判定所述客户端是非法客户端。
8.如权利要求5所述的装置,其特征在于,还包括:
发送单元,用于当确定在预设时间段内未收到所述客户端发送的探测响应报文时,向所述客户端重新发送所述探测报文。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~4任一项所述的ACK Flood攻击的防护方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~4任一项所述的ACK Flood攻击的防护方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011038308.7A CN112187793B (zh) | 2020-09-28 | 2020-09-28 | 一种ACK Flood攻击的防护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011038308.7A CN112187793B (zh) | 2020-09-28 | 2020-09-28 | 一种ACK Flood攻击的防护方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112187793A true CN112187793A (zh) | 2021-01-05 |
CN112187793B CN112187793B (zh) | 2022-09-16 |
Family
ID=73945104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011038308.7A Active CN112187793B (zh) | 2020-09-28 | 2020-09-28 | 一种ACK Flood攻击的防护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187793B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726757A (zh) * | 2021-08-24 | 2021-11-30 | 杭州迪普科技股份有限公司 | Https协议客户端的验证方法及装置 |
CN114640704A (zh) * | 2022-05-18 | 2022-06-17 | 山东云天安全技术有限公司 | 通讯数据获取方法、系统、计算机设备及可读存储介质 |
CN114697088A (zh) * | 2022-03-17 | 2022-07-01 | 神州绿盟成都科技有限公司 | 一种确定网络攻击的方法、装置及电子设备 |
CN116866055A (zh) * | 2023-07-26 | 2023-10-10 | 中科驭数(北京)科技有限公司 | 数据泛洪攻击的防御方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050060557A1 (en) * | 2003-08-25 | 2005-03-17 | Dong Lin | Method and apparatus for defending against distributed denial of service attacks on TCP servers by TCP stateless hogs |
EP1898586A1 (en) * | 2006-09-07 | 2008-03-12 | Mitsubishi Electric Information Technology Center Europe B.V. | Protection for data transmission network systems against SYN flood denial of service attacks |
CN105610852A (zh) * | 2016-01-15 | 2016-05-25 | 腾讯科技(深圳)有限公司 | 处理ack洪泛攻击的方法和装置 |
CN106302495A (zh) * | 2016-08-25 | 2017-01-04 | 北京神州绿盟信息安全科技股份有限公司 | 一种ACK Flood攻击的防护方法及中间防护装置 |
CN110099027A (zh) * | 2018-01-29 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 业务报文的传输方法和装置、存储介质、电子装置 |
-
2020
- 2020-09-28 CN CN202011038308.7A patent/CN112187793B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050060557A1 (en) * | 2003-08-25 | 2005-03-17 | Dong Lin | Method and apparatus for defending against distributed denial of service attacks on TCP servers by TCP stateless hogs |
EP1898586A1 (en) * | 2006-09-07 | 2008-03-12 | Mitsubishi Electric Information Technology Center Europe B.V. | Protection for data transmission network systems against SYN flood denial of service attacks |
CN105610852A (zh) * | 2016-01-15 | 2016-05-25 | 腾讯科技(深圳)有限公司 | 处理ack洪泛攻击的方法和装置 |
CN106302495A (zh) * | 2016-08-25 | 2017-01-04 | 北京神州绿盟信息安全科技股份有限公司 | 一种ACK Flood攻击的防护方法及中间防护装置 |
CN110099027A (zh) * | 2018-01-29 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 业务报文的传输方法和装置、存储介质、电子装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726757A (zh) * | 2021-08-24 | 2021-11-30 | 杭州迪普科技股份有限公司 | Https协议客户端的验证方法及装置 |
CN114697088A (zh) * | 2022-03-17 | 2022-07-01 | 神州绿盟成都科技有限公司 | 一种确定网络攻击的方法、装置及电子设备 |
CN114697088B (zh) * | 2022-03-17 | 2024-03-15 | 神州绿盟成都科技有限公司 | 一种确定网络攻击的方法、装置及电子设备 |
CN114640704A (zh) * | 2022-05-18 | 2022-06-17 | 山东云天安全技术有限公司 | 通讯数据获取方法、系统、计算机设备及可读存储介质 |
CN114640704B (zh) * | 2022-05-18 | 2022-08-19 | 山东云天安全技术有限公司 | 通讯数据获取方法、系统、计算机设备及可读存储介质 |
CN116866055A (zh) * | 2023-07-26 | 2023-10-10 | 中科驭数(北京)科技有限公司 | 数据泛洪攻击的防御方法、装置、设备及介质 |
CN116866055B (zh) * | 2023-07-26 | 2024-02-27 | 中科驭数(北京)科技有限公司 | 数据泛洪攻击的防御方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112187793B (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112187793B (zh) | 一种ACK Flood攻击的防护方法及装置 | |
Cheng et al. | TCP fast open | |
EP1751910B1 (en) | Preventing network reset denial of service attacks using embedded authentication information | |
Eddy | TCP SYN flooding attacks and common mitigations | |
CN109005175B (zh) | 网络防护方法、装置、服务器及存储介质 | |
CA2548476C (en) | Preventing network data injection attacks using duplicate-ack and reassembly gap approaches | |
CN110198293B (zh) | 服务器的攻击防护方法、装置、存储介质和电子装置 | |
EP2346205A1 (en) | A method and device for preventing network attack | |
CN108234473B (zh) | 一种报文防攻击方法及装置 | |
EP1433076A1 (en) | Protecting against distributed denial of service attacks | |
CN111970308A (zh) | 一种防护SYN Flood攻击的方法、装置及设备 | |
WO2010000171A1 (zh) | 一种通信的建立方法、系统和装置 | |
CN105610852A (zh) | 处理ack洪泛攻击的方法和装置 | |
CN107454065B (zh) | 一种UDP Flood攻击的防护方法及装置 | |
CN103095563A (zh) | 一种报文处理方法及系统 | |
CN110213204B (zh) | 攻击防护方法及装置、设备及可读存储介质 | |
US7203961B1 (en) | Preventing network reset denial of service attacks | |
Kumarasamy et al. | An active defense mechanism for TCP SYN flooding attacks | |
WO2019096104A1 (zh) | 攻击防范 | |
EP1154610A2 (en) | Methods and system for defeating TCP Syn flooding attacks | |
CN109936543A (zh) | ACK Flood攻击的防护方法、装置、设备及介质 | |
Eddy | RFC 4987: TCP SYN flooding attacks and common mitigations | |
CN113810398B (zh) | 一种攻击防护方法、装置、设备及存储介质 | |
CN105592055A (zh) | 一种用于tcp syn flood的防攻击方法和装置 | |
Cheng et al. | RFC 7413: TCP fast open |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |