一种SYNFLOOD攻击的清洗方法及系统与流程

文档序号:12752769阅读:316来源:国知局
一种SYN FLOOD攻击的清洗方法及系统与流程

本发明涉及计算机网络技术领域,尤其涉及一种SYN FLOOD攻击的清洗方法及系统。



背景技术:

拒绝服务攻击(DoS, Denial of Service)是指利用各种服务请求耗尽被攻击网络的系统资源,从而使被攻击网络无法处理合法用户的请求。而随着僵尸网络的兴起,同时由于攻击方法简单、影响较大、难以追查等特点,又使得分布式拒绝服务攻击(DDoS,Distributed Denial of Service)得到快速壮大和日益泛滥。成千上万主机组成的僵尸网络为DDoS攻击提供了所需的带宽和主机,形成了规模巨大的攻击和网络流量,对被攻击网络造成了极大的危害。

随着DDoS攻击技术的不断提高和发展,ISP、ICP、IDC等运营商面临的安全和运营挑战也不断增多,运营商必须在DDoS威胁影响关键业务和应用之前,对流量进行检测并加以清洗,确保网络正常稳定的运行以及业务的正常开展。同时,对DDoS攻击流量的检测和清洗也可以成为运营商为用户提供的一种增值服务,以获得更好的用户满意度。

而多种DDoS攻击方式,又以SYN_FLOOD最为普遍,也是危害比较大的攻击之一,很少的攻击流量就足以能让一台服务器崩溃,要让服务器稳定地运行,必须有效地清洗处理SYN FLOOD攻击流量。

目前的SYN FLOOD攻击清洗方法一般有两种,其一使用源验证的方法,通过给发出SYN请求的客户端回复带有COOKIE码的SYN/ACK回复包,来验证客户的合法性;其二是通过为每一个请求建立连接标识,丢弃第一个SYN请求包,根据TCP协议重传特性来检验客户端的合法性。

以上两种方法都有明显的缺点,第一种方法因为需要给客户端回复验证报文,在系统的网络架构部署上带来很大的复杂和麻烦,为每一个SYN请求都生成COOKIE和回复报文,效率上也非常的低下;第二种方法需要为每一个SYN请求建立连接标识,效率也比较低下,大流量的SYN攻击往往能够达到每秒几百万个报文,其次有些小流量的SYN攻击,可能会伪造重传行为,间隔一段时间,使用相同的地址和端口重新发送SYN报文,只检验重传合法性,就会漏杀这部分流量。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种能有效阻止伪造连接,且准确性较高的一种SYN FLOOD攻击的清洗方法及系统。

本发明所采取的技术方案是:

一种SYN FLOOD攻击的清洗方法,包括以下步骤:

A、建立标识状态数组;

B、当接收到报文时,获取该报文的总长度和报文的五元组信息;

C、判断该报文的类型是否为SYN报文且报文的总长度是否大于预设的长度阈值,若是,则丢弃该报文;反之,则执行步骤D;

D、判断该报文是否为首个报文,若是,则执行步骤E;反之,则执行步骤F;

E、判断该报文的类型是否为SYN报文,若是,则将重复建立次数设为0,将最后连接时间设为当前时间,并丢弃该报文;反之,则丢弃该报文;

F、判断该报文的类型是否为SYN报文,若是,则进行SYN重传检测;反之,则放行该报文。

作为所述的一种SYN FLOOD攻击的清洗方法的进一步改进,所述步骤D具体包括:

D1、根据报文的五元组信息,对其进行哈希计算,得到该报文对应的哈希值;

D2、判断该哈希值是否在标识状态数组中,若是,则将该哈希值存入标识状态数组中,并执行步骤E;反之,则执行步骤F。

作为所述的一种SYN FLOOD攻击的清洗方法的进一步改进,所述步骤F中的SYN重传检测,其具体包括:

F1、判断当前时间与最后连接时间之差是否大于预设的间隔时间且重复建立次数是否少于预设的连接次数,若是,则执行步骤F2;反之,则执行步骤F3;

F2、将重复建立次数进行自加1,并将最后连接时间更新为当前时间,并放行该报文;

F3、将最后连接时间更新为当前时间,并丢弃该报文。

作为所述的一种SYN FLOOD攻击的清洗方法的进一步改进,所述的五元组信息包括源地址、目标地址、源端口、目标端口和IP协议号。

