CN111314358A - 攻击防护方法、装置、系统、计算机存储介质及电子设备 - Google Patents

攻击防护方法、装置、系统、计算机存储介质及电子设备 Download PDF

Info

Publication number
CN111314358A
CN111314358A CN202010108860.2A CN202010108860A CN111314358A CN 111314358 A CN111314358 A CN 111314358A CN 202010108860 A CN202010108860 A CN 202010108860A CN 111314358 A CN111314358 A CN 111314358A
Authority
CN
China
Prior art keywords
message
load
target
retransmission
client
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
Application number
CN202010108860.2A
Other languages
English (en)
Other versions
CN111314358B (zh
Inventor
金帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010108860.2A priority Critical patent/CN111314358B/zh
Publication of CN111314358A publication Critical patent/CN111314358A/zh
Application granted granted Critical
Publication of CN111314358B publication Critical patent/CN111314358B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了攻击防护方法、装置、系统,涉及攻击防御领域。该方法应用于防护设备,包括:接收客户端发送的带有负载的第一报文,第一报文包括第一序列号、第一确认号、负载长度和报文四元组;根据第一序列号和预设字符长度确定第二确认号,根据第一确认号确定第二序列号,其中预设字符长度为介于零和负载长度之间的正整数;根据第二序列号、第二确认号和报文四元组形成反弹报文,并将反弹报文发送至客户端;接收客户端根据反弹报文发送的带有负载的第二报文,在第二报文合法时,根据第二报文和预设字符长度的负载恢复第一报文,并将第一报文发送至服务器。本公开增加了攻击者的攻击成本,降低了误杀率,并且最大限度降低了攻击透传。

Description

攻击防护方法、装置、系统、计算机存储介质及电子设备
技术领域
本公开涉及攻击防护技术领域,具体而言,涉及一种攻击防护方法、攻击防护装置、攻击防护系统、计算机存储介质及电子设备。
背景技术
为了保障客户端与服务器之间正常的数据传输,客户端和服务器之间需要通过三次握手建立连接,在建立连接之后,客户端和服务器就可以通过确认报文(ACK报文)进行数据传输。
但是,在数据传输时,并不是所有客户端发送的ACK报文都是安全的,攻击者通常会通过向服务器发送大量包含虚假源IP地址和虚假源端口的ACK报文,以达到攻击服务器的目的。与ACK报文相关的攻击称为ACK Flood攻击,为了避免服务器被攻击,通常会在服务器接收到报文之前通过防护设备基于ACK防护算法对客户端的合法性进行检测,传统的ACKFlood防护算法通常采用会话学习或超时重传来实现,但是会话学习需要提前牵引正常流量,浪费防护设备大量CPU、内存、带宽资源,并且由于不同的业务,形态不一样,提前多少时间很难把握,另外超时重传虽然误杀率低,但是攻击者绕过成本低、透传率高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的实施例提供了一种攻击防护方法、攻击防护装置、计算机存储介质及电子设备,进而至少在一定程度上可以增加攻击者的攻击成本,降低误杀率和攻击透传。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一个方面,提供了一种攻击防护方法,应用于防护设备,所述方法包括:接收客户端发送的带有负载的第一报文,所述第一报文包括第一序列号、第一确认号、负载长度和报文四元组;根据所述第一序列号和预设字符长度确定第二确认号,根据所述第一确认号确定第二序列号,其中所述预设字符长度为介于零和所述负载长度之间的正整数;根据所述第二序列号、所述第二确认号和所述报文四元组形成反弹报文,并将所述反弹报文发送至所述客户端;接收所述客户端根据所述反弹报文发送的带有负载的第二报文,在所述第二报文合法时,根据所述第二报文和所述预设字符长度的负载恢复所述第一报文,并将所述第一报文发送至服务器。
根据本公开实施例的一个方面,提供了一种攻击防护装置,应用于防护设备,所述装置包括:报文接收模块,用于接收客户端发送的带有负载的第一报文,所述第一报文包括第一序列号、第一确认号、负载长度和报文四元组;信息确定模块,用于根据所述第一序列号和预设字符长度确定第二确认号,根据所述第一确认号确定第二序列号,其中所述预设字符长度为介于零和所述负载长度之间的正整数;报文生成模块,用于根据所述第二序列号、所述第二确认号和所述报文四元组形成反弹报文,并将所述反弹报文发送至所述客户端;报文转发模块,用于接收所述客户端根据所述反弹报文发送的带有负载的第二报文,在所述第二报文合法时,根据所述第二报文和所述预设字符长度的负载恢复所述第一报文,并将所述第一报文发送至服务器。
在本公开的一些实施例中,基于前述方案,所述信息确定模块配置为:将所述第一序列号与所述预设字符长度相加,并将相加后的结果作为所述第二确认号;将所述第一确认号作为所述第二序列号。
在本公开的一些实施例中,所述报文四元组包含源IP地址、目的IP地址、源端口和目的端口;基于前述方案,所述报文生成模块配置为:将所述源IP地址和所述源端口分别作为更新后的目的IP地址和目的端口,并将所述目的IP地址和所述目的端口作为更新后的源IP地址和源端口;根据所述更新后的目的IP地址和目的端口和所述更新后的源IP地址和源端口构建更新后的报文四元组;根据所述第二序列号、所述第二确认号和所述更新后的报文四元组形成所述反弹报文。
在本公开的一些实施例中,基于前述方案,所述反弹报文中负载的长度为零。
在本公开的一些实施例中,基于前述方案,所述攻击防护装置还配置为:对所述报文四元组中的各个信息进行哈希处理,以获取哈希值;将所述哈希值、所述第一序列号、所述第一确认号、所述报文四元组、所述预设字符长度的负载和接收所述第一报文的接收时间对应插入至重传哈希表中。
在本公开的一些实施例中,所述第二报文包括第三序列号、第三确认号和重传报文四元组;基于前述方案,所述报文转发模块包括:哈希处理单元,用于对所述重传报文四元组中的各个信息进行哈希处理,以获取重传哈希值;匹配单元,用于将所述重传哈希值与所述重传哈希表中的哈希值进行匹配;信息获取单元,用于当所述重传哈希表中存在与所述重传哈希值匹配的目标哈希值时,获取与所述目标哈希值对应地目标序列号、目标确认号和目标接收时间,所述目标序列号与所述第一序列号相同,所述目标确认号与所述第一确认号相同;重传时间间隔获取单元,用于根据接收所述第二报文的接收时间和所述目标接收时间确定重传时间间隔;检测单元,用于根据所述重传时间间隔、所述目标序列号、所述第三序列号、所述目标确认号和所述第三确认号对所述第二报文的合法性进行检测。
在本公开的一些实施例中,基于前述方案,所述重传时间间隔获取单元配置为:将接收所述第二报文的接收时间与所述目标接收时间相减,以获取所述重传时间间隔。
在本公开的一些实施例中,基于前述方案,所述检测单元配置为:将所述重传时间间隔与预设时间间隔比较,判断所述重传时间间隔是否小于所述预设时间间隔;将所述第三序列号与所述目标序列号相减以获取序列号差值,判断所述序列号差值是否等于所述预设字符长度;将所述第三确认号与所述目标确认号进行比对,判断所述第三确认号是否等于所述目标确认号;若所述重传时间间隔小于所述预设时间间隔、所述序列号差值等于所述预设字符长度,并且所述第三确认号等于所述目标确认号,则判定所述第二报文合法。
在本公开的一些实施例中,基于前述方案,所述报文转发模块配置为:获取与所述目标哈希值对应地预设字符长度的负载,其中所述预设字符长度的负载为所述第一报文中的负载的前N个字符,N为正整数;将与所述目标哈希值对应地预设字符长度的负载和所述第二报文中的负载相拼接,以形成目标负载;根据所述目标序列号、所述目标确认号、所述重传报文四元组和所述目标负载恢复所述第一报文。
在本公开的一些实施例中,基于前述方案,所述攻击防护装置还配置为:在判定所述第二报文合法后,将所述重传报文四元组中的源IP地址加入信任名单;在预设时间内将接收到的由所述信任名单中的源IP地址所发送的报文直接发送至所述服务器。
在本公开的一些实施例中,基于前述方案,所述攻击防护装置还配置为:通过检测设备对客户端发送的报文的流量进行旁路,以获取旁路分光镜像流量,并对所述旁路分光镜像流量进行分析;在所述检测设备识别到攻击时,通过动态路由将流量牵引至所述防护设备,以进行攻击防护。
根据本公开实施例的一个方面,提供了一种攻击防护系统,其特征在于,包括:客户端,用于向服务器发送报文;检测设备,用于旁路所述客户端发送报文的流量,并对获取的旁路分光镜像流量进行攻击识别,当识别到攻击时,通过动态路由将流量牵引到防护设备;防护设备,用于接收所述检测设备通过所述动态路由所牵引的流量,并根据如上述实施例中所述的攻击防护方法进行攻击防护;服务器,用于接收经过所述防护设备进行攻击防护处理后的报文。
根据本公开实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例所述的攻击防护方法。
根据本公开实施例的一个方面,提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上述实施例所述的攻击防护方法。
在本公开的实施例所提供的技术方案中,通过防护设备在接收到客户端发送的带有负载的第一报文后,根据第一报文中的第一序列号和第一确认号确定第二确认号和第二序列号;然后根据第二确认号、第二序列号和报文四元组形成反弹报文,该反弹报文为确认部分负载的ACK报文;最后将反弹报文发送至客户端,以接收客户端根据反弹报文发送的带有负载的第二报文,并在判定第二报文合法时,根据第一报文中的部分负载信息和第二报文恢复第一报文,并将第一报文发送至服务器。本公开的技术方案能够通过防护设备反弹一个确认部分负载的ACK报文,同时在防护设备上额外记录已经确认的负载数据,根据客户端在合法重传间隔内是否有重传,并且重传报文的序列号是否符合预期来进行ACK Flood防护,增加了攻击者的攻击成本,降低了误杀率,并且最大限度降低了攻击透传。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本公开的一个实施例的攻击防护系统的体系构架示意图;
图2示意性示出了根据本公开的一个实施例的攻击防护方法的流程示意图;
图3示意性示出了根据本公开的一个实施例的检测第二报文合法性的流程示意图;
图4示意性示出了根据本公开的一个实施例的防护装置对合法客户端进行攻击防护的交互流程图;
图5示意性示出了根据本公开的一个实施例的防护装置对非法客户端进行攻击防护的交互流程图;
图6示意性示出了根据本公开的一个实施例的攻击防护装置的框图;
图7示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本公开实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构100可以包括客户端101、检测设备102、防护设备103和服务器104。客户端101用以向服务器104发送报文;检测设备102用以旁路客户端101发送报文的流量,并对获取的旁路分光镜像流量进行攻击识别,当识别到客户端101发送的报文存在攻击时,通过动态路由将流量牵引到防护设备103;防护设备103用以接收动态路由牵引的流量,识别非法客户端,对非法客户端的攻击进行防护,保证服务器104接收到的报文都是正常报文,避免服务器104受到攻击;服务器104用以接收经过防护设备103进行攻击防护处理后的报文。
应该理解,图1中的客户端、检测设备、防护设备和服务器的数目仅仅是示意性的。根据实际需要,可以具有任意数目的客户端、检测设备、防护设备和服务器。比如服务器104可以是多个服务器组成的服务器集群等。客户端101可以是诸如平板电脑、台式计算机、智能手机等设备。
在本公开的一个实施例中,客户端101向服务器104发送ACK报文,在ACK报文传输过程中,检测设备103会将ACK报文的流量进行旁路,对ACK报文中是否存在ACK Flood进行检测,当确认客户端101发送至服务器104的ACK报文存在攻击可能性时,将通过动态路由进行流量牵引,将流量牵引至防护设备103,以使防护设备103对客户端101的合法性进行检测,防止服务器104接收到非法客户端发送的攻击报文。在防护设备103对客户端进行合法性检测时,防护设备103在接收到客户端101发送的ACK报文后,将ACK报文中的确认号、序列号、报文四元组及预设字符长度的负载存储于重传哈希表中,并根据确认号、序列号、报文四元组及预设字符长度形成确认部分负载的反弹报文,将反弹报文发送至客户端,若客户端为合法客户端,则会在重传时间间隔内重传第二报文,该第二报文中会包含服务器未确认部分的负载,防护设备接收到第二报文并确认第二报文合法后,可以根据预先存储的预设字符长度的负载和第二报文恢复第一报文,并发送至服务器104;若客户端为非法客户端,则其不会收到防护设备发送的反弹报文,或者根据反弹报文发送的第二报文是不合法的,因此无法恢复第一报文。通过防护设备向客户端发送确认部分负载的反弹报文,能够准确识别非法客户端,降低误杀率,提高了攻击者的攻击成本,并且最大限度降低了攻击透传。
在本领域的相关技术中,传统的ACK Flood防护算法通常采用会话学习或超时重传来实现。会话学习需要防护设备从交换机上通过动态路由提前牵引用户正常流量,并持续对连续状态进行跟踪,一旦发现ACK Flood,防护设备根据学到的会话信息,进行有效防护。超时重传是在发生ACK Flood的情况下,防护设备收到ACK报文后,通过丢弃该报文,并在防护设备上记录该报文的源IP地址、目的IP地址、源端口、目的端口、序列号、确认号、接收时间等信息,如果丢弃的是正常报文,客户端的TCP/IP协议栈会重传该报文,防护设备接收到同样的ACK报文后,校验重传间隔是否合法,校验通过则对该源IP地址加入信任名单,后续报文直接根据信任名单的进行转发。
但是相关技术中的ACK Flood防护算法存在相应的问题,会话学习需要提前牵引正常流量,消费防护设备大量CPU、内存、带宽资源,并且提前多少时间,不同业务,形态不一样,很难把握;超时重传虽然误杀率低,但是攻击者绕过成本低,透传率高。
针对相关技术中存在的问题,本公开提出了一种攻击防护方法,该攻击防护方法可用于防护ACK Flood攻击,以下对本发明实施例的攻击防护方法的实现细节进行详细阐述:
本公开实施例首先提供了一种攻击防护方法,该攻击防护方法应用于图1中所示的防护设备103。图2示意性示出了根据本公开的一个实施例的攻击防护方法的流程图,参照图2所示,该攻击防护方法至少包括步骤S210至步骤S240,详细介绍如下:
在步骤S210中,接收客户端发送的带有负载的第一报文,所述第一报文包括第一序列号、第一确认号、负载长度和报文四元组。
在本公开的一个实施例中,该第一报文为ACK报文,并且该ACK报文包含负载,还包含第一序列号、第一确认号、报文四元组和与负载对应的负载长度,其中报文四元组包括源IP地址、目的IP地址、源端口和目的端口。为便于后续描述的清晰,将第一序列号标记为x,第一确认号标记为y,负载长度标记为z。
在本公开的一个实施例中,防护设备接收到第一报文后,记录第一报文中的第一序列号x、第一确认号y、报文四元组,同时还记录接收第一报文的接收时间以及第一报文所包含的负载中的预设字符长度的负载。该预设字符长度可以是负载中的前N个字符,N为介于零和负载长度z之间的正整数。在记录时,可以根据上述信息构建一重传哈希表,具体地,可以对报文四元组中的各个信息进行哈希处理,以获取一哈希值,其中,对报文四元组中各个信息进行哈希处理时所采用的哈希算法可以是crc-32、MD5、SHA1、SHA256等等,在本公开的实施例中,防护设备针对带负载的第一报文,以源IP地址、目的IP地址、源端口和目的端口作为因子,计算crc-32哈希值,作为一种计算方式,具体地,可以先对基础值和源IP地址根据crc-32算法进行计算,以获取第一结果,接着对第一结果和目的IP地址根据crc-32算法进行计算,以获取第二结果,然后对第二结果和源端口根据crc-32算法进行计算,以获取第三结果,最后对第三结果和目的端口根据crc-32算法进行计算,以获取crc-32哈希值。在本公开实施例中,还可以通过其它的计算方式计算crc-32哈希值,本公开实施例对此不作具体限度。例如第一报文中的报文四元组包括的源IP地址为192.168.0.200,目的IP地址为27.17.8.242,源端口为50103,目的端口为27789,通过对各信息进行哈希处理,可以获取crc-32哈希值A,crc-32哈希值为由字母和数字组成的二进制数值,本公开实施例中以A进行替代。接着可以将该哈希值作为索引值,并将该索引值和对应的第一序列号、第一确认号、报文四元组、预设字符长度的负载和接收第一报文的接收时间插入至重传哈希表中,表1示出了重传哈希表的组成,如表1所示:
表1重传哈希表
Figure BDA0002389269780000091
如表1中所示,预设字符长度的负载记为B,其长度为N,介于零和负载长度z之间。
在本公开的一个实施例中,客户端的数量可以有多个,每个客户端发送的报文的数量也可以有多个,因此重传哈希表中存在多个哈希节点,每个节点对应一个ACK报文的信息。为了便于报文信息记录和查询,本公开实施例中所使用的哈希算法必须保证根据不同报文四元组信息获得的哈希值不同,这样才可以得到不同索引值,并根据不同索引值形成不同节点,以对不同的报文信息进行记录。
在步骤S220中,根据所述第一序列号和预设字符长度确定第二确认号,根据所述第一确认号确定第二序列号,其中所述预设字符长度为介于零和所述负载长度之间的正整数。
在本公开的一个实施例中,接收到客户端发送的第一报文后,可以根据第一报文中的信息形成确认部分负载的反弹报文,具体地,可以根据第一序列号和预设字符长度确定第二确认号,根据第一确认号确定第二序列号,该预设字符长度与插入到重传哈希表中的预设字符长度的负载的长度N相同,为介于零和负载长度之间的正整数。在根据第一序列号和预设字符长度确定第二确认号时,将第一序列号和预设字符长度相加,相加后的结果即为第二确认号,记为x+N,同时将第一确认号作为第二序列号,记为y,进而可以根据第二序列号、第二确认号和报文四元组形成反弹报文。
在步骤S230中,根据所述第二序列号、所述第二确认号和所述报文四元组形成反弹报文,并将所述反弹报文发送至所述客户端。
在本公开的一个实施例中,在根据第二序列号、第二确认号和报文四元组形成反弹报文时,由于反弹报文是由防护设备发送至客户端的,而接收到的第一报文是由客户端发送至服务器的,因此需要对第一报文中的报文四元组进行更新,并根据第二确认号、第二序列号和更新后的报文四元组形成反弹报文。具体地,可以将源IP地址和源端口分别作为更新后的目的IP地址和目的端口,将目的IP地址和目的端口作为更新后的源IP地址和源端口,根据更新后的目的IP地址和目的端口和更新后的源IP地址和源端口即可构建更新后的报文四元组。获取更新后的报文四元组后,根据第二序列号、第二确认号和更新后的报文四元组即可形成反弹报文。该反弹报文为一个确认部分负载的报文,若客户端为合法客户端,当其接收到该反弹报文后,根据所识别到的第二确认号x+N可以判定服务器已接收到预设字符长度N的负载信息,但是还有字符长度为z-N的负载信息未接收到,那么客户端就可以向服务器或防护设备重新发送一包含剩余负载信息的报文,以完成报文的发送。
值得注意的是,由于反弹报文是一个确认部分负载的报文,因此反弹报文中无需包含负载信息,即反弹报文中负载长度为0。
继续以表1中的例子为例,根据第一报文中的第一确认号、第一序列号、报文四元组及存储在重传哈希表中预设长度字符的负载的长度信息可以确定形成反弹报文的各个信息,具体如表2所示:
表2反弹报文的组成
Figure BDA0002389269780000111
在本公开的一个实施例中,形成反弹报文后,防护设备可以将反弹报文发送至客户端,并接收合法客户端发送的重传报文。由于防护设备是根据第一报文中的报文四元组进行更新所生成的更新后的报文四元组形成的,因此当客户端为合法客户端时,其能够接收到反弹报文,并根据反弹报文中确认的部分负载信息生成第二报文,并将其发送至防护设备,该第二报文包含未被确认的部分负载信息;当客户端为非法客户端时,由于第一报文中的源IP地址和源端口是伪造的源IP地址和源端口,也就是说,该源IP地址和源端口可能不存在,也可能不是非法客户端本身的IP地址和端口,因此非法客户端不能接收到反弹报文,或者即使非法客户端接收到反弹报文,但是通过检测自身的连接状态,确定不存在该连接后,也不会针对反弹报文做出任何反馈,因此防护设备并不会接收到非法客户端发送的重传报文,因而防护设备可以根据是否接收到重传报文识别非法客户端,防止非法客户端向服务器发送攻击报文,导致服务器瘫痪。
在步骤S240中,接收所述客户端根据所述反弹报文发送的带有负载的第二报文,在所述第二报文合法时,根据所述第二报文和所述预设字符长度的负载恢复所述第一报文,并将所述第一报文发送至服务器。
在本公开的一个实施例中,客户端根据反弹报文向防护设备发送带有负载的第二报文,第二报文还包含第三序列号、第三确认号和重传报文四元组。防护设备接收到第二报文后,首先对第二报文的合法性进行检测,当确定第二报文合法时,根据第二报文和存储在重传哈希表中的预设字符长度的负载恢复第一报文,并将第一报文发送至服务器。
在本公开的一个实施例中,图3示出了检测第二报文合法性的流程示意图,如图3所示,该流程至少包括步骤S301-S305,具体为:
在步骤S301中,对重传报文四元组中的各个信息进行哈希处理,以获取重传哈希值。
在本公开的一个实施例中,防护设备接收到客户端发送的重传报文后,可以采用与步骤S210中计算哈希值相同的方法对重传报文四元组中的各个信息进行哈希处理,以获取重传哈希值,具体处理流程在此不再赘述。
在步骤S302中,将重传哈希值与重传哈希表中的哈希值进行匹配。
在本公开的一个实施例中,为了判断该第二报文是否为与先前发送过的第一报文对应的重传报文,需要根据重传哈希值去重传哈希表中进行查询,判断重传哈希表中是否存在相同的哈希值,如果存在,说明该第二报文与先前接收到的第一报文对应,如果不存在,说明该第二报文为新接收到的报文。查询时,可以将重传哈希值与重传哈希表中的哈希值进行匹配,若重传哈希表中存在与重传哈希值匹配的目标哈希值,则提取与目标哈希值对应的信息;若不存在,则对第二报文不做处理,或对第二报文进行处理并插入到重传哈希表中。
在步骤S303中,当重传哈希表中存在与重传哈希值匹配的目标哈希值时,获取与目标哈希值对应地目标序列号、目标确认号和目标接收时间。
在本公开的一个实施例中,若存在目标哈希值,则提取目标哈希值对应的目标序列号、目标确认号和目标接收时间,若该第二报文合法,则目标序列号与第一序列号相同,目标确认号与第一确认号相同。
在步骤S304中,根据接收第二报文的接收时间和目标接收时间确定重传时间间隔。
在本公开的一个实施例中,由于合法客户端接收到反弹报文后,认为服务器已接收到了第一报文中的负载的N个字节,并触发超时重传,向防护设备或服务器发送第二报文,因此为了判断第二报文的合法性,首先需要判断第二报文对应的重传时间间隔是否符合协议栈的重传规律。在确定重传时间间隔时,可以从重传哈希表中提取第一报文的接收时间,即与目标哈希值对应的目标接收时间,然后将接收第二报文的接收时间与目标接收时间相减,即可获取重传时间间隔。
在步骤S305中,根据重传时间间隔、目标序列号、第三序列号、目标确认号和第三确认号对第二报文的合法性进行检测。
在本公开的一个实施例中,可以通过三步法对第二报文的合法性进行检测,首先是对重传时间间隔进行校验,其次是对确认号进行校验,最后是对序列号进行校验,当然也可以按照其它顺序对重传时间间隔、确认号和序列号进行校验,本公开实施例对此不做具体限定。对重传时间间隔进行校验时,可以将重传时间间隔与预设时间间隔进行比较,判断重传时间间隔是否小于预设时间间隔,若重传时间间隔小于预设时间间隔,则说明重传时间间隔校验通过,其中预设时间间隔为协议栈重传规律中设定的时间间隔,例如可以为2s、3s等等,本公开实施例对此不作具体限定。对确认号进行校验时,可以将第三确认号与目标确认号进行比对,判断二者是否相等,若第三确认号等于目标确认号,说明确认号校验通过。对序列号进行校验时,可以将第三序列号与目标序列号相减以获取序列号差值,并判断序列号差值是否等于预设字符长度,若序列号差值等于预设字符长度,说明序列号校验通过。当三步校验的结果均为校验通过时,说明第二报文合法,其为客户端响应反弹报文所发送的与第一报文相关的重传报文。以步骤S210中的例子为例,表3示出了第二报文中的信息,具体如下:
表3第二报文的组成
Figure BDA0002389269780000131
如表3中所示,第二报文中的负载记为C,其长度为z-N。
在本公开的一个实施例中,在确定第二报文合法后,可以根据第二报文和存储于重传哈希表中的预设字符长度的负载形成新的报文,也就是恢复的第一报文。具体地,可以获取与目标哈希值对应地预设字符长度的负载,该预设字符长度的负载可以是第一报文中的负载的前N个字符,N为正整数,而第二报文是根据反弹报文生成的,其中所包含的负载为第一报文中除前N个字符的负载之外的其它负载,因此可以将预设字符长度的负载与第二报文中的负载直接拼接,即可获取目标负载,该目标负载即为第一报文中的负载。接着根据目标序列号、目标确认号、重传报文四元组和目标负载形成报文,即可完成对第一报文的恢复,进一步地,可以将第一报文发送至服务器,以完成数据传输。
在本公开的一个实施例中,当判定第二报文合法时,一方面可以根据第二报文恢复第一报文,另一方面可以判定发送第一报文和第二报文的客户端为合法客户端,并将该合法客户端的报文四元组中的源IP地址添加到信任名单中,对该信任名单中的源IP地址对应的客户端在预设时间内发送的ACK报文,防护设备都不再进行检测,直接将ACK报文转发至服务器。其中,预设时间为信任有效期,具体可以根据实际需要进行设定,例如可以设置为半小时、一小时等等,若在预设时间之外接收到客户端发送的ACK报文时,则需要重新进行检测,判断客户端是否合法。
在本公开的一个实施例中,以对合法客户端发送的ACK报文进行检测为例,图4示出了防护装置对合法客户端进行攻击防护的交互流程图,如图4所示,在步骤S401中,合法客户端向防护设备发送ACK报文;该ACK报文包含序列号、确认号、负载、负载长度和报文四元组,其中,序列号例如可以是50,确认号可以是70,负载长度为100,并且报文四元组中的源IP地址、目的IP地址、源端口和目的端口分别为192.168.0.200、27.17.8.242、50103、27789。在步骤S402中,防护设备记录ACK报文信息,并保存预设字符长度的负载;在防护设备中,可以对报文四元组中的各个信息进行哈希处理,以获取一哈希值,将该哈希值作为索引,并将对应的报文信息插入到重传哈希表中,同时在重传哈希表中存储接收ACK报文的接收时间和负载中前N个字符,其中N为小于负载长度100的正整数,例如可以是20等。在步骤S403中,防护设备根据ACK报文信息构建反弹报文;在构建反弹报文时,可以将ACK报文中的确认号作为反弹报文中的序列号,将ACK报文中的序列号和预设字符长度之和作为反弹报文中的确认号,并对ACK报文中的报文四元组进行更新以获取更新的报文四元组,进而根据重新确定的序列号、确认号和更新的报文四元组形成反弹报文,具体地,反弹报文中的序列号为70,确认号为70,由于反弹报文只是确认部分负载的报文,合法客户端只需根据报文信息确定有多少负载已被服务器接收即可,因此反弹报文中无需包含负载,即负载长度为0。在步骤S404中,将反弹报文发送至合法客户端。在步骤S405中,合法客户端根据反弹报文发送重传ACK报文;该重传ACK报文中确认号为70,序列号为70,所包含的负载对应的负载长度为80,也就是说,合法客户端认为服务器只接收到第一次发送的ACK报文中的前20个字符的负载,而后80个字符的负载并未接收到,因此在超时重传时,只需将服务器未接收到的负载再次发送即可。在步骤S406中,防护设备对接收到的重传ACK报文进行检测;可以根据三步法对重传ACK报文的合法性进行检测,此处不再赘述。在步骤S407中,在确认重传ACK报文合法时,将报文中的源IP地址加入信任名单,并根据重传ACK报文和存储的N字节负载还原ACK报文。在步骤S408中,将还原后的ACK报文发送至服务器。在步骤S409中,防护设备对预设时间内由该合法客户端发送的ACK报文直接转发至服务器。
对非法客户端而言,其并不会正确响应防护装置发送的反弹报文,而只会按照自己的规律发送相同或者确认号和序列号随机的ACK报文。图5示出了防护装置对非法客户端进行攻击防护的交互流程图,如图5所示,在步骤S501中,非法客户端向防护装置发送ACK报文;该ACK报文包含序列号、确认号、负载、负载长度和报文四元组。在步骤S502中,防护设备记录ACK报文信息,并保存预设字符长度的负载;该步骤与步骤S402相同,在此不再赘述。在步骤S503中,防护设备根据ACK报文信息构建反弹报文;该步骤与步骤S503也相同,在此不再赘述。在步骤S504中,将反弹报文发送至非法客户端。在步骤S505中,非法客户端向防护设备发送ACK报文。在步骤S506中,检测ACK报文的合法性;由于非法客户端发送的ACK报文中报文四元组的信息可能是不存在的,也可能不是该非法客户端的,因此该非法客户端接收不到反弹报文,即使防护设备再次接收到了ACK报文,该ACK报文所包含的确认号、序列号及负载长度与步骤S501中发送的ACK报文的确认号、序列号及负载长度可能相同也可能不同,但是不符合规则,例如超时重传的重传时间间隔超出预设时间、确认号不同、序列号差值不等于预设字符长度N,因而防护设备对ACK报文的校验结果为失败。在步骤S507中,防护设备重复执行步骤S502-S503,非法客户端重复执行步骤S504。由于防护设备对接收到的ACK报文校验都是失败,因此该交互过程都是在非法客户端和防护设备之间进行的,服务器不会收到任何的攻击报文,因而避免了服务器受到攻击而瘫痪。
在本公开的一个实施例中,预设字符长度N可以根据不同的业务进行设定,例如有的业务可以在重传哈希表中存储50字节的负载,有的业务在重传哈希表中存储100字节的负载,等等,本公开实施例对此不作具体限定。通过根据不同业务设定不同预设字符长度,可以进一步增加非法客户端绕过防护设备检测的难度,提高攻击防护效果,降低误杀率。
在本公开的一个实施例中,为了提高攻击检测的时效性,可以在客户端向服务器发送ACK报文的同时,通过检测设备旁路ACK报文的流量,通过对旁路得到的旁路分光镜像流量进行分析,以识别客户端发送至服务器的ACK报文是否存在ACK Flood攻击。在对旁路分光光镜像流量进行分析时,可以通过多种方法进行攻击识别,例如可以根据流量绘制曲线,根据曲线的变化斜率确定是否存在攻击,可以基于会话学习得到的会话特征识别是否存在攻击,还可以提取报文的信息,判断其是否符合协议栈标准,进一步还可以通过人工智能的方法进行识别,本公开实施例包含但不限于上述方法。在检测设备对旁路分光镜像流量进行识别确定存在ACK Flood攻击后,可以通过动态路由牵引流量至防护设备,防护设备将牵引流量与流量阈值进行比较,判断是否启动攻击防护,该流量阈值可以是预设时间段内接收到的报文个数,具体数值可以根据实际需要进行设定,例如在5s内接收到的报文个数是否超过100个,等等。
本公开实施例中的攻击防护方法可以应用在云、数据中心、服务器等防御ACKFlood攻击的场景,适用于在互联网出口和接入点等可以看到所有入流量的节点。本公开实施例中的攻击防护方法通过防护设备根据接收到的客户端发送的ACK报文形成确认部分负载的反弹报文,将该反弹报文发送至客户端,判断客户端是否会响应反弹报文发送重传ACK报文,若客户端重新发送重传ACK报文,则对该重传ACK报文进行检测,当确认重传ACK报文合法时,判定该客户端为合法客户端,根据重传ACK报文和存储在重传哈希表中的预设字符长度的负载得到恢复的ACK报文,并将恢复的ACK报文发送至服务器,同时还将合法客户端的源IP地址添加至信任名单,进而可以在信任有效期内无需通过防护设备检测,即可将ACK报文发送至服务器。本公开实施例中的攻击防护方法基于改进的超时重传,充分利用协议栈的特性,能够在发生ACK Flood攻击时,自动触发攻击防护,避免了手动配置防护参数;另外由于非法客户端不能响应反弹报文,不具备协议栈行为,因而提高了非法客户端绕过防护设备向服务器发送攻击报文的成本,进一步降低了误杀率和攻击透传。
以下介绍本公开的装置实施例,可以用于执行本公开上述实施例中的攻击防护方法。对于本公开装置实施例中未披露的细节,请参照本公开上述的攻击防护方法。
图6示意性示出了根据本公开的一个实施例的攻击防护装置的框图。
参照图6所示,根据本公开的一个实施例的攻击防护装置600,攻击防护装置600应用于防护设备,包括:报文接收模块601、信息确定模块602、报文生成模块603和报文转发模块604。
具体地,报文接收模块601,用于接收客户端发送的带有负载的第一报文,所述第一报文包括第一序列号、第一确认号、负载长度和报文四元组;信息确定模块602,用于根据所述第一序列号和预设字符长度确定第二确认号,根据所述第一确认号确定第二序列号,其中所述预设字符长度为介于零和所述负载长度之间的正整数;报文生成模块603,用于根据所述第二序列号、所述第二确认号和所述报文四元组形成反弹报文,并将所述反弹报文发送至所述客户端;报文转发模块604,用于接收所述客户端根据所述反弹报文发送的带有负载的第二报文,在所述第二报文合法时,根据所述第二报文和所述预设字符长度的负载恢复所述第一报文,并将所述第一报文发送至服务器。
在本公开的一个实施例中,所述信息确定模块602配置为:将所述第一序列号与所述预设字符长度相加,并将相加后的结果作为所述第二确认号;将所述第一确认号作为所述第二序列号。
在本公开的一个实施例中,所述报文四元组包含源IP地址、目的IP地址、源端口和目的端口;所述报文生成模块603配置为:将所述源IP地址和所述源端口分别作为更新后的目的IP地址和目的端口,并将所述目的IP地址和所述目的端口作为更新后的源IP地址和源端口;根据所述更新后的目的IP地址和目的端口和所述更新后的源IP地址和源端口构建更新后的报文四元组;根据所述第二序列号、所述第二确认号和所述更新后的报文四元组形成所述反弹报文。
在本公开的一个实施例中,所述反弹报文中负载的长度为零。
在本公开的一个实施例中,所述攻击防护装置600还配置为:对所述报文四元组中的各个信息进行哈希处理,以获取哈希值;将所述哈希值、所述第一序列号、所述第一确认号、所述报文四元组、所述预设字符长度的负载和接收所述第一报文的接收时间对应插入至重传哈希表中。
在本公开的一个实施例中,所述第二报文包括第三序列号、第三确认号和重传报文四元组;所述报文转发模块604包括:哈希处理单元,用于对所述重传报文四元组中的各个信息进行哈希处理,以获取重传哈希值;匹配单元,用于将所述重传哈希值与所述重传哈希表中的哈希值进行匹配;信息获取单元,用于当所述重传哈希表中存在与所述重传哈希值匹配的目标哈希值时,获取与所述目标哈希值对应地目标序列号、目标确认号和目标接收时间,所述目标序列号与所述第一序列号相同,所述目标确认号与所述第一确认号相同;重传时间间隔获取单元,用于根据接收所述第二报文的接收时间和所述目标接收时间确定重传时间间隔;检测单元,用于根据所述重传时间间隔、所述目标序列号、所述第三序列号、所述目标确认号和所述第三确认号对所述第二报文的合法性进行检测。
在本公开的一个实施例中,所述重传时间间隔获取单元配置为:将接收所述第二报文的接收时间与所述目标接收时间相减,以获取所述重传时间间隔。
在本公开的一个实施例中,所述检测单元配置为:将所述重传时间间隔与预设时间间隔比较,判断所述重传时间间隔是否小于所述预设时间间隔;将所述第三序列号与所述目标序列号相减以获取序列号差值,判断所述序列号差值是否等于所述预设字符长度;将所述第三确认号与所述目标确认号进行比对,判断所述第三确认号是否等于所述目标确认号;若所述重传时间间隔小于所述预设时间间隔、所述序列号差值等于所述预设字符长度,并且所述第三确认号等于所述目标确认号,则判定所述第二报文合法。
在本公开的一个实施例中,所述报文转发模块604配置为:获取与所述目标哈希值对应地预设字符长度的负载,其中所述预设字符长度的负载为所述第一报文中的负载的前N个字符,N为正整数;将与所述目标哈希值对应地预设字符长度的负载和所述第二报文中的负载相拼接,以形成目标负载;根据所述目标序列号、所述目标确认号、所述重传报文四元组和所述目标负载恢复所述第一报文。
在本公开的一个实施例中,所述攻击防护装置600还配置为:在判定所述第二报文合法后,将所述重传报文四元组中的源IP地址加入信任名单;在预设时间内将接收到的由所述信任名单中的源IP地址所发送的报文直接发送至所述服务器。
在本公开的一个实施例中,所述攻击防护装置600还配置为:通过检测设备对客户端发送的报文的流量进行旁路,以获取旁路分光镜像流量,并对所述旁路分光镜像流量进行分析;在所述检测设备识别到攻击时,通过动态路由将流量牵引至所述防护设备,以进行攻击防护。
图7示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(Central Processing Unit,CPU)701,其可以根据存储在只读存储器(Read-Only Memory,ROM)702中的程序或者从存储部分708加载到随机访问存储器(Random Access Memory,RAM)703中的程序而执行各种适当的动作和处理,实现上述实施例中所述的图像标注方法。在RAM 703中,还存储有系统操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(Input/Output,I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本公开的系统中限定的各种功能。
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的图像处理装置中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (15)

1.一种攻击防护方法,其特征在于,应用于防护设备,所述方法包括:
接收客户端发送的带有负载的第一报文,所述第一报文包括第一序列号、第一确认号、负载长度和报文四元组;
根据所述第一序列号和预设字符长度确定第二确认号,根据所述第一确认号确定第二序列号,其中所述预设字符长度为介于零和所述负载长度之间的正整数;
根据所述第二序列号、所述第二确认号和所述报文四元组形成反弹报文,并将所述反弹报文发送至所述客户端;
接收所述客户端根据所述反弹报文发送的带有负载的第二报文,在所述第二报文合法时,根据所述第二报文和所述预设字符长度的负载恢复所述第一报文,并将所述第一报文发送至服务器。
2.根据权利要求1所述的攻击防护方法,其特征在于,所述根据所述第一序列号和预设字符长度确定第二确认号,根据所述第一确认号确定第二序列号,包括:
将所述第一序列号与所述预设字符长度相加,并将相加后的结果作为所述第二确认号;
将所述第一确认号作为所述第二序列号。
3.根据权利要求2所述的攻击防护方法,其特征在于,所述报文四元组包含源IP地址、目的IP地址、源端口和目的端口;
所述根据所述第二序列号、所述第二确认号和所述报文四元组形成反弹报文,包括:
将所述源IP地址和所述源端口分别作为更新后的目的IP地址和目的端口,并将所述目的IP地址和所述目的端口作为更新后的源IP地址和源端口;
根据所述更新后的目的IP地址和目的端口和所述更新后的源IP地址和源端口构建更新后的报文四元组;
根据所述第二序列号、所述第二确认号和所述更新后的报文四元组形成所述反弹报文。
4.根据权利要求3所述的攻击防护方法,其特征在于,所述反弹报文中负载的长度为零。
5.根据权利要求1所述的攻击防护方法,其特征在于,在根据所述第一序列号和预设字符长度确定第二确认号,根据所述第一确认号确定第二序列号之前,所述方法还包括:
对所述报文四元组中的各个信息进行哈希处理,以获取哈希值;
将所述哈希值、所述第一序列号、所述第一确认号、所述报文四元组、所述预设字符长度的负载和接收所述第一报文的接收时间对应插入至重传哈希表中。
6.根据权利要求5所述的攻击防护方法,其特征在于,所述第二报文包括第三序列号、第三确认号和重传报文四元组;
在接收所述客户端根据所述反弹报文发送的带有负载的第二报文之后,所述方法还包括:
对所述重传报文四元组中的各个信息进行哈希处理,以获取重传哈希值;
将所述重传哈希值与所述重传哈希表中的哈希值进行匹配;
当所述重传哈希表中存在与所述重传哈希值匹配的目标哈希值时,获取与所述目标哈希值对应地目标序列号、目标确认号和目标接收时间,所述目标序列号与所述第一序列号相同,所述目标确认号与所述第一确认号相同;
根据接收所述第二报文的接收时间和所述目标接收时间确定重传时间间隔;
根据所述重传时间间隔、所述目标序列号、所述第三序列号、所述目标确认号和所述第三确认号对所述第二报文的合法性进行检测。
7.根据权利要求6所述的攻击防护方法,其特征在于,所述根据接收所述第二报文的接收时间和所述目标接收时间确定重传时间间隔,包括:
将接收所述第二报文的接收时间与所述目标接收时间相减,以获取所述重传时间间隔。
8.根据权利要求6或7所述的攻击防护方法,其特征在于,所述根据重传时间间隔、所述目标序列号、所述第三序列号、所述目标确认号和所述第三确认号对所述第二报文的合法性进行检测,包括:
将所述重传时间间隔与预设时间间隔比较,判断所述重传时间间隔是否小于所述预设时间间隔;
将所述第三序列号与所述目标序列号相减以获取序列号差值,判断所述序列号差值是否等于所述预设字符长度;
将所述第三确认号与所述目标确认号进行比对,判断所述第三确认号是否等于所述目标确认号;
若所述重传时间间隔小于所述预设时间间隔、所述序列号差值等于所述预设字符长度,并且所述第三确认号等于所述目标确认号,则判定所述第二报文合法。
9.根据权利要求8所述的攻击防护方法,其特征在于,所述在所述第二报文合法时,根据所述第二报文和所述预设字符长度的负载恢复所述第一报文,包括:
获取与所述目标哈希值对应地预设字符长度的负载,其中所述预设字符长度的负载为所述第一报文中的负载的前N个字符,N为正整数;
将与所述目标哈希值对应地预设字符长度的负载和所述第二报文中的负载相拼接,以形成目标负载;
根据所述目标序列号、所述目标确认号、所述重传报文四元组和所述目标负载恢复所述第一报文。
10.根据权利要求8所述的攻击防护方法,其特征在于,所述方法还包括:
在判定所述第二报文合法后,将所述重传报文四元组中的源IP地址加入信任名单;
在预设时间内将接收到的由所述信任名单中的源IP地址所发送的报文直接发送至所述服务器。
11.根据权利要求1所述的攻击防护方法,其特征在于,所述方法还包括:
通过检测设备对客户端发送的报文的流量进行旁路,以获取旁路分光镜像流量,并对所述旁路分光镜像流量进行分析;
在所述检测设备识别到攻击时,通过动态路由将流量牵引至所述防护设备,以进行攻击防护。
12.一种攻击防护装置,其特征在于,应用于防护设备,所述装置包括:
报文接收模块,用于接收客户端发送的带有负载的第一报文,所述第一报文包括第一序列号、第一确认号、负载长度和报文四元组;
信息确定模块,用于根据所述第一序列号和预设字符长度确定第二确认号,根据所述第一确认号确定第二序列号,其中所述预设字符长度介于零和所述负载长度之间;
报文生成模块,用于根据所述第二序列号、所述第二确认号和所述报文四元组形成反弹报文,并将所述反弹报文发送至所述客户端;
报文转发模块,用于接收所述客户端根据所述反弹报文发送的带有负载的第二报文,在所述第二报文合法时,根据所述第二报文和所述预设字符长度的负载恢复所述第一报文,并将所述第一报文发送至服务器。
13.一种攻击防护系统,其特征在于,包括:
客户端,用于向服务器发送报文;
检测设备,用于旁路所述客户端发送报文的流量,并对获取的旁路分光镜像流量进行攻击识别,当识别到攻击时,通过动态路由将流量牵引到防护设备;
防护设备,用于接收所述检测设备通过所述动态路由所牵引的流量,并根据权利要求1-11中任一项所述的攻击防护方法进行攻击防护;
服务器,用于接收经过所述防护设备进行攻击防护处理后的报文。
14.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1-11中任一项所述的攻击防护方法。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至11中任一项所述的攻击防护方法。
CN202010108860.2A 2020-02-21 2020-02-21 攻击防护方法、装置、系统、计算机存储介质及电子设备 Active CN111314358B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010108860.2A CN111314358B (zh) 2020-02-21 2020-02-21 攻击防护方法、装置、系统、计算机存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010108860.2A CN111314358B (zh) 2020-02-21 2020-02-21 攻击防护方法、装置、系统、计算机存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111314358A true CN111314358A (zh) 2020-06-19
CN111314358B CN111314358B (zh) 2023-02-17

Family

ID=71151309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010108860.2A Active CN111314358B (zh) 2020-02-21 2020-02-21 攻击防护方法、装置、系统、计算机存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111314358B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800401A (zh) * 2020-06-28 2020-10-20 腾讯科技(深圳)有限公司 业务报文的防护方法、装置、系统和计算机设备
CN111970308A (zh) * 2020-09-03 2020-11-20 杭州安恒信息技术股份有限公司 一种防护SYN Flood攻击的方法、装置及设备
CN112134884A (zh) * 2020-09-23 2020-12-25 普联技术有限公司 一种报文序列号的更新方法
CN112583850A (zh) * 2020-12-27 2021-03-30 杭州迪普科技股份有限公司 网络攻击防护方法、装置及系统
CN112866233A (zh) * 2021-01-14 2021-05-28 华南理工大学 一种防护慢速ddos攻击的方法、设备及介质
CN113872833A (zh) * 2021-09-30 2021-12-31 新华三信息安全技术有限公司 一种检测路径可达的方法、系统及设备
CN114070572A (zh) * 2020-07-30 2022-02-18 北京威努特技术有限公司 一种非法tcp数据流的检测方法、装置及计算机设备
CN114500021A (zh) * 2022-01-18 2022-05-13 神州绿盟成都科技有限公司 一种攻击检测方法、装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4528663A (en) * 1983-12-09 1985-07-09 Zenith Electronics Corporation Peak load access in a two-way CATV contention system
US6513122B1 (en) * 2001-06-29 2003-01-28 Networks Associates Technology, Inc. Secure gateway for analyzing textual content to identify a harmful impact on computer systems with known vulnerabilities
CN103457931A (zh) * 2013-08-15 2013-12-18 华中科技大学 一种网络诱骗与反攻击的主动防御方法
US20150207815A1 (en) * 2014-01-17 2015-07-23 F5 Networks, Inc. Systems and methods for network destination based flood attack mitigation
CN106302495A (zh) * 2016-08-25 2017-01-04 北京神州绿盟信息安全科技股份有限公司 一种ACK Flood攻击的防护方法及中间防护装置
CN108322417A (zh) * 2017-01-16 2018-07-24 阿里巴巴集团控股有限公司 网络攻击的处理方法、装置和系统及安全设备
CN109587163A (zh) * 2018-12-27 2019-04-05 网宿科技股份有限公司 一种dr模式下的防护方法和装置
CN109936543A (zh) * 2017-12-18 2019-06-25 中国移动通信集团辽宁有限公司 ACK Flood攻击的防护方法、装置、设备及介质
CN110099027A (zh) * 2018-01-29 2019-08-06 腾讯科技(深圳)有限公司 业务报文的传输方法和装置、存储介质、电子装置
CN110198293A (zh) * 2018-04-08 2019-09-03 腾讯科技(深圳)有限公司 服务器的攻击防护方法、装置、存储介质和电子装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4528663A (en) * 1983-12-09 1985-07-09 Zenith Electronics Corporation Peak load access in a two-way CATV contention system
US6513122B1 (en) * 2001-06-29 2003-01-28 Networks Associates Technology, Inc. Secure gateway for analyzing textual content to identify a harmful impact on computer systems with known vulnerabilities
CN103457931A (zh) * 2013-08-15 2013-12-18 华中科技大学 一种网络诱骗与反攻击的主动防御方法
US20150207815A1 (en) * 2014-01-17 2015-07-23 F5 Networks, Inc. Systems and methods for network destination based flood attack mitigation
CN106302495A (zh) * 2016-08-25 2017-01-04 北京神州绿盟信息安全科技股份有限公司 一种ACK Flood攻击的防护方法及中间防护装置
CN108322417A (zh) * 2017-01-16 2018-07-24 阿里巴巴集团控股有限公司 网络攻击的处理方法、装置和系统及安全设备
CN109936543A (zh) * 2017-12-18 2019-06-25 中国移动通信集团辽宁有限公司 ACK Flood攻击的防护方法、装置、设备及介质
CN110099027A (zh) * 2018-01-29 2019-08-06 腾讯科技(深圳)有限公司 业务报文的传输方法和装置、存储介质、电子装置
CN110198293A (zh) * 2018-04-08 2019-09-03 腾讯科技(深圳)有限公司 服务器的攻击防护方法、装置、存储介质和电子装置
CN109587163A (zh) * 2018-12-27 2019-04-05 网宿科技股份有限公司 一种dr模式下的防护方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高中耀 等: "TCP报文丢包定位方法研究", 《计算机工程与应用》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800401A (zh) * 2020-06-28 2020-10-20 腾讯科技(深圳)有限公司 业务报文的防护方法、装置、系统和计算机设备
CN114070572A (zh) * 2020-07-30 2022-02-18 北京威努特技术有限公司 一种非法tcp数据流的检测方法、装置及计算机设备
CN114070572B (zh) * 2020-07-30 2024-09-27 北京威努特技术有限公司 一种非法tcp数据流的检测方法、装置及计算机设备
CN111970308A (zh) * 2020-09-03 2020-11-20 杭州安恒信息技术股份有限公司 一种防护SYN Flood攻击的方法、装置及设备
CN112134884A (zh) * 2020-09-23 2020-12-25 普联技术有限公司 一种报文序列号的更新方法
CN112583850A (zh) * 2020-12-27 2021-03-30 杭州迪普科技股份有限公司 网络攻击防护方法、装置及系统
CN112583850B (zh) * 2020-12-27 2023-02-24 杭州迪普科技股份有限公司 网络攻击防护方法、装置及系统
CN112866233A (zh) * 2021-01-14 2021-05-28 华南理工大学 一种防护慢速ddos攻击的方法、设备及介质
CN113872833A (zh) * 2021-09-30 2021-12-31 新华三信息安全技术有限公司 一种检测路径可达的方法、系统及设备
CN113872833B (zh) * 2021-09-30 2023-11-07 新华三信息安全技术有限公司 一种检测路径可达的方法、系统及设备
CN114500021A (zh) * 2022-01-18 2022-05-13 神州绿盟成都科技有限公司 一种攻击检测方法、装置、电子设备及存储介质
CN114500021B (zh) * 2022-01-18 2024-07-26 神州绿盟成都科技有限公司 一种攻击检测方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111314358B (zh) 2023-02-17

Similar Documents

Publication Publication Date Title
CN111314358B (zh) 攻击防护方法、装置、系统、计算机存储介质及电子设备
US10812524B2 (en) Method, and devices for defending distributed denial of service attack
US8224976B2 (en) Using a server's capability profile to establish a connection
CN111585890B (zh) 基于SRv6的网络路径验证方法及系统
US5958053A (en) Communications protocol with improved security
US10333970B2 (en) Front-end protocol for server protection
US20050240989A1 (en) Method of sharing state between stateful inspection firewalls on mep network
CN111314328A (zh) 网络攻击防护方法、装置、存储介质及电子设备
CN108810008B (zh) 传输控制协议流量过滤方法、装置、服务器及存储介质
CA3159619C (en) Packet processing method and apparatus, device, and computer-readable storage medium
CN109922144B (zh) 用于处理数据的方法和装置
CN112187793B (zh) 一种ACK Flood攻击的防护方法及装置
CN111865996A (zh) 数据检测方法、装置和电子设备
CN111049781A (zh) 一种反弹式网络攻击的检测方法、装置、设备及存储介质
CN114338510B (zh) 控制和转发分离的数据转发方法和系统
CN111147524A (zh) 报文发送端的识别方法、装置和计算机可读存储介质
CN110798451A (zh) 一种安全认证的方法及装置
CN110198290B (zh) 一种信息处理方法、设备、装置及存储介质
CN112738110A (zh) 一种旁路阻断方法、装置、电子设备和存储介质
CN114281547B (zh) 一种数据报文处理方法、装置、电子设备及存储介质
CN114697088A (zh) 一种确定网络攻击的方法、装置及电子设备
CN111200505B (zh) 一种报文处理方法及装置
CN118413356B (zh) 一种抵御syn flood攻击的优化方法和系统
CN114567484B (zh) 一种报文处理方法、装置、电子设备及存储介质
CN114553452B (zh) 攻击防御方法及防护设备

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024066

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant