Ddos攻击的识别方法和识别装置及防火墙的制作方法

文档序号:7870218
专利名称:Ddos攻击的识别方法和识别装置及防火墙的制作方法
技术领域
本发明涉及网络安全领域,具体而言,涉及一种DDOS攻击的识别方法和识别装置及防火墙。
背景技术
分布式拒绝服务(DDOS, Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动拒绝服务攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDOS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在Internet的许多计算机上,代理程序收到指令时发动攻击,利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。在网络设备中,现有DDOS攻击的检测一般采用以下两种方式收集数据进行分析(I)详细记录流量信息;(2)对流量信息进行抽样,记录简单信息。对于现有技术中采用全流量信息详细记录的方式,该方式的优点是可以采集足够的数据用于分析,缺点是资源占用量大。特别是在低速网络场合,这种DDOS攻击的防护技术将一定时间段M内所有连接信息,也即session(i),i e
,均记录在内存中,当发现某一台服务器连接数超过阈值K时,判断为发生DDOS攻击,然后查看该时段内每个远端主机与该服务器产生连接的数量,如果数量超过一定阈值L,则将该远端主机识别为攻击发起方。因此,该技术虽然可以有效发现可能存在的攻击,但是由于需要记录每条连接的信息,对计算资源和存储资源的消耗较大,并不适合目前高速的网络环境。对于现有技术中采用报文抽样或流抽样的方式,该方式的优点是资源占用小,其代价是会造成信息不完整,引入较大的误差。在高速网络场合,为处理流量和资源占用之间的矛盾,将一定时间段M内连接信息进行抽样,也即session (i), i e [1,N],其中N〈n,均记录在内存中,当发现某一台服务器连接数超过阈值K (该阈值根据抽样的比率进行调整)时,判断为发生DDOS攻击,然后查看该时段内每个远端主机与该服务器产生连接的数量,如果数量超过一定阈值L (该阈值根据抽样的比率进行调整),则将该远端主机识别为攻击发起方。因此,该技术由于采用了抽样技术,虽然能够节约计算资源和存储资源,但是引入了抽样误差,出现了资源和抽样比率之间的矛盾,在目前一般网络设备的基本硬件配置条件下很难做到有效的平衡。综上,前一种方式虽然信息收集详尽,但对计算资源和存储资源的消耗较大,只适合低速网络场合;后一种方式虽然适用于高速网络,但会由于信息丢失而导致检测误差大,不能有效识别DDOS的发起方。因此有必要构建适用于高速网络,减小信息缺失并能有效识别攻击发起方的DDOS检测方法。 针对相关技术中在高速网络环境中识别DDOS攻击误差较大的问题,目前尚未提出有效的解决方案。

发明内容
本发明的主要目的在于提供一种DDOS攻击的识别方法和识别装置及防火墙,以解决高速网络环境中识别DDOS攻击误差较大问题。为了实现上述目的,根据本发明的一个方面,提供了一种DDOS攻击的识别方法。根据本发明的DDOS攻击的识别方法包括计算第一时间窗口中网关内部的第j主机端口的会话次数,以得到第一会话次数,其中,第一时间窗口由第P子窗口至第P+S子窗口组成,第i+Ι子窗口的起始时间是第i子窗口的结束时间,第一会话次数为第一时间窗口中所有子窗口中的会话次数的和;在第一时间窗口结束后,计算第二时间窗口中第j主机端口的会话次数,以得到第二会话次数,其中,第二时间窗口由第ρ+χ子窗口至第p+x+s子窗口组成,x〈s,第二会话次数为第二时间窗口中所有子窗口中的会话次数的和;当第一会话次数大于K和/或第二会话次数大于K时,确定第j主机端口受到DDOS攻击,其中,i,j,P,s,X均为自然数,K为预设的第一攻击判定阈值。
进一步地,计算第一会话次数包括步骤Sll :网关接收会话的报文;步骤S12 :判断接收到的报文是否属于网关已创建的会话;步骤S13 :当接收到的报文不属于网关已创建的会话时,创建新会话,并确定接收到的报文所属的会话是网关内部哪个主机端口的会话;步骤S14 :当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加I,其中,当接收到的报文到达网关的时间在第i子窗口内时,计数值为在第i子窗口中第j主机端口当前的会话次数;步骤S15 :判断第一时间窗口是否结束时,如果未结束返回步骤S11,如果结束执行步骤S16 ;步骤S16 :获取第一时间窗口内各子窗口中第j主机端口的会话次数计算第一会话次数。进一步地,在步骤S12中,通过Bloom Filter判断接收到的报文是否属于网关已创建的会话。进一步地,步骤S12包括在Bloom Filter组中,获取与接收到的报文对应的Bloom Filter,得到判定 Bloom Filter,其中,Bloom Filter 组由 s+Ι 个 Bloom Filter 组成,Bloom Filter用于对报文的五元组计数,五元组包括报文的协议类型、源IP、源端口、目
的IP、目的端口,Bloom Filter组中的各Bloom Filter与第一时间窗口中的各子窗口--
对应,当接收到的报文到达网关的时间在第i子窗口内时,与接收到的报文对应的BloomFilter是与第i子窗口对应的Bloom Filter ;获取接收到的报文的五元组,得到判定五元组;根据判定五元组查询判定Bloom Filter中是否存在接收到的报文所属的会话,其中,当判定Bloom Filte中存在接收到的报文所属的会话时,接收到的报文属于已接收到的会话;以及当判定Bloom Filter中不存在接收到的报文所属的会话时,根据获取到的五元组更新判定Bloom Filter。进一步地,当第一时间窗口结束时,该方法还包括更新Bloom Filter组,其中,更新Bloom Filter组包括丢弃第P至第ρ+χ-l子窗口对应的Bloom Filter,增加与第ρ+s+l至第p+s+x子窗口对应的Bloom Filter,并对增加的Bloom Filter进行初始化。进一步地,在步骤S12之前,计算第一时间窗口中第j主机端口的会话次数还包括步骤S17 :判断接收到的报文是否为网关外到网关内的报文,其中,当报文为网关外到网关内的报文时,执行步骤S12,当报文为网关内到网关外的报文时,执行步骤S11。
进一步地,在步骤S13和步骤S14中,通过计数型Bloom Filter判断接收到的报文所属的会话是网关内部哪个主机端口的会话,并当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加I。进一步地,步骤S13和步骤S14包括在第一计数型Bloom Filter组中,获取与新会话对应的第一计数型Bloom Filter,得到第一判定计数型Bloom Filter,其中,第一计数型Bloom Filter组由s+Ι个第一计数型Bloom Filter组成,第一计数型BloomFilter用于对会话的三元组计数,三元组包括会话的协议类型、目的IP、目的端口,第一计数型Bloom
Filter组中的各第一计数型Bloom Filter与第一时间窗口中的各子窗口--对应,当接
收到的报文到达网关的时间在第i子窗口内时,与新会话对应的第一计数型Bloom Filter是与第i子窗口对应的第一计数型Bloom Filter ;获取新会话的三元组,得到判定三元组;以及第一判定计数型Bloom Filter根据判定三元组计数。
·
进一步地,当第一时间窗口结束时,该方法还包括更新第一计数型Bloom Filter组,其中,更新第一计数型Bloom Filter组包括丢弃第p至第ρ+χ-l子窗口对应的第一计数型Bloom Filter,增加与第ρ+s+l至第p+s+x子窗口对应的第一计数型BloomFilter,并对增加的第一计数型Bloom Filter进行初始化。进一步地,该方法还包括计算第一时间窗口中第j主机端口与网关的外部的第k主机的会话次数,以得到第三会话次数,其中,第三会话次数为第一时间窗口中所有子窗口中第j主机端口与第k主机的会话次数的和;当第一会话次数大于K且第三会话次数大于L时,确定第j主机端口的攻击源为第k主机,其中,L为预设的第二攻击判定阈值;以及当第一会话次数小于或等于K且第三会话次数大于L时,确定第k主机正在发起DOS攻击。为了实现上述目的,根据本发明的另一方面,提供了一种DDOS攻击的识别装置,该装置用于执行上述本发明所提供的任一种DDOS攻击的识别方法。为了实现上述目的,根据本发明的另一方面,提供了一种DDOS攻击的识别装置。根据本发明的DDOS攻击的识别装置包括第一计算模块,用于计算第一时间窗口中网关内部的第j主机端口的会话次数,以得到第一会话次数,其中,第一时间窗口由第P子窗口至第ρ+s子窗口组成,第i+Ι子窗口的起始时间是第i子窗口的结束时间,第一会话次数为第一时间窗口中所有子窗口中的会话次数的和;第二计算模块,用于在第一时间窗口结束后,计算第二时间窗口中第j主机端口的会话次数,以得到第二会话次数,其中,第二时间窗口由第P+X子窗口至第P+X+S子窗口组成,x〈s,第二会话次数为第二时间窗口中所有子窗口中的会话次数的和;第一确定模块,用于当第一会话次数大于K和/或第二会话次数大于K时,确定第j主机端口受到DDOS攻击,其中,i,j,p,s,X均为自然数,K为预设的第一攻击判定阈值。进一步地,第一计算模块包括接收子模块,用于网关接收会话的报文;判断子模块,用于判断接收到的报文是否属于网关已创建的会话;确定子模块,用于当接收到的报文不属于网关已创建的会话时,创建新会话,并确定接收到的报文所属的会话是网关内部哪个主机端口的会话;计数子模块,用于当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加1,其中,当接收到的报文到达网关的时间在第i子窗口内时,计数值为在第i子窗口中第j主机端口当前的会话次数;计算子模块,用于获取第一时间窗口内各子窗口中第j主机端口的会话次数计算第一会话次数。
进一步地,判断子模块通过Bloom Filter判断接收到的报文是否属于网关已创建的会话。进一步地,确定子模块和计数子模块通过计数型Bloom Filter判断接收到的报文所属的会话是网关内部哪个主机端口的会话,并当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加I。进一步地,该装置还包括第三计算模块,用于计算第一时间窗口中第j主机端口与网关的外部的第k主机的会话次数,以得到第三会话次数,其中,第三会话次数为第一时间窗口中所有子窗口中第j主机端口与第k主机的会话次数的和;第二确定模块,用于当第一会话次数大于K且第三会话次数大于L时,确定第j主机端口的攻击源 为第k主机,其中,L为预设的第二攻击判定阈值;以及第三确定模块,用于当第一会话次数小于或等于K且第三会话次数大于L时,确定第k主机正在发起DOS攻击。为了实现上述目的,根据本发明的另一方面,提供了一种防火墙。根据本发明的防火墙包括本发明提供的任意一种DDOS攻击的识别装置。通过本发明,基于滑动窗口技术,计算每个滑动窗口中主机端口的会话次数,在该会话次数超过预设值时,确定该主机端口受到DDOS攻击,可以有效地利用时间序列,无需详细记录全流量信息,滑动窗口的大小能够限定内存空间资源,使得资源占用小,同时,以较小的计算代价,获取了详细的历史连接信息,使DDOS攻击判断更接近实际网络状况,与采用报文抽样或流抽样的方式,降低了识别DDOS攻击误差,因而,解决了高速网络环境中识别DDOS攻击误差较大的问题,进而达到了降低高速网络环境中识别DDOS攻击的误差的效果。


构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明第一实施例的DDOS攻击的识别方法的流程图;图2是根据本发明第二实施例的DDOS攻击的识别方法的流程图;图3是根据本发明第三实施例的DDOS攻击的识别方法的流程图;图4是根据本发明实施例的三种数据结构的示意图;图5是根据本发明实施例的DDOS攻击的识别装置的原理框图;以及图6是根据本发明实施例的防火墙的示意图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。首先介绍本发明提供的DDOS攻击的识别方法的实施例。图1是根据本发明第一实施例的DDOS攻击的识别方法的流程图,在该实施例中实时进行DDOS攻击的检测识别,以预设时间长度的滑动时间窗口为观测窗口,根据一个窗口中的会话次数判断该主机端口是否受到DDOS攻击,观测窗口以预设步长滑动,其中预设步长小于观测窗口的时间长度。在观测窗口结束时,向后滑动该预设步长,得到新的观测窗口,再根据该窗口中的会话次数判断该主机端口是否受到DDOS攻击,随着观测窗口的滑动,实现了全流量数据监控,具体地,在进行DDOS攻击识别时,可对网关内部的某一个或某几个主机进行检测识别,也可对所有主机进行检测识别,在该实施例中,以识别某一主机,也即第j主机是否受到DDOS攻击为例进行说明。以某两个相邻的观测窗口中第j主机端口的DDOS攻击识别为例,如图1所示,识别方法包括如下的步骤S102至步骤S110。步骤S102 :计算第一时间窗口中网关内部的第j主机端口的会话次数,以得到第
一会话次数。在该步骤中,可采用以下公式计算第j主机端口的第一会话次数
权利要求
1.一种DDOS攻击的识别方法,其特征在于,包括 计算第一时间窗口中网关内部的第j主机端口的会话次数,以得到第一会话次数,其中,所述第一时间窗口由第P子窗口至第P+s子窗口组成,第i+1子窗口的起始时间是所述第i子窗口的结束时间,所述第一会话次数为所述第一时间窗口中所有子窗口中的会话次数的和; 在所述第一时间窗口结束后,计算第二时间窗口中所述第j主机端口的会话次数,以得到第二会话次数,其中,所述第二时间窗口由第P+x子窗口至第P+x+s子窗口组成,x<s,所述第二会话次数为所述第二时间窗口中所有子窗口中的会话次数的和; 当所述第一会话次数大于K和/或所述第二会话次数大于K时,确定所述第j主机端口受到DDOS攻击,其中,i,j,p,s,X均为自然数,K为预设的第一攻击判定阈值。
2.根据权利要求1所述的DDOS攻击的识别方法,其特征在于,计算所述第一会话次数包括 步骤Sll :所述网关接收会话的报文; 步骤S12 :判断所述接收到的报文是否属于所述网关已创建的会话; 步骤S13 :当所述接收到的报文不属于所述网关已创建的会话时,创建新会话,并确定所述接收到的报文所属的会话是所述网关内部哪个主机端口的会话; 步骤S14 :当确定的主机端口是所述第j主机端口时,将所述接收到的报文对应的子窗口的计数值加1,其中,当所述接收到的报文到达所述网关的时间在所述第i子窗口内时,所述计数值为在所述第i子窗口中所述第j主机端口当前的会话次数; 步骤S15:判断所述第一时间窗口是否结束时,如果未结束返回所述步骤S11,如果结束执行所述步骤S16 ; 步骤S16 :获取所述第一时间窗口内各子窗口中所述第j主机端口的会话次数计算所述第一会话次数。
3.根据权利要求2所述的DDOS攻击的识别方法,其特征在于,在所述步骤S12中,通过Bloom Filter判断所述接收到的报文是否属于所述网关已创建的会话。
4.根据权利要求3所述的DDOS攻击的识别方法,其特征在于,所述步骤S12包括 在Bloom Fi I ter组中,获取与所述接收到的报文对应的Bloom Filter,得到判定BloomFilter,其中,所述 Bloom Filter 组由 s+1 个 Bloom Filter 组成,所述 Bloom Filter 用于对报文的五元组计数,所述五元组包括报文的协议类型、源IP、源端口、目的IP、目的端口,所述Bloom Filter组中的各Bloom Filter与所述第一时间窗口中的各子窗口--对应,当所述接收到的报文到达所述网关的时间在所述第i子窗口内时,与所述接收到的报文对应的Bloom Filter是与所述第i子窗口对应的Bloom Filter ; 获取所述接收到的报文的五元组,得到判定五元组; 根据所述判定五元组查询所述判定Bloom Filter中是否存在所述接收到的报文所属的会话,其中,当所述判定Bloom Filte中存在所述接收到的报文所属的会话时,所述接收到的报文属于已接收到的会话;以及 当所述判定Bloom Filter中不存在所述接收到的报文所属的会话时,根据所述获取到的五元组更新所述判定Bloom Filter。
5.根据权利要求4所述的DDOS攻击的识别方法,其特征在于,当所述第一时间窗口结束时,所述方法还包括 更新所述Bloom Filter组,其中,更新所述Bloom Filter组包括丢弃所述第p至第p+x-1子窗口对应的Bloom Filter,增加与所述第p+s+1至第p+s+x子窗口对应的BloomFilter,并对增加的Bloom Filter进行初始化。
6.根据权利要求2所述的DDOS攻击的识别方法,其特征在于,在所述步骤S12之前,计算所述第一时间窗口中所述第j主机端口的会话次数还包括 步骤S17 :判断所述接收到的报文是否为所述网关外到所述网关内的报文,其中,当所述报文为所述网关外到所述网关内的报文时,执行步骤所述S12,当所述报文为所述网关内到所述网关外的报文时,执行所述步骤S11。
7.根据权利要求2所述的DDOS攻击的识别方法,其特征在于,在所述步骤S13和所述步骤S14中,通过计数型Bloom Filter判断所述接收到的报文所属的会话是所述网关内部哪个主机端口的会话,并当确定的主机端口是所述第j主机端口时,将所述接收到的报文对应的子窗口的计数值加I。
8.根据权利要求7所述的DDOS攻击的识别方法,其特征在于,所述步骤S13和所述步骤S14包括 在第一计数型Bloom Filter组中,获取与所述新会话对应的第一计数型BloomFilter,得到第一判定计数型Bloom Filter,其中,所述第一计数型Bloom Filter组由s+1个第一计数型Bloom Filter组成,所述第一计数型Bloom Filter用于对会话的三元组计数,所述三元组包括会话的协议类型、目的IP、目的端口,所述第一计数型BloomFilter组中的各第一计数型Bloom Filter与所述第一时间窗口中的各子窗口--对应,当所述接收到的报文到达所述网关的时间在所述第i子窗口内时,与所述新会话对应的第一计数型Bloom Filter是与所述第i子窗口对应的第一计数型Bloom Filter ; 获取所述新会话的三元组,得到判定三元组;以及 所述第一判定计数型Bloom Filter根据所述判定三元组计数。
9.根据权利要求8所述的DDOS攻击的识别方法,其特征在于,当所述第一时间窗口结束时,所述方法还包括 更新所述第一计数型Bloom Filter组,其中,更新所述第一计数型Bloom Filter组包括丢弃所述第p至第p+x-1子窗口对应的第一计数型Bloom Filter,增加与所述第p+s+1至第p+s+x子窗口对应的第一计数型Bloom Filter,并对增加的第一计数型Bloom Filter进行初始化。
10.根据权利要求1至9中任一项所述的DDOS攻击的识别方法,其特征在于,所述方法还包括 计算所述第一时间窗口中所述第j主机端口与所述网关的外部的第k主机的会话次数,以得到第三会话次数,其中,所述第三会话次数为所述第一时间窗口中所有子窗口中所述第j主机端口与所述第k主机的会话次数的和; 当所述第一会话次数大于K且所述第三会话次数大于L时,确定所述第j主机端口的攻击源为所述第k主机,其中,L为预设的第二攻击判定阈值;以及 当所述第一会话次数小于或等于K且所述第三会话次数大于L时,确定所述第k主机正在发起DOS攻击。
11.一种DDOS攻击的识别装置,其特征在于,包括 第一计算模块,用于计算第一时间窗口中网关内部的第j主机端口的会话次数,以得到第一会话次数,其中,所述第一时间窗口由第P子窗口至第P+s子窗口组成,第i+1子窗口的起始时间是所述第i子窗口的结束时间,所述第一会话次数为所述第一时间窗口中所有子窗口中的会话次数的和; 第二计算模块,用于在所述第一时间窗口结束后,计算第二时间窗口中所述第j主机端口的会话次数,以得到第二会话次数,其中,所述第二时间窗口由第P+x子窗口至第P+x+s子窗口组成,x<s,所述第二会话次数为所述第二时间窗口中所有子窗口中的会话次数的和; 第一确定模块,用于当所述第一会话次数大于K和/或所述第二会话次数大于K时,确定所述第j主机端口受到DDOS攻击,其中,i,j,p,s,x均为自然数,K为预设的第一攻击判定阈值。
12.根据权利要求11所述的DDOS攻击的识别装置,其特征在于,所述第一计算模块包括 接收子模块,用于所述网关接收会话的报文; 判断子模块,用于判断所述接收到的报文是否属于所述网关已创建的会话; 确定子模块,用于当所述接收到的报文不属于所述网关已创建的会话时,创建新会话,并确定所述接收到的报文所属的会话是所述网关内部哪个主机端口的会话; 计数子模块,用于当确定的主机端口是所述第j主机端口时,将所述接收到的报文对应的子窗口的计数值加1,其中,当所述接收到的报文到达所述网关的时间在所述第i子窗口内时,所述计数值为在所述第i子窗口中所述第j主机端口当前的会话次数; 计算子模块,用于获取所述第一时间窗口内各子窗口中所述第j主机端口的会话次数计算所述第一会话次数。
13.根据权利要求12所述的DDOS攻击的识别装置,其特征在于,所述判断子模块通过Bloom Filter判断所述接收到的报文是否属于所述网关已创建的会话。
14.根据权利要求12所述的DDOS攻击的识别装置,其特征在于,所述确定子模块和所述计数子模块通过计数型Bloom Filter判断所述接收到的报文所属的会话是所述网关内部哪个主机端口的会话,并当确定的主机端口是所述第j主机端口时,将所述接收到的报文对应的子窗口的计数值加I。
15.根据权利要求11至14中任一项所述的DDOS攻击的识别装置,其特征在于,所述装置还包括 第三计算模块,用于计算所述第一时间窗口中所述第j主机端口与所述网关的外部的第k主机的会话次数,以得到第三会话次数,其中,所述第三会话次数为所述第一时间窗口中所有子窗口中所述第j主机端口与所述第k主机的会话次数的和; 第二确定模块,用于当所述第一会话次数大于K且所述第三会话次数大于L时,确定所述第j主机端口的攻击源为所述第k主机,其中,L为预设的第二攻击判定阈值;以及 第三确定模块,用于当所述第一会话次数小于或等于K且所述第三会话次数大于L时,确定所述第k主机正在发起DOS攻击。
16.一种防火墙,其特征在于,所述防火墙包括权利要求11至15中任一项所述的DDOS攻击 的识别装置。
全文摘要
本发明公开了一种DDOS攻击的识别方法和识别装置及防火墙。该DDOS攻击的识别方法包括计算第一时间窗口中网关内部的第j主机端口的会话次数,以得到第一会话次数,其中,第一时间窗口由第p子窗口至第p+s子窗口组成,第一会话次数为第一时间窗口中所有子窗口中的会话次数的和;在第一时间窗口结束后,计算第二时间窗口中第j主机端口的会话次数,以得到第二会话次数,其中,第二时间窗口由第p+x子窗口至第p+x+s子窗口组成,x<s,第二会话次数为第二时间窗口中所有子窗口中的会话次数的和;当第一会话次数大于K和/或第二会话次数大于K时,确定第j主机端口受到DDOS攻击。通过本发明,减小了高速网络环境中识别DDOS攻击的误差。
文档编号H04L29/06GK103001972SQ20121057215
公开日2013年3月27日 申请日期2012年12月25日 优先权日2012年12月25日
发明者周明中, 周伦 申请人:苏州山石网络有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1