本发明所采用的另一技术方案是:

一种SYN FLOOD攻击的清洗系统,包括:

数组建立单元,用于建立标识状态数组;

信息获取单元,用于当接收到报文时,获取该报文的总长度和报文的五元组信息;

长度判断单元,用于判断该报文的类型是否为SYN报文且报文的总长度是否大于预设的长度阈值,若是,则丢弃该报文;反之,则执行首报文判断单元;

首报文判断单元,用于判断该报文是否为首个报文,若是,则执行首报文处理单元;反之,则执行SYN重传处理单元;

首报文处理单元,用于判断该报文的类型是否为SYN报文,若是,则将重复建立次数设为0,将最后连接时间设为当前时间,并丢弃该报文;反之,则丢弃该报文;

SYN重传处理单元,用于判断该报文的类型是否为SYN报文,若是,则进行SYN重传检测;反之,则放行该报文。

作为所述的一种SYN FLOOD攻击的清洗系统的进一步改进,所述首报文判断单元具体包括:

哈希值计算单元,用于根据报文的五元组信息,对其进行哈希计算,得到该报文对应的哈希值;

哈希值判断单元,用于判断该哈希值是否在标识状态数组中,若是,则将该哈希值存入标识状态数组中,并执行首报文处理单元;反之,则执行SYN重传处理单元。

作为所述的一种SYN FLOOD攻击的清洗系统的进一步改进,所述SYN重传处理单元中的SYN重传检测,其具体包括:

重传判断单元,用于判断当前时间与最后连接时间之差是否大于预设的间隔时间且重复建立次数是否少于预设的连接次数,若是,则执行SYN重传处理单元;反之,则执行SYN非重传处理单元;

SYN重传处理单元,用于将重复建立次数进行自加1,并将最后连接时间更新为当前时间,并放行该报文;

SYN非重传处理单元,用于将最后连接时间更新为当前时间,并丢弃该报文。

作为所述的一种SYN FLOOD攻击的清洗系统的进一步改进,所述的五元组信息包括源地址、目标地址、源端口、目标端口和IP协议号。

本发明的有益效果是:

本发明一种SYN FLOOD攻击的清洗方法及系统通过过滤长度过大的SYN报文,能够极大的减轻在连接建立分析时的压力,其次在连接标识建立之后的分析,除了判断SYN的重传时间外,再加上重传次数的限制,能够防止攻击者模仿重传行为伪造成合法流量。

附图说明

下面结合附图对本发明的具体实施方式作进一步说明:

图1是本发明一种SYN FLOOD攻击的清洗方法的步骤流程图;

图2是本发明一种SYN FLOOD攻击的清洗方法中首报文判断的步骤流程图;

图3是本发明一种SYN FLOOD攻击的清洗方法中SYN重传检测的步骤流程图;

图4是本发明一种SYN FLOOD攻击的清洗系统的模块方框图。

具体实施方式

参考图1,本发明一种SYN FLOOD攻击的清洗方法,包括以下步骤:

A、建立标识状态数组;

B、当接收到报文时,获取该报文的总长度和报文的五元组信息;

C、判断该报文的类型是否为SYN报文且报文的总长度是否大于预设的长度阈值,若是,则丢弃该报文;反之,则执行步骤D;

D、判断该报文是否为首个报文,若是,则执行步骤E;反之,则执行步骤F;

E、判断该报文的类型是否为SYN报文,若是,则将重复建立次数设为0,将最后连接时间设为当前时间,并丢弃该报文;反之,则丢弃该报文;

F、判断该报文的类型是否为SYN报文,若是,则进行SYN重传检测;反之,则放行该报文。

其中,本发明先是通过检测报文长度从而避免变种的大流量SYN攻击,因为SYN攻击往往为了达到较大的流量,会制造较长的SYN报文,大流量的SYN攻击通常能够达到每秒几百万个报文,这种情况下通过判断SYN长度至少能过滤掉80%以上的SYN报文,然后再通过丢弃首报文的SYN连接认证方式并且限制SYN重发的间隔时间和SYN重发次数的基础上,来建立正常的五元组连接标识后,根据已经建立的连接标识来识别SYN报文并允许或禁止其通过。

参考图2,进一步作为优选的实施方式,所述步骤D具体包括:

D1、根据报文的五元组信息,对其进行哈希计算,得到该报文对应的哈希值;

