CN113709105B - 基于计数型布隆过滤器的SYN Flood攻击检测方法 - Google Patents
基于计数型布隆过滤器的SYN Flood攻击检测方法 Download PDFInfo
- Publication number
- CN113709105B CN113709105B CN202110820093.2A CN202110820093A CN113709105B CN 113709105 B CN113709105 B CN 113709105B CN 202110820093 A CN202110820093 A CN 202110820093A CN 113709105 B CN113709105 B CN 113709105B
- Authority
- CN
- China
- Prior art keywords
- message
- value
- positions
- tcp
- count table
- 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
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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了基于计数型布隆过滤器的SYN Flood攻击检测方法,包括检测某段时间内单个源IP的TCP连接请求包个数,并取其最大值作为阈值,或者手动设置一个阈值;构建一个计数表、一个白名单和黑名单,并初始化;在当前时间周期内检测的TCP报文的接收;获取接收的TCP报文的源目IP,并用k个独立的哈希函数对源目IP进行运算,得到k个哈希值,并寻找k个哈希值在计数表中的对应位置;判断接收的TCP报文是否在黑名单或白名单或阈值范围内,并对相应判断结果做出TCP报文丢弃或通过的选择。本发明占用内存小且匹配速度快,能够实现对SYN Flood攻击的防御;通过选取合适的哈希函数个数和数组长度,以及定时重置数组中的数据,减少误报率。
Description
技术领域
本发明涉及网络安全领域,具体涉及一种基于计数型布隆过滤器的SYN Flood攻击检测方法。
背景技术
SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,利用TCP协议漏洞,发送大量伪造的TCP连接请求,造成被攻击方资源耗尽。从而影响正常的服务请求。由于它利用了TCP/IP协议存在的固有的缺陷,所以现有的协议体系对SYN Flood攻击毫无免疫力。
TCP连接的建立在TCP协议中被称为三次握手(Three-way Handshake),而SYNFlood攻击就是针对三次握手的漏洞实现的。
三次握手的步骤为:
(1)客户端向服务器发送一个包含SYN标志的TCP报文,报文会指明客户端使用的端口以及TCP连接的初始序号。这时同服务器建立了第一次握手。
(2)服务器在收到SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时,TCP序号被加一,这样就同服务器建立了第二次握手。
(3)客户端也返回一个确认报文ACK给服务器,同样TCP序列号被加一,到此一个TCP连接完成,三次握手完成。
SYN flood攻击的原理是:
TCP连接的三次握手中,TCP连接建立时,服务器收到客户端发送的SYN数据包后,服务器返回SYN+ACK给客户端,并等待客户端回复ACK报文,因为伪造的源地址不会回复ACK报文(这个特性非常适合识别目前SYN Flood的攻击),这种情况下由于TCP重传机制一般会再次发送SYN+ACK给客户端,并等待一段时间后丢弃这个未完成的连接。这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级,当大量攻击发生,那么服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。从而使正常用户无法访问,或者服务器宕机。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于计数型布隆过滤器的SYNFlood攻击检测方法解决了收到攻击后正常用户无法访问和服务器宕机的问题。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种基于计数型布隆过滤器的SYN Flood攻击检测方法,其包括以下步骤:
S1、检测某段时间内单个源IP的TCP连接请求包个数,并取其最大值作为阈值;
S2、构建一个计数表、一个白名单和黑名单,并初始化;
S3、判断是否完成当前时间周期的TCP报文的接收,若是则结束此次检测;否则进入步骤S4;
S4、获取接收到的TCP报文的源目IP,并用k个独立的哈希函数对源目IP进行运算,得到k个哈希值,并寻找k个哈希值在计数表中的对应位置;
S5、判断计数表中的对应位置对应的白名单中的值是否都非0,若是则通过接收到的TCP报文并回到步骤S3;否则进入步骤S6;
S6、判断计数表中的对应位置对应的黑名单中的值是否都非0,若是则丢弃接收到的TCP报文并回到步骤S3;否则进入步骤S7;
S7、判断接收到的TCP报文是否为TCP三次握手中的SYN报文,若是则将接收到的SYN报文在计数表中对应的k个位置的值+1,并进入步骤S8;否则进入步骤S9;
S8、判断该SYN报文对应计数表的k个位置中是否出现某个值大于阈值,若是则将该值对应的计数表位置的值清0,同时将该值对应的黑名单位置的值置1,丢弃该报文并回到步骤S3;否则通过该报文并回到步骤S3;
S9、判断接收到的TCP报文的是否为TCP三次握手中的ACK报文,若是则进入步骤S10;否则判定为正常通信报文,通过该报文并回到步骤S3;
S10、判断该ACK报文对应计数表的k个位置中的值是否都非0;若是则将ACK报文对应计数表的k个位置中的值-1,同时将该值对应的白名单位置的值置1,通过该报文并回到步骤S3;否则丢弃该报文并回到步骤S3。
进一步地,步骤S2中计数表为一个长度为m的一维数组,且一维数组为short类型,白名单和黑名单储存在一个长度为m的二维数组中,二维数组为两列,第一列用于保存白名单第二列用于保存黑名单,且二维数组的两列均为bit类型;初始化即将计数表、白名单和黑名单中的值清0;且该系统定期进行初始化。
进一步地,步骤S4中寻找k个哈希值在计数表中的对应位置的具体方法为:将k个哈希值对m取模,即将k个哈希值映射到计数表的k个位置中。
本发明的有益效果为:多次进行哈希运算达到快速存储匹配,占用内存小且匹配速度快;采用两个布隆过滤器的存储结构,统计TCP报文中SYN报文与ACK报文的差值,再对存储的数值进行判断,得出攻击者使用的IP地址,进而实现对SYN Flood攻击的防御;通过选取合适的哈希函数个数和数组长度,以及定时重置数组中的数据即定时初始化数组,减少了误报率;本算法简单,便于移植到FPGA等硬件上,以获取更高性能的处理。
附图说明
图1为本发明的流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,该基于计数型布隆过滤器的SYN Flood攻击检测方法包括以下步骤:
S1、检测某段时间内单个源IP的TCP连接请求包个数,并取其最大值作为阈值;
S2、构建一个计数表、一个白名单和黑名单,并初始化;
S3、判断是否完成当前时间周期的TCP报文的接收,若是则结束此次检测;否则进入步骤S4;
S4、获取接收到的TCP报文的源目IP,并用k个独立的哈希函数对源目IP进行运算,得到k个哈希值,并寻找k个哈希值在计数表中的对应位置;
S5、判断计数表中的对应位置对应的白名单中的值是否都非0,若是则通过接收到的TCP报文并回到步骤S3;否则进入步骤S6;
S6、判断计数表中的对应位置对应的黑名单中的值是否都非0,若是则丢弃接收到的TCP报文并回到步骤S3;否则进入步骤S7;
S7、判断接收到的TCP报文是否为TCP三次握手中的SYN报文,若是则将接收到的SYN报文在计数表中对应的k个位置的值+1,并进入步骤S8;否则进入步骤S9;
S8、判断该SYN报文对应计数表的k个位置中是否出现某个值大于阈值,若是则将该值对应的计数表位置的值清0,同时将该值对应的黑名单位置的值置1,丢弃该报文并回到步骤S3;否则通过该报文并回到步骤S3;
S9、判断接收到的TCP报文的是否为TCP三次握手中的ACK报文,若是则进入步骤S10;否则判定为正常通信报文,通过该报文并回到步骤S3;
S10、判断该ACK报文对应计数表的k个位置中的值是否都非0;若是则将ACK报文对应计数表的k个位置中的值-1,同时将该值对应的白名单位置的值置1,通过该报文并回到步骤S3;否则丢弃该报文并回到步骤S3。
步骤S1中的阈值可手动设置。
步骤S2中计数表为一个长度为m的一维数组,且一维数组为short类型,白名单和黑名单储存在一个长度为m的二维数组中,二维数组为两列,第一列用于保存白名单第二列用于保存黑名单,且二维数组的两列均为bit类型;初始化即将计数表、白名单和黑名单中的值清0;且该系统定期进行初始化。
步骤S4中寻找k个哈希值在计数表中的对应位置的具体方法为:将k个哈希值对m取模,即将k个哈希值映射到计数表的k个位置中。
本发明多次进行哈希运算达到快速存储匹配,占用内存小且匹配速度快;采用两个布隆过滤器的存储结构,统计TCP报文中SYN报文与ACK报文的差值,再对存储的数值进行判断,得出攻击者使用的IP地址,进而实现对SYN Flood攻击的防御;通过选取合适的哈希函数个数和数组长度,以及定时重置数组中的数据即定时初始化数组,减少了误报率;本算法简单,便于移植到FPGA等硬件上,以获取更高性能的处理。
Claims (2)
1.一种基于计数型布隆过滤器的SYN Flood攻击检测方法,其特征在于,包括以下步骤:
S1、检测某段时间内单个源IP的TCP连接请求包个数,并取其最大值作为阈值;
S2、构建一个计数表、一个白名单和黑名单,并初始化;
S3、判断是否完成当前时间周期的TCP报文的接收,若是则结束此次检测;否则进入步骤S4;
S4、获取接收到的TCP报文的源目IP,并用k个独立的哈希函数对源目IP进行运算,得到k个哈希值,并寻找k个哈希值在计数表中的对应位置;
S5、判断计数表中的对应位置对应的白名单中的值是否都非0,若是则通过接收到的TCP报文并回到步骤S3;否则进入步骤S6;
S6、判断计数表中的对应位置对应的黑名单中的值是否都非0,若是则丢弃接收到的TCP报文并回到步骤S3;否则进入步骤S7;
S7、判断接收到的TCP报文是否为TCP三次握手中的SYN报文,若是则将接收到的SYN报文在计数表中对应的k个位置的值+1,并进入步骤S8;否则进入步骤S9;
S8、判断该SYN报文对应计数表的k个位置中是否出现某个值大于阈值,若是则将该值对应的计数表位置的值清0,同时将该值对应的黑名单位置的值置1,丢弃该报文并回到步骤S3;否则通过该报文并回到步骤S3;
S9、判断接收到的TCP报文的是否为TCP三次握手中的ACK报文,若是则进入步骤S10;否则判定为正常通信报文,通过该报文并回到步骤S3;
S10、判断该ACK报文对应计数表的k个位置中的值是否都非0;若是则将ACK报文对应计数表的k个位置中的值-1,同时将该值对应的白名单位置的值置1,通过该报文并回到步骤S3;否则丢弃该报文并回到步骤S3;
步骤S2中计数表为一个长度为m的一维数组,且一维数组为short类型,白名单和黑名单储存在一个长度为m的二维数组中,二维数组为两列,第一列用于保存白名单第二列用于保存黑名单,且二维数组的两列均为bit类型;初始化即将计数表、白名单和黑名单中的值清0;且定期进行初始化。
2.根据权利要求1所述的基于计数型布隆过滤器的SYN Flood攻击检测方法,其特征在于,步骤S4中寻找k个哈希值在计数表中的对应位置的具体方法为:将k个哈希值对m取模,即将k个哈希值映射到计数表的k个位置中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110820093.2A CN113709105B (zh) | 2021-07-20 | 2021-07-20 | 基于计数型布隆过滤器的SYN Flood攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110820093.2A CN113709105B (zh) | 2021-07-20 | 2021-07-20 | 基于计数型布隆过滤器的SYN Flood攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113709105A CN113709105A (zh) | 2021-11-26 |
CN113709105B true CN113709105B (zh) | 2023-08-29 |
Family
ID=78649015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110820093.2A Active CN113709105B (zh) | 2021-07-20 | 2021-07-20 | 基于计数型布隆过滤器的SYN Flood攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113709105B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086069B (zh) * | 2022-07-19 | 2024-01-26 | 光大科技有限公司 | 一种DDoS攻击识别方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1484148A (zh) * | 2002-05-31 | 2004-03-24 | �������ؼ��ô�˾ | 用于syn/fin对应关系的秘密散列 |
CN101465864A (zh) * | 2009-01-14 | 2009-06-24 | 中国科学院计算技术研究所 | 一种带宽消耗随机伪造源地址攻击的过滤方法及系统 |
CN101465760A (zh) * | 2007-12-17 | 2009-06-24 | 北京启明星辰信息技术股份有限公司 | 一种检测拒绝服务攻击的方法和系统 |
CN101465855A (zh) * | 2008-12-31 | 2009-06-24 | 中国科学院计算技术研究所 | 一种同步泛洪攻击的过滤方法及系统 |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN105119942A (zh) * | 2015-09-16 | 2015-12-02 | 广东睿江科技有限公司 | 一种洪水攻击检测方法 |
CN105827646A (zh) * | 2016-05-17 | 2016-08-03 | 浙江宇视科技有限公司 | Syn攻击防护的方法及装置 |
CN107770113A (zh) * | 2016-08-15 | 2018-03-06 | 台山市金讯互联网络科技有限公司 | 一种精确确定攻击特征的洪水攻击检测方法 |
CN108551446A (zh) * | 2018-04-08 | 2018-09-18 | 东软集团股份有限公司 | 防攻击的syn报文处理方法、装置、防火墙及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050249214A1 (en) * | 2004-05-07 | 2005-11-10 | Tao Peng | System and process for managing network traffic |
-
2021
- 2021-07-20 CN CN202110820093.2A patent/CN113709105B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1484148A (zh) * | 2002-05-31 | 2004-03-24 | �������ؼ��ô�˾ | 用于syn/fin对应关系的秘密散列 |
CN101465760A (zh) * | 2007-12-17 | 2009-06-24 | 北京启明星辰信息技术股份有限公司 | 一种检测拒绝服务攻击的方法和系统 |
CN101465855A (zh) * | 2008-12-31 | 2009-06-24 | 中国科学院计算技术研究所 | 一种同步泛洪攻击的过滤方法及系统 |
CN101465864A (zh) * | 2009-01-14 | 2009-06-24 | 中国科学院计算技术研究所 | 一种带宽消耗随机伪造源地址攻击的过滤方法及系统 |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN105119942A (zh) * | 2015-09-16 | 2015-12-02 | 广东睿江科技有限公司 | 一种洪水攻击检测方法 |
CN105827646A (zh) * | 2016-05-17 | 2016-08-03 | 浙江宇视科技有限公司 | Syn攻击防护的方法及装置 |
CN107770113A (zh) * | 2016-08-15 | 2018-03-06 | 台山市金讯互联网络科技有限公司 | 一种精确确定攻击特征的洪水攻击检测方法 |
CN108551446A (zh) * | 2018-04-08 | 2018-09-18 | 东软集团股份有限公司 | 防攻击的syn报文处理方法、装置、防火墙及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113709105A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6816910B1 (en) | Method and apparatus for limiting network connection resources | |
US8984627B2 (en) | Network security management | |
US7568224B1 (en) | Authentication of SIP and RTP traffic | |
US7653938B1 (en) | Efficient cookie generator | |
CN109005175B (zh) | 网络防护方法、装置、服务器及存储介质 | |
US20010042200A1 (en) | Methods and systems for defeating TCP SYN flooding attacks | |
CN110198293B (zh) | 服务器的攻击防护方法、装置、存储介质和电子装置 | |
US20100095351A1 (en) | Method, device for identifying service flows and method, system for protecting against deny of service attack | |
US20040236966A1 (en) | Queuing methods for mitigation of packet spoofing | |
CN1484148A (zh) | 用于syn/fin对应关系的秘密散列 | |
US7404210B2 (en) | Method and apparatus for defending against distributed denial of service attacks on TCP servers by TCP stateless hogs | |
CN111212096B (zh) | 一种降低idc防御成本的方法、装置、存储介质和计算机 | |
Pandey | Prevention of ARP spoofing: A probe packet based technique | |
WO2021244449A1 (zh) | 一种数据处理方法及装置 | |
CN112751862A (zh) | 一种端口扫描攻击检测方法、装置及电子设备 | |
Kavisankar et al. | A mitigation model for TCP SYN flooding with IP spoofing | |
CN106487790B (zh) | 一种ack flood攻击的清洗方法及系统 | |
CN113709105B (zh) | 基于计数型布隆过滤器的SYN Flood攻击检测方法 | |
US8973143B2 (en) | Method and system for defeating denial of service attacks | |
CN112559824A (zh) | 报文处理方法、装置和设备 | |
CN108667829A (zh) | 一种网络攻击的防护方法、装置及存储介质 | |
CN113329039B (zh) | 一种缓存污染检测方法、装置、电子设备和存储介质 | |
CN110661763B (zh) | 一种DDoS反射攻击防御方法、装置及其设备 | |
EP1154610A2 (en) | Methods and system for defeating TCP Syn flooding attacks | |
CN112751801B (zh) | 一种基于ip白名单的拒绝服务攻击过滤方法、装置及设备 |
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 |