CN112714102A - 一种多核异构平台下SYN Flood攻击防御方法 - Google Patents
一种多核异构平台下SYN Flood攻击防御方法 Download PDFInfo
- Publication number
- CN112714102A CN112714102A CN202011390816.1A CN202011390816A CN112714102A CN 112714102 A CN112714102 A CN 112714102A CN 202011390816 A CN202011390816 A CN 202011390816A CN 112714102 A CN112714102 A CN 112714102A
- Authority
- CN
- China
- Prior art keywords
- address
- source
- current message
- red
- list
- 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.)
- Pending
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
本发明公开了一种多核异构平台下SYN Flood攻击防御方法,采用基于源IP地址的白名单及红黑名单的方式进行攻击防御,防御过程中没有建立会话表而产生的内存资源开销,在防御攻击的同时,仍然能保证正常流量的畅通。
Description
技术领域
本发明属于计算机网络安全技术领域,具体涉及一种多核异构平台下SYN Flood攻击防御方法。
背景技术
SYN Flood是最广为人知的一种拒绝服务攻击(Dos)和分布式拒绝服务攻击(DDos)的攻击方式之一。它的原理是利用TCP协议的设计缺陷,伪造假的IP地址或IP地址范围发送海量的TCP连接三次握手的首包(SYN报文),使得攻击方需要消耗内存保持连接的状态处于SYN Recv状态的半连接直至超时,根据TCP协议要求,服务端还要回复多次SYN-Ack报文,这种状况直到资源耗尽(如CPU满负荷或者内存不足),从而导致无法处理其他正常的服务,达到攻击的目的。
对网络安全厂商而言,防御SYN Flood攻击的有效方法主要是靠阈值和延迟分配TCB的方法来进行攻击防御。阈值的方法主要是靠实时监控syn半连接的数量,超过一定阈值后直接断开连接,这种方法对攻击和正常浏览一视同仁,故而会导致正常连接也会因此被错误释放掉,无法保证防御攻击的同时流量的正常畅通。另外一种延迟分配TCB的方法主要是使用SYN Cookie和SYN Cache技术来进行防御,主要实现原理是收到TCP三次握手首包后不急于向服务端发送SYN报文,而是回复一个SYN Ack,并建立专用哈希表记录回复的序列号等半连接信息,直到收到了客户端回应的Ack报文后确认该IP有效后再次转发SYN报文。网络转发设备防火墙使用这种攻击防御方法会耗费较多资源,且处理正常流量和攻击流量一致,导致正常流量中每个报文均需要更改后续的SYN序列号、校验和,对正常流量造成影响。
对于网络厂商而言,如何更好的防御SYN Flood攻击,不仅仅是靠算法防御,多核下要更加考虑处理共享资源,在防御攻击的同时可以保持正常流量,需要更多的考虑防御方法、多核架构的设计,以及如何在多核下处理资源的竞争问题。
发明内容
有鉴于此,本发明提供了一种多核异构平台下SYN Flood攻击防御方法,能够在保证正常流量通畅的情况下实现多核异构平台的SYN Flood攻击防御。
本发明提供的一种多核异构平台下SYN Flood攻击防御方法,包括以下步骤:
分别建立基于源IP地址的白名单表和红黑表;所述红黑表包括黑名单和红名单;
若当前报文在会话表中,则基于会话表转发所述当前报文;若所述当前报文未在会话表中,且所述当前报文的源IP地址在所述白名单表中,则新建会话表项,基于新建的会话表项转发所述当前报文;
若所述当前报文未在会话表中,且所述当前报文的源IP地址未在所述白名单表中,则查询所述红黑表,若所述当前报文的源IP地址未在所述红黑表中,则将所述当前报文的源IP地址加入黑名单中;若所述当前报文的源IP地址在黑名单中,则丢弃所述当前报文的源IP地址的报文;若所述当前报文的源IP地址在红名单中,则若接收到的来自所述当前报文的源IP地址的Ack报文的数量大于阈值则将所述当前报文的源IP地址加入黑名单,否则将其加入红名单。
进一步地,所述白名单表为全局表,所述红黑表为局部表。
进一步地,所述方法还包括根据所述白名单表和红黑表采取三级防御机制防御攻击,具体包括以下步骤:
若所述当前报文的源IP地址未在所述红黑表中,则丢弃所述当前报文的源IP地址的首个数据包,若未再接收到来自于所述当前报文的源IP地址的Ack报文,则将所述当前报文的源IP地址加入黑名单,并丢弃所述当前报文的源IP地址的报文;
若所述当前报文的源IP地址在所述黑名单中,则丢弃所述当前报文的源IP地址的报文;若所述当前报文的源IP地址在所述红名单中,则接收到来自于所述当前报文的源IP地址的Ack报文的数量大于阈值时,将所述当前报文的源IP地址加入所述黑名单;接收到来自于所述当前报文的源IP地址的Ack报文的数量不大于阈值,则向所述当前报文的源IP地址回复带有错误序列号的Ack报文,如果接收到的所述当前报文的源IP地址回复的错误Ack的数量超过阈值且在规定时间内未收到回复的Reset报文,则将所述当前报文的源IP地址加入黑名单,如果在规定时间接收到了所述当前报文的源IP地址回复的Reset报文,则将所述当前报文的源IP地址加入所述白名单表。
进一步地,所述白名单表采取预先构建与动态增加的方式进行维护。
进一步地,所述白名单表的超时机制为根据超时阈值控制表项,即在对所述白名单表进行查找时删除超过所述超时阈值的表项;所述红黑表采用最近最少使用LRU算法作为超时机制。
有益效果:
1、本发明采用基于源IP地址的白名单及红黑名单的方式进行攻击防御,防御过程中没有建立会话表而产生的内存资源开销,在防御攻击的同时,仍然能保证正常流量的畅通。
2、本发明采用白名单全局化、红黑表每核独有化,可以使得在攻击流量发生时,最大化保证白名单表的查询速度,从而使防御流量的性能随着CPU数量的增加而线性增长。
3、本发明基于建立的白名单及红黑名单,采用三级防御机制有效提高了对SYNFlood攻击防御的成功率。
4、本发明采用基于Lru先进先出超时表来维护红黑名单超时,无需挂每核Timer,且在每核中维护单独的Lru表,因此在攻击流量上G数量级时也能保证定时处理超时的黑名单时的性能。
附图说明
图1为本发明提供的多核异构平台下SYN Flood攻击防御方法的结构图。
图2为本发明提供的多核异构平台下SYN Flood攻击防御方法的白名单处理流程图。
图3为本发明提供的多核异构平台下SYN Flood攻击防御方法的基本防御过程流程图。
图4为本发明提供的多核异构平台下SYN Flood攻击防御方法的采用哈系桶方法防御流程图。
图5为本发明提供的多核异构平台下SYN Flood攻击防御方法的三级防御流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
现有技术中,基于多核异构平台的防火墙的架构包含两大模块:一是用于快速转发网络报文的快速模块,通常运行在用户态由多个CPU参与转发,主要功能是提升防火墙的转发性能;二是用于实现复杂的逻辑功能的慢速模块,通常运行在内核态由多个CPU参与实现。总体来讲,基于多核异构平台的防火墙中快速模块保证高性能,慢速模块保证功能的完备性。对于SYN Flood攻击,通常需要在新建会话表时进行防御,而在异构平台中快速模块和慢速模块均需参与新建会话的过程,按照模块的功能来说,SYN Flood攻击的防御应主要由慢速模块实现,但这必然会将攻击流量进入快速模块和慢速模块之间的通道,从而导致通道堵塞丢包,进而影响正常流量,因此,本发明中对SYN Flood攻击防御的主要功能由快速模块实现,具体结构如图1所示。
目前SYN Flood攻击的类型主要包括基于固定的源IP地址或者变化的源IP地址进行单机或者分布式攻击,上述两种类型均属于伪装无效的源IP地址的方式。本发明提供的一种多核异构平台下SYN Flood攻击防御方法,是基于SYN Flood的攻击特点,结合TCP协议栈和实际应用场景而设计,其核心思想是:基于源IP地址建立的红黑名单及白名单进行攻击防御。
本发明提供的一种多核异构平台下SYN Flood攻击防御方法,具体包括以下步骤:
步骤1、构建白名单表。
本发明中,将白名单表设计为全局表,内存分配采用内存池(Memory Pool)申请的方式,白名单表全局查询不加锁,且与红黑名单分开,是一个独立的白名单表。
将白名单与红黑名单分开单独建表的效果在于:对于海量攻击,红黑名单中存在上百万的伪装IP地址,如果白名单混合其中,将会影响正常流量的查找性能。因此,将白名单独立建表可以有效保证正常流量的转发不受攻击的影响。
(1)本发明中,白名单表采取预先构建与动态增加的方式建立。其中,预先构建是指基于已有会话表进行构建,对于已建立会话表但未在白名单表中的SIP客户端,将其加入白名单表中,并更新超时时间;动态增加是指在攻击防御时,将判断为合法的SIP客户端加入白名单表中,并更新超时时间。采用这样的设计,当攻击发生时,对于已确认的SIP客户端可以直接通过策略,而未在白名单表中SIP客户端的报文仍需红黑名单进行合法性判断。
白名单表建立的具体流程如图2所示,具体包括:
新建会话成功后,查询白名单表,如果白名单表中存在当前会话中的SIP客户端,则判断白名单表中的该表项是否超时,如果超时,则更新白名单表中该表项的时间,结束本流程;如果没有超时,则结束本流程;如果白名单表中不存在当前会话中的SIP客户端,则新建表项,并采用当前时间更新该表项的时间,结束本流程。
(2)白名单表的删除机制是由查找白名单表触发的删除机制,如图3所示,具体过程如下:
根据由报文的SIP计算得到的哈希值,采用哈希桶查找方法遍历白名单表查找,若查找到当前报文对应的白名单表项,若当前白名单表项总数是否超过阈值,则判断该白名单表项的超时时间是否大于阈值,如果超时时间大于阈值则将其删除。
(3)白名单表的超时时间更新机制:仅新建会话成功后才会对白名单表进行更新,具体包括以下两种情况:
当白名单表项为新增表项时,添加当前时间即为更新时间T=T0;
当查找过程中找到该表项时,判断当前时间与表项中的时间差是否大于超时阈值,即(T-T1)是否大于C,如果大于则将表项中的时间T更新为当前时间T1,否则不更新。
步骤2、构建红黑表。
本发明中将红黑表设计为局部资源,这是因为海量攻击发生时,会对红黑表进行大量增删操作,如果是全局表,增加和删除多核下资源竞争加锁会十分影响防火墙的处理能力。因此,本发明的红黑表设置为局部表,每个转发核保存一份红黑表。其中,红表代表待处理IP地址,黑表代表黑名单。
步骤3、根据建立的白名单表和红黑表,采用三层防御机制完成对SYN Flood攻击的防御。本发明中三层防御机制是指,首包丢弃、Reset报文判断以及超时连接数量判断。
首包丢弃,是指丢弃第一个SYN报文,一般情况下如果第一个SYN报文被丢弃后,发起连接的客户端会再次发送SYN报文,而攻击报文大多数则不会重发。
Reset报文判断,是指根据TCP SYN的报文序列号,防御方回复一个必然错误的序列号等待发起连接的客户端回复Reset报文,对于攻击方来讲,只有当它记录了原始的报文序列号时才能识别出错误的序列号而发送Reset报文,否则是无法识别出错误回复reset报文的。采用这种方法可防御99%以上的SYN Flood攻击。
超时连接数量判断,是指为了防止对同一源IP地址回复过多的Ack报文,本发明还限制了同一IP地址发送错误Ack的数量,对于超过数量后且在规定时间内未收到回复的reset报文的,则将该IP地址加入黑名单,如果在规定时间内回复,则将IP地址加入白名单。
采用本发明提出的三层防御机制的SYN Flood攻击防御过程,流程如图5所示,具体包括以下步骤:
步骤3.1、对接收到的报文首先查询会话表,查找到会话表成功代表这条连接SIP是存在白名单表中的,此时可以基于会话表转发;如果没有查到,则执行步骤3.2;
步骤3.2、查询全局白名单表,看其是否是已经验证过合法性的IP地址。如果存在,则建立会话表项并基于新建的会话表项进行转发。如果白名单表中不存在,则执行步骤3.3;
步骤3.3、查询局部红黑表,如果未在红黑表查找到该IP地址,则丢弃首包,如果后续未再接收到该IP地址的Ack报文,则将该IP地址加入黑名单中,并丢弃该IP地址的报文;如果在红黑表中查找到了该IP地址,则执行步骤3.4;
步骤3.4、如果该IP地址在黑表中,则丢弃该IP地址的报文;如果该IP地址在红表中,当收到Ack报文的数量大于阈值时,则将该IP地址加入黑名单;若收到Ack报文的数量不大于阈值,则向该IP地址回复带有错误序列号的Ack报文,如果该IP地址回复的错误Ack的数量超过阈值且在规定时间内未收到回复的reset报文的,则将该IP地址加入黑名单,如果在规定时间内回复,则将IP地址加入白名单。
本发明中的红黑表的定时器功能并不采用每核定时功能,因为如果这样设计的话,海量的攻击会导致定时器资源将近耗尽,不仅仅是这种内存上的资源耗尽,而且处理定时器的时间也会十分长,严重影响了正常的流量转发。同时因红黑表也是使用内存池申请,红黑表中元素个数的最大值有限,且红黑表格也需要定时删除,为了保证多核下达到这种效果,而本发明的定时功能采用先进先出的方法,使用Lru表维护每核超时资源,每次处理源IP地址时将链表进行Lru操作,保证最不常用的IP地址可以被替换。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种多核异构平台下SYN Flood攻击防御方法,其特征在于,包括以下步骤:
分别建立基于源IP地址的白名单表和红黑表;所述红黑表包括黑名单和红名单;
若当前报文在会话表中,则基于会话表转发所述当前报文;若所述当前报文未在会话表中,且所述当前报文的源IP地址在所述白名单表中,则新建会话表项,基于新建的会话表项转发所述当前报文;
若所述当前报文未在会话表中,且所述当前报文的源IP地址未在所述白名单表中,则查询所述红黑表,若所述当前报文的源IP地址未在所述红黑表中,则将所述当前报文的源IP地址加入黑名单中;若所述当前报文的源IP地址在黑名单中,则丢弃所述当前报文的源IP地址的报文;若所述当前报文的源IP地址在红名单中,则若接收到的来自所述当前报文的源IP地址的Ack报文的数量大于阈值则将所述当前报文的源IP地址加入黑名单,否则将其加入红名单。
2.根据权利要求1所述的方法,其特征在于,所述白名单表为全局表,所述红黑表为局部表。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括根据所述白名单表和红黑表采取三级防御机制防御攻击,具体包括以下步骤:
若所述当前报文的源IP地址未在所述红黑表中,则丢弃所述当前报文的源IP地址的首个数据包,若未再接收到来自于所述当前报文的源IP地址的Ack报文,则将所述当前报文的源IP地址加入黑名单,并丢弃所述当前报文的源IP地址的报文;
若所述当前报文的源IP地址在所述黑名单中,则丢弃所述当前报文的源IP地址的报文;若所述当前报文的源IP地址在所述红名单中,则接收到来自于所述当前报文的源IP地址的Ack报文的数量大于阈值时,将所述当前报文的源IP地址加入所述黑名单;接收到来自于所述当前报文的源IP地址的Ack报文的数量不大于阈值,则向所述当前报文的源IP地址回复带有错误序列号的Ack报文,如果接收到的所述当前报文的源IP地址回复的错误Ack的数量超过阈值且在规定时间内未收到回复的Reset报文,则将所述当前报文的源IP地址加入黑名单,如果在规定时间接收到了所述当前报文的源IP地址回复的Reset报文,则将所述当前报文的源IP地址加入所述白名单表。
4.根据权利要求1所述的方法,其特征在于,所述白名单表采取预先构建与动态增加的方式进行维护。
5.根据权利要求1所述的方法,其特征在于,所述白名单表的超时机制为根据超时阈值控制表项,即在对所述白名单表进行查找时删除超过所述超时阈值的表项;所述红黑表采用最近最少使用LRU算法作为超时机制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011390816.1A CN112714102A (zh) | 2020-12-02 | 2020-12-02 | 一种多核异构平台下SYN Flood攻击防御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011390816.1A CN112714102A (zh) | 2020-12-02 | 2020-12-02 | 一种多核异构平台下SYN Flood攻击防御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112714102A true CN112714102A (zh) | 2021-04-27 |
Family
ID=75542459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011390816.1A Pending CN112714102A (zh) | 2020-12-02 | 2020-12-02 | 一种多核异构平台下SYN Flood攻击防御方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112714102A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513365A (zh) * | 2022-02-28 | 2022-05-17 | 北京启明星辰信息安全技术有限公司 | 一种针对SYN Flood攻击的检测与防御方法 |
CN117201201A (zh) * | 2023-11-07 | 2023-12-08 | 北京金睛云华科技有限公司 | 基于全流量存储回溯系统的syn flood攻击存储方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110131646A1 (en) * | 2009-12-02 | 2011-06-02 | Electronics And Telecommunications Research Institute | Apparatus and method for preventing network attacks, and packet transmission and reception processing apparatus and method using the same |
CN103237039A (zh) * | 2013-05-10 | 2013-08-07 | 汉柏科技有限公司 | 一种报文转发方法及设备 |
CN107124402A (zh) * | 2017-04-12 | 2017-09-01 | 杭州迪普科技股份有限公司 | 一种报文过滤的方法和装置 |
CN108551446A (zh) * | 2018-04-08 | 2018-09-18 | 东软集团股份有限公司 | 防攻击的syn报文处理方法、装置、防火墙及存储介质 |
CN109246057A (zh) * | 2017-07-10 | 2019-01-18 | 东软集团股份有限公司 | 报文转发方法、装置、转发系统、存储介质及电子设备 |
CN110381032A (zh) * | 2019-06-24 | 2019-10-25 | 东软集团股份有限公司 | 一种多核系统中的会话表项处理方法、装置及相关产品 |
-
2020
- 2020-12-02 CN CN202011390816.1A patent/CN112714102A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110131646A1 (en) * | 2009-12-02 | 2011-06-02 | Electronics And Telecommunications Research Institute | Apparatus and method for preventing network attacks, and packet transmission and reception processing apparatus and method using the same |
CN103237039A (zh) * | 2013-05-10 | 2013-08-07 | 汉柏科技有限公司 | 一种报文转发方法及设备 |
CN107124402A (zh) * | 2017-04-12 | 2017-09-01 | 杭州迪普科技股份有限公司 | 一种报文过滤的方法和装置 |
CN109246057A (zh) * | 2017-07-10 | 2019-01-18 | 东软集团股份有限公司 | 报文转发方法、装置、转发系统、存储介质及电子设备 |
CN108551446A (zh) * | 2018-04-08 | 2018-09-18 | 东软集团股份有限公司 | 防攻击的syn报文处理方法、装置、防火墙及存储介质 |
CN110381032A (zh) * | 2019-06-24 | 2019-10-25 | 东软集团股份有限公司 | 一种多核系统中的会话表项处理方法、装置及相关产品 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513365A (zh) * | 2022-02-28 | 2022-05-17 | 北京启明星辰信息安全技术有限公司 | 一种针对SYN Flood攻击的检测与防御方法 |
CN114513365B (zh) * | 2022-02-28 | 2023-06-30 | 北京启明星辰信息安全技术有限公司 | 一种针对SYN Flood攻击的检测与防御方法 |
CN117201201A (zh) * | 2023-11-07 | 2023-12-08 | 北京金睛云华科技有限公司 | 基于全流量存储回溯系统的syn flood攻击存储方法 |
CN117201201B (zh) * | 2023-11-07 | 2024-01-02 | 北京金睛云华科技有限公司 | 基于全流量存储回溯系统的syn flood攻击存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3923551B1 (en) | Method and system for entrapping network threat, and forwarding device | |
CN101175013B (zh) | 一种拒绝服务攻击防护方法、网络系统和代理服务器 | |
KR100608136B1 (ko) | 티씨피 연결의 스테이트풀 인스펙션에 있어서의 보안성능향상방법 | |
US6973040B1 (en) | Method of maintaining lists of network characteristics | |
US7818795B1 (en) | Per-port protection against denial-of-service and distributed denial-of-service attacks | |
US20040015721A1 (en) | Denial of service defense by proxy | |
EP1592197A2 (en) | Network amplification attack mitigation | |
CN111385235A (zh) | 一种基于动态变换的DDoS攻击防御系统和方法 | |
US12120139B1 (en) | System and method to protect resource allocation in stateful connection managers | |
CN112714102A (zh) | 一种多核异构平台下SYN Flood攻击防御方法 | |
CN103685315A (zh) | 一种防御拒绝服务攻击的方法及系统 | |
US7552206B2 (en) | Throttling service connections based on network paths | |
Paharia et al. | DDoS Detection and Mitigation in cloud via FogFiter: a defence mechanism | |
Gade et al. | Performance of Windows XP, Windows Vista and Apple's Leopard computers under a denial of service attack | |
CN110661763B (zh) | 一种DDoS反射攻击防御方法、装置及其设备 | |
EP1154610A2 (en) | Methods and system for defeating TCP Syn flooding attacks | |
CN114024731A (zh) | 报文处理方法及装置 | |
Dulik | Network attack using TCP protocol for performing DoS and DDoS attacks | |
Safa et al. | A collaborative defense mechanism against SYN flooding attacks in IP networks | |
US20080282340A1 (en) | Safe hashing for network traffic | |
Still et al. | DDoS protections for SMTP servers | |
Wu et al. | A three-layer defense mechanism based on web servers against distributed denial of service attacks | |
CN117201202B (zh) | 一种反射放大Flood攻击流量存储方法 | |
Hamadeh et al. | Packet marking for traceback of illegal content distribution | |
CN118413356B (zh) | 一种抵御syn flood攻击的优化方法和系统 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210427 |
|
WD01 | Invention patent application deemed withdrawn after publication |