D2、判断该哈希值是否在标识状态数组中,若是,则将该哈希值存入标识状态数组中,并执行步骤E;反之,则执行步骤F。

参考图3,进一步作为优选的实施方式,所述步骤F中的SYN重传检测,其具体包括:

F1、判断当前时间与最后连接时间之差是否大于预设的间隔时间且重复建立次数是否少于预设的连接次数,若是,则执行步骤F2;反之,则执行步骤F3;

F2、将重复建立次数进行自加1,并将最后连接时间更新为当前时间,并放行该报文;

F3、将最后连接时间更新为当前时间,并丢弃该报文。

进一步作为优选的实施方式,所述的五元组信息包括源地址、目标地址、源端口、目标端口和IP协议号。

本发明实施例中,预设的长度阈值为100,预设的间隔时间为1s,预设的连接次数为10次,

S1、建立标识状态数组;

S2、当接收到报文时,获取该报文的总长度和报文的五元组信息;

S3、判断该报文的类型是否为SYN报文且报文的总长度是否大于100,若是,则丢弃该报文;反之,则执行步骤S4;

S4、根据报文的五元组信息,对其进行哈希计算,得到该报文对应的哈希值;

S5、判断该哈希值是否在标识状态数组中,若是,则将该哈希值存入标识状态数组中,并执行步骤S6;反之,则执行步骤S7;

S6、判断该报文的类型是否为SYN报文,若是,则将重复建立次数设为0,将最后连接时间设为当前时间,并丢弃该报文;反之,则丢弃该报文;

S7、判断该报文的类型是否为SYN报文,若是,则进行SYN重传检测;反之,则放行该报文。

所述SYN重传检测的实施例如下:

S71、判断当前时间与最后连接时间之差是否大于预设的间隔时间且重复建立次数是否少于10次,若是,则执行步骤S72;反之,则执行步骤S73;

S72、将重复建立次数进行自加1,并将最后连接时间更新为当前时间,并放行该报文;

S73、将最后连接时间更新为当前时间,并丢弃该报文。

参考图4,本发明一种SYN FLOOD攻击的清洗系统,包括:

数组建立单元,用于建立标识状态数组;

信息获取单元,用于当接收到报文时,获取该报文的总长度和报文的五元组信息;

长度判断单元,用于判断该报文的类型是否为SYN报文且报文的总长度是否大于预设的长度阈值,若是,则丢弃该报文;反之,则执行首报文判断单元;

首报文判断单元,用于判断该报文是否为首个报文,若是,则执行首报文处理单元;反之,则执行SYN重传处理单元;

首报文处理单元,用于判断该报文的类型是否为SYN报文,若是,则将重复建立次数设为0,将最后连接时间设为当前时间,并丢弃该报文;反之,则丢弃该报文;

SYN重传处理单元,用于判断该报文的类型是否为SYN报文,若是,则进行SYN重传检测;反之,则放行该报文。

进一步作为优选的实施方式,所述首报文判断单元具体包括:

哈希值计算单元,用于根据报文的五元组信息,对其进行哈希计算,得到该报文对应的哈希值;

哈希值判断单元,用于判断该哈希值是否在标识状态数组中,若是,则将该哈希值存入标识状态数组中,并执行首报文处理单元;反之,则执行SYN重传处理单元。

进一步作为优选的实施方式,所述SYN重传处理单元中的SYN重传检测,其具体包括:

重传判断单元,用于判断当前时间与最后连接时间之差是否大于预设的间隔时间且重复建立次数是否少于预设的连接次数,若是,则执行SYN重传处理单元;反之,则执行SYN非重传处理单元;

SYN重传处理单元,用于将重复建立次数进行自加1,并将最后连接时间更新为当前时间,并放行该报文;

SYN非重传处理单元,用于将最后连接时间更新为当前时间,并丢弃该报文。

进一步作为优选的实施方式,所述的五元组信息包括源地址、目标地址、源端口、目标端口和IP协议号。

从上述内容可知,本发明一种SYN FLOOD攻击的清洗方法及系统先是通过过滤长度过大的SYN报文,能够极大的减轻在连接建立分析时的压力,其次在连接标识建立之后的分析,除了判断SYN的重传时间外,再加上重传次数的限制,能够防止攻击者模仿重传行为伪造成合法流量。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1