CN110198293B - 服务器的攻击防护方法、装置、存储介质和电子装置 - Google Patents
服务器的攻击防护方法、装置、存储介质和电子装置 Download PDFInfo
- Publication number
- CN110198293B CN110198293B CN201810306774.5A CN201810306774A CN110198293B CN 110198293 B CN110198293 B CN 110198293B CN 201810306774 A CN201810306774 A CN 201810306774A CN 110198293 B CN110198293 B CN 110198293B
- Authority
- CN
- China
- Prior art keywords
- confirmation message
- acknowledgement
- message
- target
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种服务器的攻击防护方法、装置、存储介质和电子装置。其中,该方法包括:获取客户端发送的第一确认报文;在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文;在第一目标时间内获取客户端发送的第二确认报文;在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。本发明解决了相关技术中服务器的攻击防护效率低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种服务器的攻击防护方法、装置、存储介质和电子装置。
背景技术
目前,在对服务器进行攻击防护时,攻击防护的算法主要有确认(Acknowledgement,简称为ACK)会话防护算法和ACK重传防护算法。
ACK会话防护算法为防护系统在没有分布式的DoS攻击(Distributed Denial ofService,简称为DDoS)的时候,会自动学习和记录每一个传输控制协议(TransmissionControl Protocol,简称为TCP)会话,并记录这些会话。在发生ACKFLOOD攻击后,对每个ACK报文进行检查,如果该ACK报文不在之前记录的会话里,则判断该ACK报文为恶意报文,将其拦截。而正常用户流量中的确认报文,由于之前已经有会话记录,所以防护系统可以对其进行识别,并判断其为正常报文进行转发;ACK重传防护算法主要是对ACK报文的五元组做哈希计算,如果同一个会话的两个ACK报文计算的哈希值相同,则防护系统判断这个两个ACK报文互为重传报文。
上述ACK会话防护算法依赖防护系统对TCP会话的学习和记录,在旁路牵引的场景下,由于平常流量不经过防护系统,防护系统无法学习正常流量的会话信息,所以攻击开始后流量牵引到防护系统,防护系统没有任何会话信息,只会将所有ACK报文进行拦截,直到客户端断线重连,用户体验非常差,导致服务器的攻击防护效率低。
上述ACK重传算法由于在攻击者随机伪造五元组信息进行攻击的情况下,很容易产生哈希冲突,导致大量恶意攻击报文被误判为正常重传行为,恶意源IP被恶意加入信任名单,使得攻击流量透传,导致服务器的攻击防护效率低。
针对上述的服务器的攻击防护效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种服务器的攻击防护方法、装置、存储介质和电子装置,以至少解决相关技术中服务器的攻击防护效率低的技术问题。
根据本发明实施例的一个方面,提供了一种服务器的攻击防护方法。该方法包括:获取客户端发送的第一确认报文;在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间;在第一目标时间内获取客户端发送的第二确认报文;在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
根据本发明实施例的另一方面,还提供了一种服务器的攻击防护装置。该装置包括:第一获取单元,用于获取客户端发送的第一确认报文;第一丢弃单元,用于在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间;第二获取单元,用于在第一目标时间内获取客户端发送的第二确认报文;转发单元,用于在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
根据本发明实施例的另一方面,还提供了一种存储介质。该存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行本发明实施例的服务器的攻击防护方法。
根据本发明实施例的另一方面,还提供了一种电子装置。该电子装置包括存储器和处理器,其特征在于,存储器中存储有计算机程序,处理器被设置为通过计算机程序执行本发明实施例的服务器的攻击防护方法。
在本发明实施例中,通过获取客户端发送的第一确认报文;在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间;在第一目标时间内获取客户端发送的第二确认报文;在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文由于在第一目标时间内获取的第二确认报文的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,确定第二确认报文为第一确认报文的重传报文,向目标服务器转发第二确认报文,这样不依赖会话,因而即使在旁路牵引的场景下也不会导致客户端断线重连,又避免了像普通的ACK重传算法那样由于哈希冲突,导致攻击流量突破算法,导致攻击流量透传的问题,从而实现了提高服务器的攻击防护效率的技术效果,进而解决了相关技术中服务器的攻击防护效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种服务器的攻击防护方法的硬件环境的示意图;
图2是根据本发明实施例的一种服务器的攻击防护方法的流程图;
图3是根据本发明实施例的一种TCP协议下的确认报文的示意图;
图4是根据本发明实施例的一种正常客户端的防护算法的流程图;
图5是根据本发明实施例的一种对攻击报文进行拦截的方法的流程图;
图6是根据本发明实施例的一种对序列号指纹集聚的攻击进行拦截的方法的流程图;
图7是根据本发明实施例的一种服务器的攻击防护装置的示意图;以及
图8是根据本发明实施例的一种电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种服务器的攻击防护方法的实施例。
可选地,在本实施例中,上述服务器的攻击防护方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。图1是根据本发明实施例的一种服务器的攻击防护方法的硬件环境的示意图。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的服务器的攻击防护方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的服务器的攻击防护方法也可以是由安装在其上的客户端来执行。
图2是根据本发明实施例的一种服务器的攻击防护方法的流程图。如图2所示,该方法可以包括以下步骤:
步骤S202,获取客户端发送的第一确认报文。
在本申请上述步骤S202提供的技术方案中,黑客通过控制分布在各处的僵死网络会目标服务器发起大量的异常流量,目标服务器忙于处理异常流量,就会无法处理正常的用户请求,甚至会导致系统崩溃,造成拒绝服务。ACKFLOOD攻击是最为典型的DDoS攻击,对互联网的威胁尤为严重,在目标服务器遭受ACKFLOOD攻击后,由于忙于处理大量的恶意ACK报文,导致资源被耗尽,从而无法处理正常用户请求,导致拒绝服务。该实施例的服务器的攻击防护方法为有效针对ACKFLOOD攻击,同时又对TCP业务没有任何误杀的防护的方法。
该实施例获取客户端发送的第一确认报文,可以为防护系统接收客户端发送第一确认报文,该第一确认报文可以为TCP协议中的ACK报文,用于承载业务数据以及对数据进行确认,其中,TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。可选地,该实施例的客户端可以为正常客户端,发送的第一确认报文为合法的确认报文,不会对目标服务器进行攻击;该客户端也可以为攻击工具、攻击客户端,其发送的第一确认报文为攻击报文,会使得目标服务器无法处理正常的用户请求,从而造成拒绝服务。
步骤S204,在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文。
在本申请上述步骤S204提供的技术方案中,在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间。
在该实施例中,第一确认报文包括源地址(源IP)和存活时间(Time To Live,简称为TTL),其中,第一确认报文源地址就是第一确认报文的起源IP,第一确认报文的存活时间用于指示第一确认报文在网络上存在的时间,避免第一确认报文会一直在网络上传送,从而导致网络开销的增大。该实施例的第一目标列表可以为信任名单,用于存储合法的确认报文的源地址和存活时间。
在获取客户端发送的第一确认报文之后,判断第一确认报文的源地址和存活时间是否均在目标列表中,如果判断出第一确认报文的源地址和存活时间不在目标列表中,可以在目标列表包括的多个源地址和多个存活时间中查找是否有第一确认报文的源地址和存活时间,如果在目标列表包括的多个源地址和多个存活时间中未查找到第一确认报文的源地址和存活时间,则确定第一确认报文的源地址和存活时间不在目标列表,可以记录该第一确认报文的五元组信息和是否带有载荷数据,以用作后续分析判断重传确认报文,并丢弃该第一确认报文。其中,第一确认报文的五元组信息包括源IP、目的IP、源端口(Sport)、目的端口(Dport)、序列号(Seq)。其中,源端口用于标识确认报文的返回地址;目的端口指明接收方计算机上的应用程序接口;序列号,也即序号,是指TCP头部中的Sequence Number字段,在TCP传送的流中,每一个字节一个序号,比如,一个报文段的序号为300,此报文段数据部分共有100字节,则下一个报文段的序号为400,因而,序号确保了TCP传输的有序性;源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。
步骤S206,在第一目标时间内获取客户端发送的第二确认报文。
在本申请上述步骤S206提供的技术方案中,正常客户端在丢弃第一确认报文之后,会基于TCP的超时重传机制,在第一目标时间内自动重传报文,该第一目标时间为可信的时间范围,后台可以将其配置为1~4s。该实施例的重传报文指接收到的确认报文的五元组信息的哈希值以及是否带有载荷数据,与第一确认报文的五元组信息的哈希值以及是否带有载荷数据是相同的。
该实施例在丢弃第一确认报文之后,可以确定是否收到第一确认报文的重传报文,可以在第一目标时间内获取客户端发送的第二确认报文。
步骤S208,在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
在本申请上述步骤S208提供的技术方案中,在确定第二确认报文是否为第一确认报文的重传报文时,也即,判断客户端是否具有重传报文的行为时,引入了四个判断维度,该四个判断维度分别是哈希值维度、源端口维度、序列号维度、是否存在载荷数据维度,其中,载荷数据也即载荷信息,可以为TCP头部以后紧跟着的数据内容。可选地,上述四个纬度完全相同的两个确认报文才会被判断为互为重传确认报文。可选地,第二确认报文与第一确认报文在获取到的时间间隔在第一目标时间内,且上述四个纬度完全相同的两个确认报文,才会被判断为互为重传确认报文。
在第一目标时间内获取客户端发送的第二确认报文之后,可以计算第二确认报文包括的五元组信息的哈希值与已记录的第一确认报文包括的五元组信息的哈希值,其中,当第二确认报文包括的五元组信息与第一确认包括的五元组信息相同的情况下,则第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值也相同,而如果第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,则第二确认报文包括的五元组信息与第一确认包括的五元组信息不一定相同。
在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,则确定第二确认报文为第一确认报文的重传报文,也即,第二确认报文和第一确认报文互为重传报文,实现了对第一确认报文的重传报文准确、高效地识别,防护系统获取到了第一确认报文的重传报文(第二确认报文),可以向目标列表添加第二确认报文的源地址和存活时间,进而向目标服务器转发该第二确认报文,并转发后续报文。
由于防护系统的哈希表是有限的(系统的内存有限),因而实际五元组的哈希总量肯定大于哈希表容量,当攻击者随机伪造五元组信息攻击的时候,算出来的哈希值会足够分散,容易导致哈希冲突,攻击报文被误判为正常重传报文。而在该实施例中,引入了第一确认报文和第二确认报文的源端口号、第一确认报文和第二确认报文的序列号作为判断纬度,可以有效地避免由于在攻击者随机伪造五元组信息进行攻击的情况下,很容易产生哈希冲突的问题,且避免由于哈希冲突导致的攻击透传,使得攻击报文难以突破重传算法,提高了服务器的攻击防护效率。
该实施例在某些场景下,比如,在安全套接层协议(Secure Sockets Layer,简称为SSL)的握手场景下,在同一个会话上,可能会存在两个五元组信息完全相同的确认报文,但是实际这两个确认报文并非互为重传报文。如果不判断五元组信息完全相同的确认报文是否存在载荷数据这个纬度,则会导致不同的确认报文被误判为重传报文的问题,该实施例通过判断第一确认报文和第二确认报文是否存在载荷数据,可以避免上述问题,从而提高了服务器的攻击防护效率。
通过上述步骤S202至步骤S208,通过获取客户端发送的第一确认报文;在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间;在第一目标时间内获取客户端发送的第二确认报文;在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。由于在第一目标时间内获取的第二确认报文的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,确定第二确认报文为第一确认报文的重传报文,向目标服务器转发第二确认报文,这样不依赖会话,因而即使在旁路牵引的场景下也不会导致客户端断线重连,又避免了像普通的ACK重传算法那样由于哈希冲突,导致攻击流量突破算法,导致攻击流量透传的问题,从而实现了提高服务器的攻击防护效率的技术效果,进而解决了相关技术中服务器的攻击防护效率低的技术问题。
作为一种可选的实施方式,在步骤S202,获取客户端发送的第一确认报文之后,该方法还包括:在获取到客户端在第二目标时间内发送的包括目标序列号的第二确认报文的数量超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文,其中,序列号包括目标序列号。
在该实施例中,在正常的流量中,确认报文中的序列号和确认序列号(ack号)都是随机分散的,不会出现多个序列号和确认序列号都相同的确认报文,而部分攻击客户端在发出攻击确认报文时,序列号和确认序列号都是固定的,比如,序列号固定为0x12,0xa0,0x6b,0x80,也即,在客户端发出的大量的攻击确认报文中,每个攻击确认报文的序列号都是一样的,确认序列号固定为0x00,0x00,0x00,0x00。其中,确认序列号也即确认序号,可以存在TCP的首部中,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到,确认序列号只有当ACK标志为1时才有效。
该实施例在获取客户端发送的第一确认报文之后,在获取到客户端在第二目标时间内发送的包括目标序列号的第二确认报文的数量超过目标阈值的情况下,比如,第二目标时间为1秒,目标阈值为1000,在获取到客户端在1秒内发送的均包括相同的目标序列号的第二确认报文的数量超过1000个的情况下,则确定包括目标序列号的第二确认报文出现了恶意集聚,则丢弃再次获取到的包括目标序列号的第二确认报文,使得防护系统对后续包括目标序列号的确认报文进行拦截。
可选地,该实施例在获取客户端发送的第一确认报文之后,在获取到客户端在第二目标时间内发送的包括目标序列号和目标确认序列号的第二确认报文的数量超过目标阈值的情况下,比如,第二目标时间为1秒,目标阈值为1000,在获取到客户端在1秒内发送的均包括相同的目标序列号和目标确认序列号的第二确认报文的数量超过1000个的情况下,则确定包括目标序列号的第二确认报文出现了恶意集聚,则丢弃再次获取到的包括目标序列号的第二确认报文,使得防护系统对后续包括目标序列号的确认报文进行拦截。
作为一种可选的实施方式,在获取到客户端在第二目标时间内发送的包括目标序列号的第二确认报文的数量超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文包括:在客户端通过随机源IP、随机源端口和目标序列号发送的包括目标序列号的第二确认报文的数量,超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文。
在该实施例中,如果攻击客户端使用目标序列号、随机源IP、随机源端口发送第二确认报文,则存在一定概率的突破算法,也即,攻击客户端需要在随机源IP、随机源端口和目标序列号这些维度都符合的情况下,存在一定概率的突破算法。因而,该实施例的防护系统会自动对目标序列号进行统计学习,在客户端通过随机源IP、随机源端口和目标序列号发送的包括目标序列号的第二确认报文的数量,超过目标阈值的情况下,则确定包括目标序列号的第二确认报文出现恶意集聚,将自动生成拦截策略,丢弃再次获取到的包括目标序列号的第二确认报文,以对再次获取到的包括目标序列号的第二确认报文进行拦截,实现了确认报文的指纹集聚学习和过滤功能,从而对目标服务器进行有效地防护。
作为一种可选的实施方式,在步骤S206,第一目标时间内获取客户端发送的第二确认报文之后,该方法还包括:在第二确认报文和第一确认报文满足以下至少之一时,丢弃第二确认报文:第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值不同;第二确认报文包括的源端口与第一确认报文包括的源端口不同;第二确认报文包括的序列号与第一确认报文包括的序列号不同;第二确认报文与第一确认报文均不包括数据载荷。
在该实施例中,攻击客户端发送的确认报文没有重传行为,指在第一目标时间的间隔没有出现两个确认报文的五元组信息的哈希值、源端口、序列号以及是否存在载荷的维度完全一样。攻击客户端发送的确认报文会随机生成,没有一定规律,也没有重传行为,除非在在一定概率上刚好碰上两个确认报文的五元组信息的哈希值、源端口、序列号、是否存在载荷的维度完全一样,从而被误判为重传行为,但这种概率是非常低的。
在该实施例中,在第一目标时间内获取客户端发送的第二确认报文之后,在第二确认报文和第一确认报文的四个判断维度至少之一不相同的情况下,丢弃第二确认报文,比如,在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值不同、第二确认报文包括的源端口与第一确认报文包括的源端口不同、第二确认报文包括的序列号与第一确认报文包括的序列号不同、第二确认报文与第一确认报文均不包括数据载荷至少之一的情况下,则丢弃第二确认报文,从而有效防护攻击确认报文对目标服务器的攻击,提高了服务器的攻击防护效率,并且对正常业务不会有任何影响。
作为一种可选的实施方式,在丢弃第二确认报文时,该方法还包括:确定第二确认报文为客户端在发起拒绝服务攻击时发送的确认报文。
在该实施例中,在确定第二确认报文并非为第一确认报文的重传报文时,则确定该第二确认报文为攻击客户端发送的确认报文,可以确定第二确认报文为攻击客户端在发起拒绝服务攻击时发送的确认报文,该第二确认报文在不被防护的情况下,会导致目标服务器的资源被耗尽,无法处理正常用户请求,因而丢弃该第二确认报文,从而有效防护拒绝服务攻击时的攻击确认报文对目标服务器的攻击,提高了服务器的攻击防护效率。
作为一种可选的实施方式,步骤S208,在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文包括:在客户端通过安全套接层与目标服务器进行握手的情况下、且在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
在该实施例中,在一些场景下,在同一个会话上,可能会存在两个五元组信息完全相同的确认报文,但是这两个报文不是互为重传确认报文,如果不判断这两个确认报文是否存在载荷数据这个纬度,则会导致相同的确认报文被误判为重传报文。
可选地,在客户端通过安全套接层与目标服务器进行握手的情况下,也即,在SSL握手场景下,在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,并且第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文,从而避免相同的确认报文被误判为重传报文。
作为一种可选的实施方式,在步骤S208,向目标服务器转发第二确认报文时,该方法还包括:将第二确认报文的源地址和存活时间添加至目标列表。
在该实施例中,在确定第二确认报文为第一确认报文的重传报文之后,将第二确认报文的源地址和存活时间添加至目标列表,也即,将第二确认报文的源地址和存活时间添加至信任名单中,并转发后续的确认报文。
作为一种可选的实施方式,在步骤S202,获取客户端发送的第一确认报文之后,该方法还包括:在第一确认报文的源地址和存活时间在目标列表的情况下,向目标服务器转发第一确认报文。
在该实施例中,在获取客户端发送的第一确认报文之后,在第一确认报文的源地址和存活时间在目标列表的情况下,也即,第一确认报文为正常客户端发送的合法的确认报文,而并非攻击客户端发送的攻击报文,不会对目标服务器进行攻击,则直接向目标服务器转发第一确认报文。
该实施例通过在第二确认报文和第一确认报文的五元组信息的哈希值相同,第二确认报文和第一确认报文包括的源端口、序列号是否分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷,来确定第二确认报文为第一确认报文的重传报文,从而高效、准确地识别出第一确认报文的重传报文,进而向服务器直接转发,大大减少了攻击被突破的可能性,并且在客户端通过随机源IP、随机源端口和目标序列号发送的包括目标序列号的第二确认报文的数量,超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文,使得防护系统自动拦截恶意集聚的确认报文,从而对服务器进行有效地防护。
该实施例的服务器的防护方法,相对业界现有的ACK会话防护算法,不依赖会话,因而在旁路牵引的场景下不会导致客户端断线重连,又不会像普通的ACK重传算法那样由于哈希冲突,导致攻击流量突破算法,导致攻击流量透传,提高了服务器的攻击防护效率,并且可以在有效地防护ACKFLOOD攻击的同时,对正常业务不会造成影响,可以在有效解决ACKFLOOD攻击对业务造成的威胁,从而保证业务的稳定性和可用性。
下面结合优选的实施例对本发明的技术方案进行说明。
该实施例提出了基于TCP重传机制的增强型ACKFLOOD防护算法,可以在有效地筛选所有确认攻击流量的同时,对正常业务不会有任何影响。
图3是根据本发明实施例的一种TCP报文的示意图。如图3所示,TCP报文是TCP层传输的数据单元,也即,报文段。下面对该TCP报文的组成部分进行一一介绍。
源端口,源端口和IP地址用于标识报文的返回地址。
目的端口,指明接收方计算机上的应用程序接口。
序号,也即,序列号(seq号),为TCP头中的Sequence number字段,是报文段发送的数据组的第一个字节的序号。在TCP传送的流中,每一个字节一个序号,比如,一个报文段的序号为300,此报文段数据部分共有100字节,则下一个报文段的序号为400,因而,序号确保了TCP传输的有序性。
确认号,也即,ACK号,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误地收到。确认号只有当ACK标志为1时才有效。比如,在建立连接时,同步(SYN)报文的ACK标志位为0。
数据偏移,4bits,由于首部可能含有可选项内容,因此TCP报文的长度是不确定的,报头不包含任何任选字段,则长度为20字节,4位首部长度字段所能表示的最大值为1111,转化为10进制为15,15*32/8=60,因而,报头最大长度为60字节。首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值。
保留,为将来定义新的用途保留,可以置0。
URG,为紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。
ACK,确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
PSH,为Push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
RST,为重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
SYN,同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,也即,SYN=1和ACK=1。
FIN,完成标志,用于释放连接,为1时表示发送方已经没有数据发送了,也即,关闭本方数据流。
窗口,滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。
校验和,奇偶校验,此校验和是对整个的TCP报文段,包括TCP头部和TCP数据,以16位字进行计算所得,由发送端计算和存储,并由接收端进行验证。
紧急指针,只有当URG标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号,TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。
选项和填充,每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。
数据部分,为载荷数据,TCP报文段中的数据部分是可选的,在一个连接建立和一个连接终止时,双方交换的报文段仅有TCP首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。
该实施例提出的基于TCP重传机制的增强型ACKFLOOD防护算法关键点和创新点在于:对ACK重传报文的识别方法;TCP报文的seq/ack号的指纹集聚学习和过滤功能。
下面对本发明实施例的ACK重传报文的识别方法进行介绍。
该实施例的ACK重传报文的识别基于以下维度:哈希值,防护系统将ACK报文的五元组信息,也即,源IP、目的IP、源端口、目的端口、序列号做哈希计算,得到哈希值;源端口;序列号;是否存在载荷数据。
在该实施例中,只有上述四个纬度都完全相同的两个确认报文才会被确定互为确认重传报文。
该实施例基于TCP重传机制的增强型ACKFLOOD防护算法的防护流程如下:
第一步,在ACKFLOOD攻击发生时,防护系统触发ACK防护,并且对所有接收到的确认报文进行检查。
第二步,在防护系统获取到第一确认报文之后,查询信任名单(IP+TTL),如果该第一确认报文在信任名单中,则直接向服务器转发该确认报文。如果该第一确认报文不在信任名单中,则记录五元组信息以及是否带有载荷信息,以分析判断后续的重传报文),并丢弃该第一确认报文。
第三步,正常客户端在第二步被丢弃第一确认报文后,基于TCP超时重传机制,会在可信时间范围内自动重传报文,后台可以配置可信时间范围为1~4s。防护系统在收到第二确认报文之后,会判断第二确认报文的五元组信息的哈希值、源端口、序列号、是否存在载荷数据,与第一确认报文的源端口、序列号、是否存在载荷数据是否相同,如果相同,且第二确认报文与第一确认报文接收到的时间间隔在可信范围内,则确定第二确认报文为第一确认报文的重传报文,该第二确认报文的源IP合法,将第二确认报文的源IP和TTL添加到信任名单中,并转发后续报文。
图4是根据本发明实施例的一种正常客户端的防护算法的流程图。如图4所示,该方法包括以下步骤:
步骤S401,正常客户端向防护系统发送第一个ACK报文。
步骤S402,第一个ACK报文的源IP和TTL不在信任名单中,丢弃第一个ACK报文,并记录第一个ACK报文的五元组信息和是否带有载荷的信息。
步骤S403,防护系统在1~4s内获取到正常客户端发送的重传ACK报文,将重传报文的源IP和TTL添加到信任名单中,并向服务器转发后续报文。
第三步,如果是攻击客户端发送的攻击报文,则没有重传行为,防护系统会把所有ACK攻击报文丢弃,从而有效地防止ACK攻击报文攻击服务器。
图5是根据本发明实施例的一种对攻击报文进行拦截的方法的流程图。如图5所示,该方法包括以下步骤:
步骤S501,攻击客户端向防护系统发送ACK攻击报文。
步骤S502,ACK攻击报文不是重传ACK报文,防护系统无法将其添加至信任名单。
步骤S503,防护系统向服务器拦截不是重传ACK报文。
第四步,如果攻击客户端使用随机源IP、随机源端口、固定序列号发起攻击,存在一定概率的突破重传算法,此时seq/ack号指纹集聚学习和过滤功能将自动发现恶意集聚,并对恶意集聚的seq/ack号进行拦截。
在该实施例中,正常的流量中,seq/ack号都是随机分散的,不会出现多个seq/ack号都相同的报文。部分攻击客户端在发出ack攻击报文的时候,seq/ack号都是固定的,比如,seq固定为0x12,0xa0,0x6b,0x80,ack固定为0x00,0x00,0x00,0x00,则防护系统在防护的时候检测seq/ack号是否集聚(比如,1s内出现多个相同seq/ack号的报文),如果相同的seq/ack号的报文数量超过阈值(例如配置成1000个每秒),则判断这个seq/ack号存在恶意集聚,防护系统对包括这个seq/ack号的报文进行拦截。
图6是根据本发明实施例的一种对序列号指纹集聚的攻击进行拦截的方法的流程图。如图6所示,该方法包括以下步骤:
步骤S601,攻击客户端向防护系统发送大量的ACK攻击报文(包括固定seq)。
该实施例的固定seq,也即,攻击者发出的大量攻击报文中,每个报文的序列号都是一样的。
步骤S602,防护系统存在一定概率的突破算法,造成少量透传。
步骤S603,防护系统检测到seq指纹恶意集聚,并自动将其拦截。
步骤S604,后续报文无法通过防护系统。
该实施例对确认重传报文进行识别(通过哈希值、源端口、序列号、是否存在载荷进行识别),既可以高效、准确识别重传报文,又可以大大减少攻击被突破的可能性;TCP报文的seq/ack号指纹集聚学习和过滤功能,对上述确认重传报文进行识别的算法进行有效补充,使得防护系统自动对seq/ack号的集聚情况进行学习,并自动拦截恶意集聚的报文,从而有效防护攻击。
该实施例相比业界ACK重传报文的判断方法,引入了源端口、序列号纬度作为判断纬度,可以有效避免攻击导致哈希冲突,使攻击报文难以突破重传算法;并且在某些场景下,比如,在SSL握手场景下,在同一个会话上,可能会存在两个五元组信息完全相同的ACK报文(但是这两个ACK报文不是互为确认重传报文)。如果不判断两个ACK报文是否存在载荷这个纬度,会导致相同的ACK报文被误判为重传报文,而该实施例可以规避该问题。
由于该实施例不依赖会话,因而在旁路牵引的场景下,不会导致客户端断线重连,又不会像普通的ACK重传算法那样由于哈希冲突,导致攻击流量突破算法,导致攻击流量透传的问题。
该实施例可以在有效地防护ACKFLOOD攻击的同时,对正常业务不会造成影响,可以有效解决ACKFLOOD攻击对业务造成的威胁,从而保证业务的稳定性和可用性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一方面,还提供了一种用于实施上述服务器的攻击防护方法的服务器的攻击防护装置。图7是根据本发明实施例的一种服务器的攻击防护装置的示意图。如图7所示,该服务器的攻击防护装置700可以包括:第一获取单元10、第一丢弃单元20、第二获取单元30和转发单元40。
第一获取单元10,用于获取客户端发送的第一确认报文。
第一丢弃单元20,用于在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间。
第二获取单元30,用于在第一目标时间内获取客户端发送的第二确认报文。
转发单元40,用于在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
可选地,该装置还包括:第二丢弃单元,用于在获取客户端发送的第一确认报文之后,在获取到客户端在第二目标时间内发送的包括目标序列号的第二确认报文的数量超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文,其中,序列号包括目标序列号。
可选地,第二丢弃单元包括:丢弃模块,用于在客户端通过随机源IP、随机源端口和目标序列号发送的包括目标序列号的第二确认报文的数量,超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文。
可选地,该装置还包括:第三丢弃单元,用于在第一目标时间内获取客户端发送的第二确认报文之后,在第二确认报文和第一确认报文满足以下至少之一时,丢弃第二确认报文:第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值不同;第二确认报文包括的源端口与第一确认报文包括的源端口不同;第二确认报文包括的序列号与第一确认报文包括的序列号不同;第二确认报文与第一确认报文均不包括数据载荷。
该装置还包括:确定单元,用于在丢弃第二确认报文时,确定第二确认报文为客户端在发起拒绝服务攻击时发送的确认报文。
可选地,转发单元40包括:转发模块,用于在客户端通过安全套接层与目标服务器进行握手的情况下、且在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
可选地,该装置还包括:添加单元,用于在向目标服务器转发第二确认报文时,将第二确认报文的源地址和存活时间添加至目标列表。
可选地,该装置还包括:第一转发单元,用于在获取客户端发送的第一确认报文之后,在第一确认报文的源地址和存活时间在目标列表的情况下,向目标服务器转发第一确认报文。
需要说明的是,该实施例中的第一获取单元10可以用于执行本申请实施例中的步骤S202,该实施例中的第一丢弃单元20可以用于执行本申请实施例中的步骤S204,该实施例中的第二获取单元30可以用于执行本申请实施例中的步骤S206,该实施例中的转发单元40可以用于执行本申请实施例中的步骤S208。
该实施例通过第一获取单元10获取客户端发送的第一确认报文,通过第一丢弃单元20在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间,通过第二获取单元30在第一目标时间内获取客户端发送的第二确认报文,通过转发单元40在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文由于在第一目标时间内获取的第二确认报文的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,确定第二确认报文为第一确认报文的重传报文,向目标服务器转发第二确认报文,这样不依赖会话,因而即使在旁路牵引的场景下也不会导致客户端断线重连,又避免了像普通的ACK重传算法那样由于哈希冲突,导致攻击流量突破算法,导致攻击流量透传的问题,从而实现了提高服务器的攻击防护效率的技术效果,进而解决了相关技术中服务器的攻击防护效率低的技术问题。
此处需要说明的是,上述单元和模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述单元和模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本发明实施例的又一方面,还提供了一种用于实施上述服务器的攻击防护方法的电子装置。
图8是根据本发明实施例的一种电子装置的结构框图。如图8所示,该的电子装置可以包括:包括存储器801和处理器803,该存储器801中存储有计算机程序,该处理器803被设置为通过计算机程序执行上述任一项方法实施例中的步骤。可选地,如图8所示,该电子装置还可以包括传输装置805和输入输出设备807。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器803可以被设置为通过计算机程序执行以下步骤:
获取客户端发送的第一确认报文;
在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间;
在第一目标时间内获取客户端发送的第二确认报文;
在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
处理器803还用于执行下述步骤:在获取客户端发送的第一确认报文之后,在获取到客户端在第二目标时间内发送的包括目标序列号的第二确认报文的数量超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文,其中,序列号包括目标序列号。
处理器803还用于执行下述步骤:在客户端通过随机源IP、随机源端口和目标序列号发送的包括目标序列号的第二确认报文的数量,超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文。
处理器803还用于执行下述步骤:在第一目标时间内获取客户端发送的第二确认报文之后,在第二确认报文和第一确认报文满足以下至少之一时,丢弃第二确认报文:第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值不同;第二确认报文包括的源端口与第一确认报文包括的源端口不同;第二确认报文包括的序列号与第一确认报文包括的序列号不同;第二确认报文与第一确认报文均不包括数据载荷。
处理器803还用于执行下述步骤:在丢弃第二确认报文时,确定第二确认报文为客户端在发起拒绝服务攻击时发送的确认报文。
处理器803还用于执行下述步骤:在客户端通过安全套接层与目标服务器进行握手的情况下、且在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
处理器803还用于执行下述步骤:在向目标服务器转发第二确认报文时,将第二确认报文的源地址和存活时间添加至目标列表。
处理器803还用于执行下述步骤:在获取客户端发送的第一确认报文之后,在第一确认报文的源地址和存活时间在目标列表的情况下,向目标服务器转发第一确认报文。
可选地,本领域普通技术人员可以理解,图8所示的结构仅为示意,电子装置也可以是智能手机(如AndroID手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。
其中,存储器801可用于存储软件程序以及模块,如本发明实施例中的服务器的攻击防护方法和装置对应的程序指令/模块,处理器803通过运行存储在存储器801内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的服务器的攻击防护方法。存储器801可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器801可进一步包括相对于处理器803远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置805用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置805包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置805为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器801用于存储应用程序。
采用本发明实施例,提供了一种服务器的攻击防护的方案。通过获取客户端发送的第一确认报文;在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间;在第一目标时间内获取客户端发送的第二确认报文;在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文由于在第一目标时间内获取的第二确认报文的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,确定第二确认报文为第一确认报文的重传报文,向目标服务器转发第二确认报文,这样不依赖会话,因而即使在旁路牵引的场景下也不会导致客户端断线重连,又避免了像普通的ACK重传算法那样由于哈希冲突,导致攻击流量突破算法,导致攻击流量透传的问题,从而实现了提高服务器的攻击防护效率的技术效果,进而解决了相关技术中服务器的攻击防护效率低的技术问题。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
获取客户端发送的第一确认报文;
在第一确认报文的源地址和存活时间不在目标列表的情况下,丢弃第一确认报文,其中,存活时间用于指示第一确认报文在网络上存在的时间,目标列表用于存储合法的确认报文的源地址和存活时间;
在第一目标时间内获取客户端发送的第二确认报文;
在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取客户端发送的第一确认报文之后,在获取到客户端在第二目标时间内发送的包括目标序列号的第二确认报文的数量超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文,其中,序列号包括目标序列号。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在客户端通过随机源IP、随机源端口和目标序列号发送的包括目标序列号的第二确认报文的数量,超过目标阈值的情况下,丢弃再次获取到的包括目标序列号的第二确认报文。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在第一目标时间内获取客户端发送的第二确认报文之后,在第二确认报文和第一确认报文满足以下至少之一时,丢弃第二确认报文:第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值不同;第二确认报文包括的源端口与第一确认报文包括的源端口不同;第二确认报文包括的序列号与第一确认报文包括的序列号不同;第二确认报文与第一确认报文均不包括数据载荷。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在丢弃第二确认报文时,确定第二确认报文为客户端在发起拒绝服务攻击时发送的确认报文。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在客户端通过安全套接层与目标服务器进行握手的情况下、且在第二确认报文包括的五元组信息的哈希值与第一确认报文包括的五元组信息的哈希值相同,第二确认报文包括的源端口、序列号分别与第一确认报文包括的源端口、序列号相同,第二确认报文与第一确认报文均包括数据载荷的情况下,向目标服务器转发第二确认报文。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在向目标服务器转发第二确认报文时,将第二确认报文的源地址和存活时间添加至目标列表。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取客户端发送的第一确认报文之后,在第一确认报文的源地址和存活时间在目标列表的情况下,向目标服务器转发第一确认报文。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种服务器的攻击防护方法,其特征在于,包括:
获取客户端发送的第一确认报文;
在所述第一确认报文的源地址和存活时间不在目标列表的情况下,记录所述第一确认报文的五元组信息和是否带有载荷数据,并丢弃所述第一确认报文,其中,所述存活时间用于指示所述第一确认报文在网络上存在的时间,所述目标列表用于存储合法的确认报文的所述源地址和所述存活时间;
在第一目标时间内获取所述客户端发送的第二确认报文;
在所述第二确认报文包括的五元组信息的哈希值与所述第一确认报文包括的五元组信息的哈希值相同,所述第二确认报文包括的源端口、序列号分别与所述第一确认报文包括的源端口、序列号相同,所述第二确认报文与所述第一确认报文均包括数据载荷的情况下,向目标服务器转发所述第二确认报文。
2.根据权利要求1所述的方法,其特征在于,在获取所述客户端发送的所述第一确认报文之后,所述方法还包括:
在获取到所述客户端在第二目标时间内发送的包括目标序列号的所述第二确认报文的数量超过目标阈值的情况下,丢弃再次获取到的包括所述目标序列号的所述第二确认报文,其中,所述序列号包括所述目标序列号。
3.根据权利要求2所述的方法,其特征在于,在获取到所述客户端在所述第二目标时间内发送的包括所述目标序列号的所述第二确认报文的数量超过所述目标阈值的情况下,丢弃再次获取到的包括所述目标序列号的所述第二确认报文包括:
在所述客户端通过随机源IP、随机源端口和所述目标序列号发送的包括所述目标序列号的所述第二确认报文的数量,超过所述目标阈值的情况下,丢弃再次获取到的包括所述目标序列号的所述第二确认报文。
4.根据权利要求1所述的方法,其特征在于,在所述第一目标时间内获取所述客户端发送的所述第二确认报文之后,所述方法还包括:在所述第二确认报文和所述第一确认报文满足以下至少之一时,丢弃所述第二确认报文:
所述第二确认报文包括的五元组信息的哈希值与所述第一确认报文包括的五元组信息的哈希值不同;
所述第二确认报文包括的源端口与所述第一确认报文包括的源端口不同;
所述第二确认报文包括的序列号与所述第一确认报文包括的序列号不同;
所述第二确认报文与所述第一确认报文均不包括所述数据载荷。
5.根据权利要求4所述的方法,其特征在于,在丢弃所述第二确认报文时,所述方法还包括:
确定所述第二确认报文为所述客户端在发起拒绝服务攻击时发送的确认报文。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,在所述第二确认报文包括的五元组信息的哈希值与所述第一确认报文包括的五元组信息的哈希值相同,所述第二确认报文包括的源端口、序列号分别与所述第一确认报文包括的源端口、序列号相同,所述第二确认报文与所述第一确认报文均包括数据载荷的情况下,向目标服务器转发所述第二确认报文包括:
在所述客户端通过安全套接层与所述目标服务器进行握手的情况下、且在所述第二确认报文包括的五元组信息的哈希值与所述第一确认报文包括的五元组信息的哈希值相同,所述第二确认报文包括的源端口、序列号分别与所述第一确认报文包括的源端口、序列号相同,所述第二确认报文与所述第一确认报文均包括数据载荷的情况下,向目标服务器转发所述第二确认报文。
7.根据权利要求1至5中任意一项所述的方法,其特征在于,在向目标服务器转发所述第二确认报文时,所述方法还包括:
将所述第二确认报文的所述源地址和所述存活时间添加至所述目标列表。
8.根据权利要求1至5中任意一项所述的方法,其特征在于,在获取所述客户端发送的所述第一确认报文之后,所述方法还包括:
在所述第一确认报文的所述源地址和所述存活时间在所述目标列表的情况下,向所述目标服务器转发所述第一确认报文。
9.一种服务器的攻击防护装置,其特征在于,包括:
第一获取单元,用于获取客户端发送的第一确认报文;
第一丢弃单元,用于在所述第一确认报文的源地址和存活时间不在目标列表的情况下,记录所述第一确认报文的五元组信息和是否带有载荷数据,并丢弃所述第一确认报文,其中,所述存活时间用于指示所述第一确认报文在网络上存在的时间,所述目标列表用于存储合法的确认报文的所述源地址和所述存活时间;
第二获取单元,用于在第一目标时间内获取所述客户端发送的第二确认报文;
转发单元,用于在所述第二确认报文包括的五元组信息的哈希值与所述第一确认报文包括的五元组信息的哈希值相同,所述第二确认报文包括的源端口、序列号分别与所述第一确认报文包括的源端口、序列号相同,所述第二确认报文与所述第一确认报文均包括数据载荷的情况下,向目标服务器转发所述第二确认报文。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二丢弃单元,用于在获取所述客户端发送的所述第一确认报文之后,在获取到所述客户端在第二目标时间内发送的包括目标序列号的所述第二确认报文的数量超过目标阈值的情况下,丢弃再次获取到的包括所述目标序列号的所述第二确认报文,其中,所述序列号包括所述目标序列号。
11.根据权利要求10所述的装置,其特征在于,所述第二丢弃单元包括:
丢弃模块,用于在所述客户端通过随机源IP、随机源端口和所述目标序列号发送的包括所述目标序列号的所述第二确认报文的数量,超过所述目标阈值的情况下,丢弃再次获取到的包括所述目标序列号的所述第二确认报文。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:第三丢弃单元,用于在所述第一目标时间内获取所述客户端发送的所述第二确认报文之后,在所述第二确认报文和所述第一确认报文满足以下至少之一时,丢弃所述第二确认报文:
所述第二确认报文包括的五元组信息的哈希值与所述第一确认报文包括的五元组信息的哈希值不同;
所述第二确认报文包括的源端口与所述第一确认报文包括的源端口不同;
所述第二确认报文包括的序列号与所述第一确认报文包括的序列号不同;
所述第二确认报文与所述第一确认报文均不包括所述数据载荷。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
确定单元,用于在丢弃所述第二确认报文时,确定所述第二确认报文为所述客户端在发起拒绝服务攻击时发送的确认报文。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的服务器的攻击防护方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至8任一项中所述的服务器的攻击防护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810306774.5A CN110198293B (zh) | 2018-04-08 | 2018-04-08 | 服务器的攻击防护方法、装置、存储介质和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810306774.5A CN110198293B (zh) | 2018-04-08 | 2018-04-08 | 服务器的攻击防护方法、装置、存储介质和电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110198293A CN110198293A (zh) | 2019-09-03 |
CN110198293B true CN110198293B (zh) | 2021-07-23 |
Family
ID=67751310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810306774.5A Active CN110198293B (zh) | 2018-04-08 | 2018-04-08 | 服务器的攻击防护方法、装置、存储介质和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110198293B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798451A (zh) * | 2019-09-29 | 2020-02-14 | 新华三信息安全技术有限公司 | 一种安全认证的方法及装置 |
CN112887213B (zh) * | 2019-11-29 | 2023-04-18 | 北京百度网讯科技有限公司 | 报文清洗方法和装置 |
CN111314358B (zh) * | 2020-02-21 | 2023-02-17 | 深圳市腾讯计算机系统有限公司 | 攻击防护方法、装置、系统、计算机存储介质及电子设备 |
CN114070572A (zh) * | 2020-07-30 | 2022-02-18 | 北京威努特技术有限公司 | 一种非法tcp数据流的检测方法、装置及计算机设备 |
CN113873340B (zh) * | 2021-09-18 | 2024-01-16 | 恒安嘉新(北京)科技股份公司 | 一种数据处理方法、装置、设备、系统及存储介质 |
CN114567484B (zh) * | 2022-02-28 | 2024-03-12 | 天翼安全科技有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
CN114785876B (zh) * | 2022-04-07 | 2024-06-11 | 湖北天融信网络安全技术有限公司 | 报文检测方法及装置 |
CN114844723A (zh) * | 2022-06-16 | 2022-08-02 | 北京百度网讯科技有限公司 | 网络攻击的防护方法、装置、设备以及存储介质 |
CN115086069B (zh) * | 2022-07-19 | 2024-01-26 | 光大科技有限公司 | 一种DDoS攻击识别方法及装置 |
CN115378764B (zh) * | 2022-08-19 | 2024-04-05 | 山石网科通信技术股份有限公司 | 通信方法、装置、存储介质及电子装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582833B (zh) * | 2008-05-15 | 2011-10-05 | 成都市华为赛门铁克科技有限公司 | 一种伪造ip数据包的处理方法及装置 |
CN101562534B (zh) * | 2009-05-26 | 2011-12-14 | 中山大学 | 一种网络行为分析系统 |
CN104754687B (zh) * | 2013-12-31 | 2018-11-16 | 华为技术有限公司 | 信息发送方法及设备 |
US10057167B2 (en) * | 2014-04-09 | 2018-08-21 | Tallac Networks, Inc. | Identifying end-stations on private networks |
US9660768B2 (en) * | 2015-01-26 | 2017-05-23 | Link Labs, Inc. | Dense acknowledgement broadcast/multicast |
CN105991348B (zh) * | 2015-05-20 | 2019-03-15 | 杭州迪普科技股份有限公司 | Tcp连接关闭方法及装置 |
-
2018
- 2018-04-08 CN CN201810306774.5A patent/CN110198293B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110198293A (zh) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110198293B (zh) | 服务器的攻击防护方法、装置、存储介质和电子装置 | |
US10284594B2 (en) | Detecting and preventing flooding attacks in a network environment | |
US8224976B2 (en) | Using a server's capability profile to establish a connection | |
CN105827646B (zh) | Syn攻击防护的方法及装置 | |
US8499146B2 (en) | Method and device for preventing network attacks | |
CN109768955B (zh) | 基于软件定义网络防御分布式拒绝服务攻击的系统及方法 | |
US20120227088A1 (en) | Method for authenticating communication traffic, communication system and protective apparatus | |
US9641485B1 (en) | System and method for out-of-band network firewall | |
CN110213204B (zh) | 攻击防护方法及装置、设备及可读存储介质 | |
CN114830113A (zh) | 保护有状态连接管理器中资源分配的系统和方法 | |
WO2017071511A1 (zh) | 防攻击数据传输方法及装置 | |
KR20130022089A (ko) | 서비스 거부 공격에 대한 tcp연결 해제 방법 및 장치 | |
JP4391455B2 (ja) | DDoS攻撃に対する不正アクセス検知システム及びプログラム | |
JP2006345268A (ja) | パケットフィルタ回路及びパケットフィルタ方法 | |
Smyslov | Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation | |
TWI721086B (zh) | 防攻擊資料傳輸方法及裝置 | |
CN112565309B (zh) | 报文处理方法、装置、设备以及存储介质 | |
Bae et al. | An efficient detection of TCP Syn flood attacks with spoofed IP addresses | |
KR101997211B1 (ko) | 네트워크 보안 장치 및 그의 공격 탐지 방법 | |
CN117768130A (zh) | 攻击防御方法及装置 | |
Smyslov | RFC 7383: Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation | |
EP2806600A1 (en) | Protection method and device |
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 |