CN101599957A - 一种syn洪水攻击的防御方法和装置 - Google Patents
一种syn洪水攻击的防御方法和装置 Download PDFInfo
- Publication number
- CN101599957A CN101599957A CNA2009100118820A CN200910011882A CN101599957A CN 101599957 A CN101599957 A CN 101599957A CN A2009100118820 A CNA2009100118820 A CN A2009100118820A CN 200910011882 A CN200910011882 A CN 200910011882A CN 101599957 A CN101599957 A CN 101599957A
- Authority
- CN
- China
- Prior art keywords
- syn
- address
- bag
- sub
- time period
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种SYN洪水攻击的防御方法和装置,所述方法包括确定目的地址的设备处于被SYN洪水攻击状态后,还包括:对于接收到的SYN包,判断该SYN包的源IP地址在第一预设时间段内是第一次发包,还是重发包,若是第一次发包,则丢弃该SYN包;若是重发包,则继续后续正常处理。应用本发明,有效地防御了SYN洪水攻击。经实验,本发明可以大幅度提高防御SYN洪水攻击的性能。在运营商客户环境下实际使用,对防御SYN洪水攻击表现出非常好的效果。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种SYN洪水攻击(SYNFlood)的防御方法和装置。
背景技术
拒绝服务(DOS,Denial of Service)攻击是现有互联网上对服务器、网关等设备的一种攻击手段,这种攻击针对现有服务器的缺陷或薄弱点,让设备崩溃,停止工作,以达到影响设备正常业务的目的。Flood攻击(也叫洪水攻击,属于拒绝服务攻击的一种)就是一种典型的DOS攻击,其采用短时间内发送大量报文的形式,去耗竭设备内存资源,耗竭设备CPU资源,达到攻击的目的。这种攻击具有很强的破坏力,并且包含多种形式,如SYN洪水攻击(SYN Flood,Synchronize sequence numbers Flood)就是其中一种形式。
通常,一台计算机在网络中通讯前首先需要建立传输控制协议(TCP,Transmission Control Protocol)握手,标准的TCP握手需要三次包交换来建立,即一台服务器一旦接收到客户机的连接请求数据包SYN后必须回应一个请求响应数据包SYN+ACK,然后等待该客户机回应给它一个响应数据包ACK(Acknowledgment field significant)来确认,至此才真正建立起连接。
SYN Flood攻击的原理主要是向被攻击设备发送大量伪造源IP地址和源端口的TCP连接请求数据包,导致该设备缓存资源因处理这些伪造的SYN包被耗尽或因忙于发送回应包,直至系统资源耗尽,从而形成拒绝服务。其基本过程是,发送大量伪造源IP地址和源端口的TCP连接请求数据包SYN,而不发送确认服务器的响应数据包ACK,这样会导致服务器一直等待响应数据包ACK。由于服务器在有限的时间内只能响应有限数量的连接,这就会导致服务器一直等待回应而无法响应其它计算机进行的连接请求。
现有的防御SYN洪水攻击的方法,主要是基于SYN Cookie的手段。其原理是,在服务器等设备收到客户端的SYN包时,返回SYN+ACK包,并根据这个SYN包计算出一个cookie值返回去。当再收到该客户端的ACK包时,该设备根据已计算出的cookie值检查这个ACK包的合法性。如果合法,帮助该客户端和服务端的设备建立TCP连接。基于SYN Cookie方法的算法有很多种,其避免了攻击者伪造地址的可能性,但至少存在以下缺点:
1、性能差。攻击者构造一个伪造源地址和源端口的SYN欺骗包的开销极其小。而SYN Cookie的方法,需要计算Cookie、构造SYN+ACK包、查找反向路由、计算TCP和IP的校验和等等。现实情况中,同样硬件配置的单独攻击者和防御设备相比,攻击者产生SYN洪水攻击的能力,远比防御者处理能力强,也就是攻击者仍然可以让服务器等设备的处理能力超负荷,而拒绝服务的攻击目的仍然生效。
2、容易形成反射攻击。当攻击者A伪造了自己的地址成B,而网关按照其伪造的地址B回了一个SYN+ACK。当攻击者大量伪造地址B进行发包,会导致B会收到并处理大量的SYN+ACK报文。实质上是攻击者A利用网关对B实施的一个Dos反射攻击。
发明内容
本发明在于提供一种防御洪水攻击的方法和装置,能够有效的防御洪水攻击。
为了实现上述目的,本发明实施例提供了如下技术方案:
一种SYN洪水攻击的防御方法,确定目的地址的设备处于被SYN洪水攻击状态后,所述防御方法包括:
对于接收到的SYN包,
判断该SYN包的源IP地址在第一预设时间段内是第一次发包,还是重发包,若是第一次发包,则丢弃该SYN包;
若是重发包,则继续后续正常处理。
其中,在确定是重发包后,继续后续正常处理之前,还包括:
采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址是否合法,若合法,则再继续后续正常处理,否则丢弃所述SYN包。
其中,在采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址是否合法时,进一步包括:判断对某个客户端的针对SYN-Cookie的SYN+ACK包返回速率是否超越正常阈值,若是,则停止对该源IP地址的SYN+ACK包返回,否则再正常处理。
其中,在判断接收到的SYN包源IP地址在第一预设时间段内是否第一次发包之前,还包括:
对于接收到的SYN包,判断该SYN包的源IP地址是否属于已维护的客户端白名单中,若是,则继续后续正常处理;否则,再判断接收到的SYN包源IP地址在第一预设时间段内是否第一次发包。
其中,在采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址合法后,进一步包括:将所述源IP地址加入客户端白名单中。
其中,所述判断该SYN包的源IP地址是否在第一预设时间段内第一次发包的步骤包括:
将所述第一预设时间段分为n个长度相等的子时间段,分别为第一子时间段、第二子时间段、......和第n子时间段,其中n大于等于2;
建立n个hash表,分别对应所述n个子时间段,每个hash表包括m个表项,每个表项包括一位,用于标识此表项对应的源IP地址是否在对应的子时间段内发过包;
对所述SYN包的源IP地址进行k次hash计算,每次hash计算采用不同的hash参数,得到k个hash值;
在所述第二子时间段至第n个子时间段对应的hash表中,分别查找与所述k个hash值对应位置的标识,若与所述k个hash值对应位置的标识均表示已发过包,则确定该SYN包的源IP地址在所述第一预设时间段内非第一次发包,否则,确定该SYN包的源IP地址在所述第一预设时间段内第一次发包。
其中,确定该SYN包的源IP地址在所述第一预设时间段内第一次发包后,丢弃该SYN包之前,还包括:
在第一子时间段所对应的hash表中,将k个hash值对应位置的标识设置为已发过包。
其中,所述方法还包括:每隔第二时间段长度,清空第n个子时间段所对应的hash表的数据,将第一个子时间段所对应的hash表、第二个子时间段所对应的hash表......第n-1个子时间段所对应的hash表,依次转为第二个子时间段所对应的hash表、第三个子时间段所对应的hash表......第n个子时间段所对应的hash表;
本发明实施例还提供了一种SYN洪水攻击的防御装置,包括:
攻击检测模块,用于确定目的地址的设备处于被SYN洪水攻击状态后,更改所述目标地址设备的状态为受SYN洪水攻击状态;
首包丢弃模块,用于判断该SYN包的源IP地址在第一预设时间段内是第一次发包后,丢弃该SYN包,判断该SYN包的源IP地址在第一预设时间段内是重发包后,通知处理模块;
处理模块,用于继续后续正常处理。
其中,所述装置还包括:
精确确认模块,用于获知所述SYN包的源IP地址在第一预设时间段内是重发包时,采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址合法后,通知处理模块,否则丢弃该SYN包。
其中,所述装置还包括:
防反射模块,用于在采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址是否合法时,判断对某个客户端的针对SYN-Cookie的SYN+ACK包返回速率是否超越正常阈值,若是,则停止对该源IP地址的SYN+ACK包返回,否则再通知处理模块。
其中,所述装置还包括:白名单比对模块,用于对于接收到的SYN包,确定该SYN包的源IP地址属于已维护的客户端白名单时,通知处理模块,确定该SYN包的源IP地址不属于已维护的客户端白名单时,通知首包丢弃模块.
其中,所述装置还包括:白名单更新模块,用于在采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址合法后,将所述源IP地址加入客户端白名单中。
其中,所述首包丢弃模块包括:
时间段拆分模块,用于将所述第一预设时间段分为n个长度相等的子时间段,分别为第一子时间段、第二子时间段、......和第n子时间段,其中n大于等于2;
hash表建立模块,用于建立n个hash表,分别对应所述n个子时间段,每个hash表包括m个表项,每个表项包括一位,用于标识此表项对应的源IP地址是否在对应的子时间段内发过包;
hash计算模块,用于对所述SYN包的源IP地址进行k次hash计算,每次hash计算采用不同的hash参数,得到k个hash值;
首包判断模块,用于在所述第二子时间段至第n个子时间段对应的hash表中,分别查找与所述k个hash值对应位置的标识,若与所述k个hash值对应位置的标识均表示已发过包,则确定该SYN包的源IP地址在所述第一预设时间段内非第一次发包,否则,确定该SYN包的源IP地址在所述第一预设时间段内第一次发包。
其中,所述首包丢弃模块还包括:
标识设置模块,用于确定该SYN包的源IP地址在所述第一预设时间段内第一次发包后,在第一子时间段所对应的hash表中,将k个hash值对应位置的标识设置为已发过包。
其中,所述首包丢弃模块还包括:
轮换模块,用于在每隔第二时间段长度,清空第n个子时间段所对应的hash表的数据,将第一个子时间段所对应的hash表、第二个子时间段所对应的hash表......第n-1个子时间段所对应的hash表,依次转为第二个子时间段所对应的hash表、第三个子时间段所对应的hash表......第n个子时间段所对应的hash表。
应用本发明,有效的防御了SYN洪水攻击。经实验,本方案可以大幅度提高防御SYN洪水攻击的性能。在运营商客户环境下实际使用,对防御SYN洪水攻击表现出非常好的效果,在IP561硬件平台上(Intel Xeon2.8G,1G DDR,CF-Card),SYN洪水攻击防御能力由原来的40Mbps,提高到600Mbps。
此外,在采用轮换式方式判断接收到的某IP地址的SYN包是第一次发包还是重发包时,可以降低内存的使用量,节省内存,从而使得系统具有更好的性能。比如,普通hash方法的内存使用量为500MB时,采用轮换式方式hash方法的内存使用量可以降低到10MB以下。
再有,在采用Cookie值方式验证接收到的所述SYN包的源IP地址是否合法时,还可以增加流量限制功能,通过该流量限制,不会因为SYN-Cookie而使被伪造设备受到反射攻击。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的SYN洪水攻击的防御方法流程图;
图2是根据本发明一较佳实施例的SYN洪水攻击的防御方法流程图;
图3是根据本发明实施例的基于轮换式结构的hash表示意图;
图4是根据本发明实施例的SYN洪水攻击的防御装置流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是根据本发明实施例的一种SYN洪水攻击的防御方法流程图,由于本实施例提供的是在目的地址设备处于被SYN洪水攻击状态时进行的防御方法,因而本实施例的实施前提是目的地址设备处于被SYN洪水攻击状态,具体的,包括:
步骤101,对于接收到的SYN包,判断该SYN包的源IP地址在第一预设时间段内是第一次发包,还是重发包,若是第一次发包,则执行步骤102,若是重发包,则执行步骤103;
步骤102,丢弃该SYN包,结束;
步骤103,继续后续正常处理。
这里,利用了TCP协议的重发机制,即当某一IP地址的正常客户端按照TCP协议发出SYN包后,一段时间内没收到应答时,会自动重发SYN包(主流操作系统为3秒重发);而攻击客户端由于其大量伪造IP地址,这些伪造的IP地址则一般不会自动重发SYN包。基于此,认为第一预设时间段内,如2到6秒之内,有重发包的客户端可能是正常的客户端。因而,在本实施例中,丢弃来自一个IP地址的第一个SYN包,如果2到6秒之内收到了重发包,便将其放过给下一步继续处理。经过大量实际环境测试,超过95%的SYN攻击包都会被该方法防御住。
应用本发明实施例,有效地防御了SYN洪水攻击。经实验,本方案可以大幅度提高防御SYN洪水攻击的性能。在运营商客户环境下实际使用,对防御SYN洪水攻击表现出非常好的效果,在IP561硬件平台上(Intel Xeon2.8G,1G DDR,CF-Card),SYN洪水攻击防御能力由原来的40Mbps,提高到600Mbps。
在图1所示实施例的基础上还可以增加Cookie确认、白名单过滤等操作,下面结合附图对本发明进行详细说明。
参见图2,其是根据本发明一较佳实施例的SYN洪水攻击的防御方法流程图。
步骤201,接收来自某一IP地址的SYN包。
步骤202,判断接收到上述SYN包的目的地址的设备是否处于被SYN洪水攻击状态,若是,则执行步骤203,否则执行步骤202;
这里,可以利用现有的统计方法,如统计设备的SYN包接受速率,很容易得知当前设备是否处于被SYN洪水攻击状态。系统根据设备的状态提供有针对性的防护。
步骤203,判断该SYN包的源IP地址是否属于已维护的客户端白名单中,若是,则执行步骤208,否则,执行步骤204。
上述客户端白名单是正常客户端的IP地址,而非攻击者伪造的IP地址。之所以进行白名单的筛选,是为了保证正常客户端仍然可以正常进行业务。
步骤204,判断该SYN包的源IP地址在第一预设时间段内是第一次发包,还是重发包,若是第一次发包,则执行步骤207,若是重发包,则执行步骤205。
这里,判断该SYN包的源IP地址在第一预设时间段内是否第一次发包可以有以下两种方式:
方式一:普通的hash方式
i)建立一个hash表,所述hash表包括多个表项,每个表项记录上次命中此表项的时间;
ii)对所述SYN包的源IP地址进行1次hash计算,得到hash值;
iii)查询所述hash表中与所述hash值对应位置的时间标记,若与当前的时间差落在第一预设时间段内(如:2-6秒),则确定该SYN包的源IP地址在第一预设时间段内非第一次发包,反之,则确定该SYN包的源IP地址在第一预设时间段内是第一次发包。
再有,还可以包括iv)在确定该SYN包的源IP地址在所述第一预设时间段内第一次发包之后,丢弃该SYN包之前,还包括:将所述hash表中所述hash值所对应位置的时间标识设置为当前时间。
该方式中,为了记录哪些包是在过去2到6秒之内发来的,为了降低hash碰撞的概率,需要一个空间极大的hash表。在实际测试中,抵挡450Mbps的SYN洪水攻击,需要使用400MB的内存。而随着攻击频率的增加,包漏过的概率急剧上升(因为hash碰撞的概率,会随着攻击速度提升而超线性增长),使得后面的SYN-Cookie精确处理仍然会成为性能瓶颈。
为了解决这些问题,设计了轮换式结构来处理首包丢弃,其目的就是要降低内存使用量,具体参见方式二。
方式二:基于轮换式结构的hash方式
i)将所述第一预设时间段分为n个长度相等的子时间段,分别为第一子时间段、第二子时间段、......和第n子时间段,其中n大于等于2;
例如,本实施例中将0~6秒分为3个子时间段,分别为0~2秒子时间段,2~4秒子时间段,4~6秒子时间段;
ii)建立n个hash表,分别对应所述n个子时间段,每个hash表包括m个表项,每个表项包括一位,用于标识此表项对应的IP地址是否在对应的子时间段内发过SYN包;
例如,本实施例中建立3个hash表A、B和C,其中,A对应4~6秒子时间段的数据,B对应2~4秒子时间段的数据,C对应0~2秒子时间段的数据,具体参见图3-1。每个hash表表项包括一位,该位用于标识此表项对应的源IP地址是否在此时间段内发过SYN包。
iii)对所述SYN包的源IP地址进行k次hash计算,每次hash计算采用不同的hash参数,得到k个hash值,例如,可以得到hash1(ip),hash2(ip)…hashk(ip);
iv)在所述第二子时间段至第n个子时间段对应的hash表中,分别查找与所述k个hash值对应位置的标识,若与所述k个hash值对应位置的标识均表示已发过SYN包,则确定该SYN包的源IP地址在所述第一预设时间段内非第一次发包,否则,确定该SYN包的源IP地址在所述第一预设时间段内第一次发包。
例如,在距现在2~4秒的hash表B和4~6秒的hash表A中,分别查找hash1(ip),hash2(ip)...hashk(ip)对应的表项是否全部为1(假设1表示已发过SYN包,0表示未发过SYN包),如图3-2,如果A、B两个表中至少有一个是全为1,则认为该IP地址在之前2-6秒之间发过SYN包。否则,认为该IP地址在之前0-6秒内是第一次发SYN包。
之后,在确定该SYN包的源IP地址在所述第一预设时间段内如2~6秒内第一次发包后,丢弃该SYN包之前,还包括v)在第一子时间段所对应的hash表中,将k个hash值对应位置的标识设置为已发过包。例如,在0~2秒的hash表C中将hash1(ip),hash2(ip)...hashk(ip)对应的表项全部设置为1,如图3-3。
之后,还可以包括vi):每隔第二时间段长度,清空第n个子时间段所对应的hash表的数据,将第一个子时间段所对应的hash表、第二个子时间段所对应的hash表......第n-1个子时间段所对应的hash表,依次转为第二个子时间段所对应的hash表、第三个子时间段所对应的hash表......第n个子时间段所对应的hash表。例如,可以由定时器触发,每到两秒的整时间点,清除4~6秒hash表A中的数据,将三个表按图3-1箭头指示顺序轮换一次,因而一直保持其上存储的是近6秒的数据。
上述第二时间段长度是根据第一时间段的长度和子时间段n的个数来确定的,本例中第二时间段长度=第一时间段的长度/子时间段n的个数,例如,对于前例,第一时间段长度为6秒,子时间段n的个数为3,则第二时间段长度为6/3=2秒。
计算k次hash值的目的主要是为了节省内存。普通的hash表可以理解为k=1的特殊情况(即方式一的情形)。根据数学推算,在给定hash碰撞概率(对应首包丢弃的漏过率)、待hash元素个数(对应攻击频率),能够求解出最少的hash表表项数m(对应内存占用)和对应k值,表项数m为自然数,远远大于k,而这个最少的hash表表项数m对应的k值可通过计算和试验得到最优k值,通常该k值为大于1但不大于10的自然数。
步骤205,采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址是否合法,若合法,执行步骤206,否则执行步骤207。
在采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址是否合法时,还可以包括:流量限制功能,具体为:判断对某个客户端的针对SYN-Cookie的SYN+ACK包返回速率是否超越正常阈值,若是,则认为是攻击者在制造反射攻击,因而停止返回该IP地址的SYN+ACK包,否则再正常处理。
步骤206,将所述源IP地址加入客户端白名单中,这样,以后来自该IP地址的SYN包可以直接进行后续正常处理。
步骤207,丢弃该SYN包,结束。
步骤208,继续后续正常处理。
至此,完成了对SYN洪水攻击的防御。
应用本实施例提供的防御方法,有效地防御了SYN洪水攻击。经实验,本方案可以大幅度提高防御SYN洪水攻击的性能。在运营商客户环境下实际使用,对防御SYN洪水攻击表现出非常好的效果,在IP561硬件平台上(Intel Xeon 2.8G,1G DDR,CF-Card),SYN洪水攻击防御能力由原来的40Mbps,提高到600Mbps。
此外,在采用轮换式方式判断接收的某IP地址的SYN包是第一次发包还是重发包时,可以降低内存的使用量,节省内存,从而使得系统具有更好的性能。比如,普通hash方法的内存使用量为500MB时,采用轮换式方式hash方法的内存使用量可以降低到10MB以下。
再有,在采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址是否合法时,还可以增加流量限制功能,通过该流量限制,不会因为SYN-Cookie而使被伪造设备受到反射攻击。
本发明实施例还提供了一种SYN洪水攻击的防御装置,参见图4,包括:
攻击检测模块401,用于确定目的地址的设备处于被SYN洪水攻击状态后,更改所述目标地址设备的状态为受SYN洪水攻击状态;
首包丢弃模块402,用于判断该SYN包的源IP地址在第一预设时间段内是第一次发包后,丢弃该SYN包,判断该SYN包的源IP地址在第一预设时间段内是重发包后,通知处理模块;
处理模块403,用于继续后续正常处理。
上述装置还可以包括:精确确认模块,用于获知所述SYN包的源IP地址在第一预设时间段内是重发包时,采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址合法后,通知处理模块,验证不合法后丢弃该SYN包。
上述装置还可以包括:防反射模块,用于在采用SYN-Cookie值方式验证接收到的所述SYN包的IP地址是否合法时,判断对某个客户端的针对SYN-Cookie的SYN+ACK包返回速率是否超越正常阈值,若是,则停止返回对该IP地址的SYN+ACK包,否则再通知处理模块。
上述装置还包括:白名单比对模块,用于对于接收到的SYN包,确定该SYN包的源IP地址属于已维护的客户端白名单时,通知处理模块,确定该SYN包的源IP地址不属于已维护的客户端白名单时,通知首包丢弃模块
上述装置还可以包括:白名单更新模块,用于在采用Cookie值方式验证接收到的所述SYN包的源IP地址合法后,将所述源IP地址加入客户端白名单中。
上述首包丢弃模块可以具体包括:
时间段拆分模块,用于将所述第一预设时间段分为n个长度相等的子时间段,分别为第一子时间段、第二子时间段、......和第n子时间段,其中n大于等于2;
hash表建立模块,用于建立n个hash表,分别对应所述n个子时间段,每个hash表包括m个表项,每个表项包括一位,用于标识此表项对应的IP地址是否在对应的子时间段内发过包;
hash计算模块,用于对所述SYN包的源IP地址进行k次hash计算,每次hash计算采用不同的hash参数,得到k个hash值;
首包判断模块,用于在所述第二子时间段至第n个子时间段对应的hash表中,分别查找与所述k个hash值对应位置的标识,若与所述k个hash值对应位置的标识均表示已发过包,则确定该SYN包的源IP地址在所述第一预设时间段内非第一次发包,否则,确定该SYN包的源IP地址在所述第一预设时间段内第一次发包。
上述首包丢弃模块还可以包括:
标识设置模块,用于确定该SYN包的源IP地址在所述第一预设时间段内第一次发包后,在第一子时间段所对应的hash表中,将k个hash值对应位置的标识设置为已发过包。
上述首包丢弃模块还可以包括:
轮换模块,用于在每隔第二时间段长度,清空第n个子时间段所对应的hash表的数据,将第一个子时间段所对应的hash表、第二个子时间段所对应的hash表......第n-1个子时间段所对应的hash表,依次转为第二个子时间段所对应的hash表、第三个子时间段所对应的hash表......第n个子时间段所对应的hash表。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
应用本实施例提供的防御装置,有效地防御了SYN洪水攻击。经实验,本装置可以大幅度提高防御SYN洪水攻击的性能。在运营商客户环境下实际使用,对防御SYN洪水攻击表现出非常好的效果,在IP561硬件平台上(Intel Xeon 2.8G,1G DDR,CF-Card),SYN洪水攻击防御能力由原来的40Mbps,提高到600Mbps。
此外,在采用轮换式方式判断接收的某IP地址SYN包是第一次发包还是重发包时,可以降低内存的使用量,节省内存,从而使得系统具有更好的性能。比如,普通hash方法的内存使用量为500MB时,采用轮换式方式hash方法的内存使用量可以降低到10MB以下。
再有,在采用Cookie值方式验证接收到的所述SYN包的源IP地址是否合法时,还可以增加流量限制功能,通过该流量限制,不会因为SYN-Cookie而使被伪造设备受到反射攻击。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (16)
1、一种SYN洪水攻击的防御方法,其特征在于,确定目的地址的设备处于被SYN洪水攻击状态后,所述防御方法包括:
对于接收到的SYN包,
判断该SYN包的源IP地址在第一预设时间段内是第一次发包,还是重发包,若是第一次发包,则丢弃该SYN包;
若是重发包,则继续后续正常处理。
2、根据权利要求1所述的方法,其特征在于,在确定是重发包后,继续后续正常处理之前,还包括:
采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址是否合法,若合法,则再继续后续正常处理,否则丢弃所述SYN包。
3、根据权利要求2所述的方法,其特征在于,在采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址是否合法时,进一步包括:判断对某个客户端的针对SYN-Cookie的SYN+ACK包返回速率是否超越正常阈值,若是,则停止该源IP地址的SYN+ACK包返回,否则再正常处理。
4、根据权利要求1、2或3所述的方法,其特征在于,在判断接收到的SYN包源IP地址在第一预设时间段内是否第一次发包之前,还包括:
对于接收到的SYN包,判断该SYN包的源IP地址是否属于已维护的客户端白名单中,若是,则继续后续正常处理;否则,再判断接收到的SYN包源IP地址在第一预设时间段内是否第一次发包。
5、根据权利要求4所述的方法,其特征在于,在采用Cookie值方式验证接收到的所述SYN包的源IP地址合法后,进一步包括:将所述源IP地址加入客户端白名单中。
6、根据权利要求1、2或3所述的方法,其特征在于,所述判断该SYN包的源IP地址是否在第一预设时间段内第一次发包的步骤包括:
将所述第一预设时间段分为n个长度相等的子时间段,分别为第一子时间段、第二子时间段、……和第n子时间段,其中n大于等于2;
建立n个hash表,分别对应所述n个子时间段,每个hash表包括m个表项,每个表项包括一位,用于标识此表项对应的源IP地址是否在对应的子时间段内发过包;
对所述SYN包的源IP地址进行k次hash计算,每次hash计算采用不同的hash参数,得到k个hash值;
在所述第二子时间段至第n个子时间段对应的hash表中,分别查找与所述k个hash值对应位置的标识,若与所述k个hash值对应位置的标识均表示已发过包,则确定该SYN包的源IP地址在所述第一预设时间段内非第一次发包,否则,确定该SYN包的源IP地址在所述第一预设时间段内第一次发包。
7、根据权利要求6所述的方法,其特征在于,确定该SYN包的源IP地址在所述第一预设时间段内第一次发包后,丢弃该SYN包之前,还包括:
在第一子时间段所对应的hash表中,将k个hash值对应位置的标识设置为已发过包。
8、根据权利要求7所述的方法,其特征在于,所述方法还包括:每隔第二时间段长度,清空第n个子时间段所对应的hash表的数据,将第一个子时间段所对应的hash表、第二个子时间段所对应的hash表……第n-1个子时间段所对应的hash表,依次转为第二个子时间段所对应的hash表、第三个子时间段所对应的hash表……第n个子时间段所对应的hash表。
9、一种SYN洪水攻击的防御装置,其特征在于,包括:
攻击检测模块,用于确定目的地址的设备处于被SYN洪水攻击状态后,更改所述目标地址设备的状态为受SYN洪水攻击状态;
首包丢弃模块,用于判断该SYN包的源IP地址在第一预设时间段内是第一次发包后,丢弃该SYN包,判断该SYN包的源IP地址在第一预设时间段内是重发包后,通知处理模块;
处理模块,用于继续后续正常处理。
10、根据权利要求9所述的装置,其特征在于,所述装置还包括:
精确确认模块,用于获知所述SYN包的源IP地址在第一预设时间段内是重发包时,采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址合法后,通知处理模块,否则丢弃该SYN包。
11、根据权利要求10所述的装置,其特征在于,所述装置还包括:
防反射模块,用于在采用SYN-Cookie值方式验证接收到的所述SYN包的源IP地址是否合法时,判断对某个客户端的针对SYN-Cookie的SYN+ACK包返回速率是否超越正常阈值,若是,则停止对该源IP地址的SYN+ACK包返回,否则再通知处理模块。
12、根据权利要求9、10或11所述的装置,其特征在于,所述装置还包括:白名单比对模块,用于对于接收到的SYN包,确定该SYN包的源IP地址属于已维护的客户端白名单时,通知处理模块,确定该SYN包的源IP地址不属于已维护的客户端白名单时,通知首包丢弃模块。
13、根据权利要求12所述的装置,其特征在于,所述装置还包括:
白名单更新模块,用于在采用Cookie值方式验证接收到的所述SYN包的源IP地址合法后,将所述源IP地址加入客户端白名单中。
14、根据权利要求9、10或11所述的装置,其特征在于,所述首包丢弃模块包括:
时间段拆分模块,用于将所述第一预设时间段分为n个长度相等的子时间段,分别为第一子时间段、第二子时间段、……和第n子时间段,其中n大于等于2;
hash表建立模块,用于建立n个hash表,分别对应所述n个子时间段,每个hash表包括m个表项,每个表项包括一位,用于标识此表项对应的源IP地址是否在对应的子时间段内发过包;
hash计算模块,用于对所述SYN包的源IP地址进行k次hash计算,每次hash计算采用不同的hash参数,得到k个hash值;
首包判断模块,用于在所述第二子时间段至第n个子时间段对应的hash表中,分别查找与所述k个hash值对应位置的标识,若与所述k个hash值对应位置的标识均表示已发过包,则确定该SYN包的源IP地址在所述第一预设时间段内非第一次发包,否则,确定该SYN包的源IP地址在所述第一预设时间段内第一次发包。
15、根据权利要求14所述的装置,其特征在于,所述首包丢弃模块还包括:
标识设置模块,用于确定该SYN包的源IP地址在所述第一预设时间段内第一次发包后,在第一子时间段所对应的hash表中,将k个hash值对应位置的标识设置为已发过包。
16、根据权利要求15所述的装置,其特征在于,所述首包丢弃模块还包括:
轮换模块,用于在每隔第二时间段长度,清空第n个子时间段所对应的hash表的数据,将第一个子时间段所对应的hash表、第二个子时间段所对应的hash表……第n-1个子时间段所对应的hash表,依次转为第二个子时间段所对应的hash表、第三个子时间段所对应的hash表……第n个子时间段所对应的hash表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100118820A CN101599957B (zh) | 2009-06-04 | 2009-06-04 | 一种syn洪水攻击的防御方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100118820A CN101599957B (zh) | 2009-06-04 | 2009-06-04 | 一种syn洪水攻击的防御方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101599957A true CN101599957A (zh) | 2009-12-09 |
CN101599957B CN101599957B (zh) | 2012-05-30 |
Family
ID=41421204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100118820A Active CN101599957B (zh) | 2009-06-04 | 2009-06-04 | 一种syn洪水攻击的防御方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101599957B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291441A (zh) * | 2011-08-02 | 2011-12-21 | 杭州迪普科技有限公司 | 一种防范SYN Flood攻击的方法及安全代理装置 |
CN103347016A (zh) * | 2013-06-28 | 2013-10-09 | 天津汉柏汉安信息技术有限公司 | 一种攻击的防御方法 |
CN103475657A (zh) * | 2013-09-10 | 2013-12-25 | 网神信息技术(北京)股份有限公司 | 防syn泛洪攻击的处理方法和装置 |
CN103973584A (zh) * | 2013-02-06 | 2014-08-06 | 阿里巴巴集团控股有限公司 | 动态切换数据包的转发方式的方法和设备 |
CN104079558A (zh) * | 2014-05-22 | 2014-10-01 | 汉柏科技有限公司 | 一种防止DoS攻击的方法及防火墙 |
CN104683293A (zh) * | 2013-11-27 | 2015-06-03 | 杭州迪普科技有限公司 | 一种基于逻辑器件的syn攻击防护方法 |
CN106357666A (zh) * | 2016-10-09 | 2017-01-25 | 广东睿江云计算股份有限公司 | 一种syn flood攻击的清洗方法及系统 |
CN106453254A (zh) * | 2016-09-08 | 2017-02-22 | 北京知道未来信息技术有限公司 | 一种规避防火墙检测的无状态扫描方法 |
CN106453373A (zh) * | 2016-11-03 | 2017-02-22 | 北京知道未来信息技术有限公司 | 一种高效的SYN Flood攻击识别及处置方法 |
CN106453419A (zh) * | 2016-12-07 | 2017-02-22 | 东软集团股份有限公司 | 识别源ip地址合法性、网络攻击防御的方法及装置 |
CN106487790A (zh) * | 2016-10-09 | 2017-03-08 | 广东睿江云计算股份有限公司 | 一种ack flood攻击的清洗方法及系统 |
CN107770123A (zh) * | 2016-08-15 | 2018-03-06 | 台山市金讯互联网络科技有限公司 | 一种中央监测的洪水攻击检测方法 |
CN107786489A (zh) * | 2016-08-24 | 2018-03-09 | 腾讯科技(深圳)有限公司 | 访问请求验证方法及装置 |
CN107800723A (zh) * | 2017-12-06 | 2018-03-13 | 中盈优创资讯科技有限公司 | Cc攻击防护方法及设备 |
CN108173812A (zh) * | 2017-12-07 | 2018-06-15 | 东软集团股份有限公司 | 防止网络攻击的方法、装置、存储介质和设备 |
CN108509877A (zh) * | 2018-03-19 | 2018-09-07 | 孙磊 | 大数据式搜索系统及方法 |
CN109639712A (zh) * | 2018-12-29 | 2019-04-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种防护ddos攻击的方法及系统 |
CN114513365A (zh) * | 2022-02-28 | 2022-05-17 | 北京启明星辰信息安全技术有限公司 | 一种针对SYN Flood攻击的检测与防御方法 |
CN115102778A (zh) * | 2022-07-11 | 2022-09-23 | 深信服科技股份有限公司 | 一种状态确定方法、装置、设备及介质 |
CN116866055A (zh) * | 2023-07-26 | 2023-10-10 | 中科驭数(北京)科技有限公司 | 数据泛洪攻击的防御方法、装置、设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436958B (zh) * | 2007-11-16 | 2011-01-26 | 太极计算机股份有限公司 | 抵御拒绝服务攻击的方法 |
CN101282209A (zh) * | 2008-05-13 | 2008-10-08 | 杭州华三通信技术有限公司 | 防范dns请求报文泛洪攻击的方法及设备 |
-
2009
- 2009-06-04 CN CN2009100118820A patent/CN101599957B/zh active Active
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291441B (zh) * | 2011-08-02 | 2015-01-28 | 杭州迪普科技有限公司 | 一种防范SYN Flood攻击的方法及安全代理装置 |
CN102291441A (zh) * | 2011-08-02 | 2011-12-21 | 杭州迪普科技有限公司 | 一种防范SYN Flood攻击的方法及安全代理装置 |
CN103973584B (zh) * | 2013-02-06 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 动态切换数据包的转发方式的方法和设备 |
CN103973584A (zh) * | 2013-02-06 | 2014-08-06 | 阿里巴巴集团控股有限公司 | 动态切换数据包的转发方式的方法和设备 |
CN103347016A (zh) * | 2013-06-28 | 2013-10-09 | 天津汉柏汉安信息技术有限公司 | 一种攻击的防御方法 |
CN103475657A (zh) * | 2013-09-10 | 2013-12-25 | 网神信息技术(北京)股份有限公司 | 防syn泛洪攻击的处理方法和装置 |
CN103475657B (zh) * | 2013-09-10 | 2019-01-08 | 网神信息技术(北京)股份有限公司 | 防syn泛洪攻击的处理方法和装置 |
CN104683293A (zh) * | 2013-11-27 | 2015-06-03 | 杭州迪普科技有限公司 | 一种基于逻辑器件的syn攻击防护方法 |
CN104079558A (zh) * | 2014-05-22 | 2014-10-01 | 汉柏科技有限公司 | 一种防止DoS攻击的方法及防火墙 |
CN104079558B (zh) * | 2014-05-22 | 2018-02-13 | 汉柏科技有限公司 | 一种防止DoS攻击的方法及防火墙 |
CN107770123A (zh) * | 2016-08-15 | 2018-03-06 | 台山市金讯互联网络科技有限公司 | 一种中央监测的洪水攻击检测方法 |
CN107786489A (zh) * | 2016-08-24 | 2018-03-09 | 腾讯科技(深圳)有限公司 | 访问请求验证方法及装置 |
CN106453254B (zh) * | 2016-09-08 | 2019-08-27 | 北京知道未来信息技术有限公司 | 一种规避防火墙检测的无状态扫描方法 |
CN106453254A (zh) * | 2016-09-08 | 2017-02-22 | 北京知道未来信息技术有限公司 | 一种规避防火墙检测的无状态扫描方法 |
CN106357666A (zh) * | 2016-10-09 | 2017-01-25 | 广东睿江云计算股份有限公司 | 一种syn flood攻击的清洗方法及系统 |
CN106487790A (zh) * | 2016-10-09 | 2017-03-08 | 广东睿江云计算股份有限公司 | 一种ack flood攻击的清洗方法及系统 |
CN106487790B (zh) * | 2016-10-09 | 2020-01-31 | 广东睿江云计算股份有限公司 | 一种ack flood攻击的清洗方法及系统 |
CN106453373A (zh) * | 2016-11-03 | 2017-02-22 | 北京知道未来信息技术有限公司 | 一种高效的SYN Flood攻击识别及处置方法 |
CN106453419A (zh) * | 2016-12-07 | 2017-02-22 | 东软集团股份有限公司 | 识别源ip地址合法性、网络攻击防御的方法及装置 |
CN107800723A (zh) * | 2017-12-06 | 2018-03-13 | 中盈优创资讯科技有限公司 | Cc攻击防护方法及设备 |
CN108173812A (zh) * | 2017-12-07 | 2018-06-15 | 东软集团股份有限公司 | 防止网络攻击的方法、装置、存储介质和设备 |
CN108173812B (zh) * | 2017-12-07 | 2021-05-07 | 东软集团股份有限公司 | 防止网络攻击的方法、装置、存储介质和设备 |
CN108509877A (zh) * | 2018-03-19 | 2018-09-07 | 孙磊 | 大数据式搜索系统及方法 |
CN109639712A (zh) * | 2018-12-29 | 2019-04-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种防护ddos攻击的方法及系统 |
CN109639712B (zh) * | 2018-12-29 | 2021-09-10 | 绿盟科技集团股份有限公司 | 一种防护ddos攻击的方法及系统 |
CN114513365A (zh) * | 2022-02-28 | 2022-05-17 | 北京启明星辰信息安全技术有限公司 | 一种针对SYN Flood攻击的检测与防御方法 |
CN114513365B (zh) * | 2022-02-28 | 2023-06-30 | 北京启明星辰信息安全技术有限公司 | 一种针对SYN Flood攻击的检测与防御方法 |
CN115102778A (zh) * | 2022-07-11 | 2022-09-23 | 深信服科技股份有限公司 | 一种状态确定方法、装置、设备及介质 |
CN115102778B (zh) * | 2022-07-11 | 2024-05-24 | 深信服科技股份有限公司 | 一种状态确定方法、装置、设备及介质 |
CN116866055A (zh) * | 2023-07-26 | 2023-10-10 | 中科驭数(北京)科技有限公司 | 数据泛洪攻击的防御方法、装置、设备及介质 |
CN116866055B (zh) * | 2023-07-26 | 2024-02-27 | 中科驭数(北京)科技有限公司 | 数据泛洪攻击的防御方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101599957B (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101599957B (zh) | 一种syn洪水攻击的防御方法和装置 | |
US8943586B2 (en) | Methods of detecting DNS flooding attack according to characteristics of type of attack traffic | |
US10284594B2 (en) | Detecting and preventing flooding attacks in a network environment | |
CN106302495A (zh) | 一种ACK Flood攻击的防护方法及中间防护装置 | |
CN101180826B (zh) | 较高级协议认证 | |
CN101478387B (zh) | 超文本传输协议攻击防御方法、装置和系统 | |
CN106453215B (zh) | 一种网络攻击的防御方法、装置及系统 | |
CN104170353B (zh) | Tcp链路配置方法、装置及设备 | |
US20040264434A1 (en) | Determining round-trip time delay | |
CN101582756B (zh) | 一种实现无线局域网立即块应答机制的方法 | |
US7669241B2 (en) | Streaming algorithms for robust, real-time detection of DDoS attacks | |
CN106982108A (zh) | 一种数据传输的方法以及相关设备 | |
CN112187793B (zh) | 一种ACK Flood攻击的防护方法及装置 | |
CN103931162B (zh) | 处理业务的方法和网络设备 | |
CN104683293A (zh) | 一种基于逻辑器件的syn攻击防护方法 | |
CN104768139A (zh) | 一种短信发送的方法及装置 | |
CN102655509B (zh) | 一种网络攻击识别方法及装置 | |
CN101789908A (zh) | 分片报文接收处理方法及装置 | |
CN104901953A (zh) | 一种arp欺骗的分布式检测方法及系统 | |
CN106487807A (zh) | 一种域名解析的防护方法和装置 | |
CN107800723A (zh) | Cc攻击防护方法及设备 | |
CN113347155A (zh) | 一种arp欺骗的防御方法、系统及装置 | |
Xing et al. | Research on the defense against ARP spoofing attacks based on Winpcap | |
CN110365658A (zh) | 一种反射攻击防护与流量清洗方法、装置、设备及介质 | |
JP2006115432A (ja) | 不正情報検知システム及び不正攻撃元探索システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |