CN103001972A - Ddos攻击的识别方法和识别装置及防火墙 - Google Patents

Ddos攻击的识别方法和识别装置及防火墙 Download PDF

Info

Publication number
CN103001972A
CN103001972A CN2012105721568A CN201210572156A CN103001972A CN 103001972 A CN103001972 A CN 103001972A CN 2012105721568 A CN2012105721568 A CN 2012105721568A CN 201210572156 A CN201210572156 A CN 201210572156A CN 103001972 A CN103001972 A CN 103001972A
Authority
CN
China
Prior art keywords
count
log
subwindow
bloom filter
message
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
Application number
CN2012105721568A
Other languages
English (en)
Other versions
CN103001972B (zh
Inventor
周明中
周伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING HILLSTONE NETWORKS INFORMATION TECHNOLOGY Co.,Ltd.
Jingyi Zhiyuan (Wuhan) Information Technology Co., Ltd;
Original Assignee
SUZHOU SHANSHI NETWORK CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SUZHOU SHANSHI NETWORK CO Ltd filed Critical SUZHOU SHANSHI NETWORK CO Ltd
Priority to CN201210572156.8A priority Critical patent/CN103001972B/zh
Publication of CN103001972A publication Critical patent/CN103001972A/zh
Application granted granted Critical
Publication of CN103001972B publication Critical patent/CN103001972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种DDOS攻击的识别方法和识别装置及防火墙。该DDOS攻击的识别方法包括:计算第一时间窗口中网关内部的第j主机端口的会话次数,以得到第一会话次数,其中,第一时间窗口由第p子窗口至第p+s子窗口组成,第一会话次数为第一时间窗口中所有子窗口中的会话次数的和;在第一时间窗口结束后,计算第二时间窗口中第j主机端口的会话次数,以得到第二会话次数,其中,第二时间窗口由第p+x子窗口至第p+x+s子窗口组成,x<s,第二会话次数为第二时间窗口中所有子窗口中的会话次数的和;当第一会话次数大于K和/或第二会话次数大于K时,确定第j主机端口受到DDOS攻击。通过本发明,减小了高速网络环境中识别DDOS攻击的误差。

Description

DDOS攻击的识别方法和识别装置及防火墙
技术领域
本发明涉及网络安全领域,具体而言,涉及一种DDOS攻击的识别方法和识别装置及防火墙。
背景技术
分布式拒绝服务(DDOS,Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动拒绝服务攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDOS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在Internet的许多计算机上,代理程序收到指令时发动攻击,利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
在网络设备中,现有DDOS攻击的检测一般采用以下两种方式收集数据进行分析:(1)详细记录流量信息;(2)对流量信息进行抽样,记录简单信息。
对于现有技术中采用全流量信息详细记录的方式,该方式的优点是可以采集足够的数据用于分析,缺点是资源占用量大。特别是在低速网络场合,这种DDOS攻击的防护技术将一定时间段M内所有连接信息,也即session(i),i∈[0,n],均记录在内存中,当发现某一台服务器连接数超过阈值K时,判断为发生DDOS攻击,然后查看该时段内每个远端主机与该服务器产生连接的数量,如果数量超过一定阈值L,则将该远端主机识别为攻击发起方。因此,该技术虽然可以有效发现可能存在的攻击,但是由于需要记录每条连接的信息,对计算资源和存储资源的消耗较大,并不适合目前高速的网络环境。
对于现有技术中采用报文抽样或流抽样的方式,该方式的优点是资源占用小,其代价是会造成信息不完整,引入较大的误差。在高速网络场合,为处理流量和资源占用之间的矛盾,将一定时间段M内连接信息进行抽样,也即session(i),i∈[1,N],其中N<n,均记录在内存中,当发现某一台服务器连接数超过阈值K(该阈值根据抽样的比率进行调整)时,判断为发生DDOS攻击,然后查看该时段内每个远端主机与该服务器产生连接的数量,如果数量超过一定阈值L(该阈值根据抽样的比率进行调整),则将该远端主机识别为攻击发起方。因此,该技术由于采用了抽样技术,虽然能够节约计算资源和存储资源,但是引入了抽样误差,出现了资源和抽样比率之间的矛盾,在目前一般网络设备的基本硬件配置条件下很难做到有效的平衡。
综上,前一种方式虽然信息收集详尽,但对计算资源和存储资源的消耗较大,只适合低速网络场合;后一种方式虽然适用于高速网络,但会由于信息丢失而导致检测误差大,不能有效识别DDOS的发起方。
因此有必要构建适用于高速网络,减小信息缺失并能有效识别攻击发起方的DDOS检测方法。
针对相关技术中在高速网络环境中识别DDOS攻击误差较大的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种DDOS攻击的识别方法和识别装置及防火墙,以解决高速网络环境中识别DDOS攻击误差较大问题。
为了实现上述目的,根据本发明的一个方面,提供了一种DDOS攻击的识别方法。
根据本发明的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为预设的第一攻击判定阈值。
进一步地,计算第一会话次数包括:步骤S11:网关接收会话的报文;步骤S12:判断接收到的报文是否属于网关已创建的会话;步骤S13:当接收到的报文不属于网关已创建的会话时,创建新会话,并确定接收到的报文所属的会话是网关内部哪个主机端口的会话;步骤S14:当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加1,其中,当接收到的报文到达网关的时间在第i子窗口内时,计数值为在第i子窗口中第j主机端口当前的会话次数;步骤S15:判断第一时间窗口是否结束时,如果未结束返回步骤S11,如果结束执行步骤S16;步骤S16:获取第一时间窗口内各子窗口中第j主机端口的会话次数计算第一会话次数。
进一步地,在步骤S12中,通过Bloom Filter判断接收到的报文是否属于网关已创建的会话。
进一步地,步骤S12包括:在Bloom Filter组中,获取与接收到的报文对应的BloomFilter,得到判定Bloom Filter,其中,Bloom Filter组由s+1个Bloom Filter组成,BloomFilter用于对报文的五元组计数,五元组包括报文的协议类型、源IP、源端口、目的IP、目的端口,Bloom Filter组中的各Bloom Filter与第一时间窗口中的各子窗口一一对应,当接收到的报文到达网关的时间在第i子窗口内时,与接收到的报文对应的Bloom Filter是与第i子窗口对应的Bloom Filter;获取接收到的报文的五元组,得到判定五元组;根据判定五元组查询判定Bloom Filter中是否存在接收到的报文所属的会话,其中,当判定Bloom Filte中存在接收到的报文所属的会话时,接收到的报文属于已接收到的会话;以及当判定Bloom Filter中不存在接收到的报文所属的会话时,根据获取到的五元组更新判定Bloom Filter。
进一步地,当第一时间窗口结束时,该方法还包括:更新Bloom Filter组,其中,更新Bloom Filter组包括:丢弃第p至第p+x-1子窗口对应的Bloom Filter,增加与第p+s+1至第p+s+x子窗口对应的Bloom Filter,并对增加的Bloom Filter进行初始化。
进一步地,在步骤S12之前,计算第一时间窗口中第j主机端口的会话次数还包括:步骤S17:判断接收到的报文是否为网关外到网关内的报文,其中,当报文为网关外到网关内的报文时,执行步骤S12,当报文为网关内到网关外的报文时,执行步骤S11。
进一步地,在步骤S13和步骤S14中,通过计数型Bloom Filter判断接收到的报文所属的会话是网关内部哪个主机端口的会话,并当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加1。
进一步地,步骤S13和步骤S14包括:在第一计数型Bloom Filter组中,获取与新会话对应的第一计数型Bloom Filter,得到第一判定计数型Bloom Filter,其中,第一计数型Bloom Filter组由s+1个第一计数型Bloom Filter组成,第一计数型BloomFilter用于对会话的三元组计数,三元组包括会话的协议类型、目的IP、目的端口,第一计数型Bloom Filter组中的各第一计数型Bloom Filter与第一时间窗口中的各子窗口一一对应,当接收到的报文到达网关的时间在第i子窗口内时,与新会话对应的第一计数型Bloom Filter是与第i子窗口对应的第一计数型Bloom Filter;获取新会话的三元组,得到判定三元组;以及第一判定计数型Bloom Filter根据判定三元组计数。
进一步地,当第一时间窗口结束时,该方法还包括:更新第一计数型Bloom Filter组,其中,更新第一计数型Bloom Filter组包括:丢弃第p至第p+x-1子窗口对应的第一计数型Bloom Filter,增加与第p+s+1至第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子窗口至第p+s子窗口组成,第i+1子窗口的起始时间是第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主机端口时,将接收到的报文对应的子窗口的计数值加1。
进一步地,该装置还包括:第三计算模块,用于计算第一时间窗口中第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主机端口的第一会话次数:
Sum _ 11 = &Sigma; i = p p + s Count _ tuple 1 [ i ] [ j ] ,
其中,第一时间窗口为观测窗口,由第p子窗口至第p+s子窗口共s+1个子窗口组成,第p子窗口的起始时间为第一时间窗口的起始时间,第p+s子窗口的终止时间为第一时间窗口的终止时间,当第一时间窗口为首个时间窗口时,p=1,Count_tuple1[i][j]为第i子窗口中第j主机端口的会话次数,Sum_11为第一时间窗口中各子窗口的会话次数的加和,也即第一时间窗口中第j主机端口的会话次数总和,该计算公式中第i-1子窗口、第i子窗口、第i+1子窗口是依次相邻的子窗口,也即第i+1子窗口的起始时间是第i子窗口的结束时间。
步骤S104:在第一时间窗口结束后,计算第二时间窗口中所述第j主机端口的会话次数,以得到第二会话次数。
在第一时间窗口结束后,观测窗口向后移动预设步长,该预设步长可以为多个子窗口,优选为一个子窗口。其中,采用多个子窗口为预设步长占用计算资源少,采用一个子窗口为预设步长识别结果准确。
在该步骤中,可采用以下公式计算第j主机端口的第二会话次数:
Sum _ 12 = &Sigma; i = p + x p + x + s Count _ tuple 1 [ i ] [ j ] ,
其中,将观测窗口由第一时间窗口向后滑动x个子窗口得到新的观测窗口,也即第二时间窗口,该第二时间窗口由第p+x子窗口至第p+x+s子窗口组成,x<s,Sum_12为第二时间窗口中第j主机端口的会话次数,在计算Sum_12时,无需再计算第p+x子窗口至第p+s子窗口中第j主机端口的会话次数,因为该部分子窗口中的会话次数在计算Sum_11时以得到。
优选地,在该步骤中,可根据第一会话次数计算第二时间窗口中第j主机端口的会话次数,以得到第二会话次数,具体地,可采用以下公式第j主机端口的第二会话次数:
Sum _ 12 = Sum _ 11 - &Sigma; i = p p + x - 1 Count _ tuple [ i ] [ j ] + &Sigma; i = p + s + 1 p + s + x Count _ tuple 1 [ i ] [ j ] .
步骤S106:在得到会话次数时,判断会话次数是否大于第一攻击判定阈值K。
在每一个观测窗口结束时得到该窗口中的会话次数,将得到的会话次数预设值K进行判断,其中,K为DDOS攻击判定阈值,当网关内部某一台主机在观测窗口内,会话数超过该阈值时,判断该内部主机遭受DDOS攻击。
步骤S108:当会话次数大于K时,确定第j主机端口受到DDOS攻击。
步骤S110:当会话次数小于或等于K时,确定第j主机端口没有受到DDOS攻击。
采用该实施例的识别方法,通过滑动观测窗口技术实现数据流量监控,可以有效地利用时间序列,无需详细记录全流量信息;同时,滑动窗口的大小能够限定内存空间资源,使得资源占用小;在窗口滑动后,只需计算滑动后新的子窗口中的会话次数便可得到新观测窗口中的会话次数,以较小的计算代价,获取了详细的历史连接信息,使DDOS攻击判断更接近实际网络状况,与采用报文抽样或流抽样的方式,降低了识别DDOS攻击误差,因而,该识别方法降低高速网络环境中识别DDOS攻击的误差。
优选地,该方法还包括计算第一时间窗口中第j主机端口与网关的外部的第k主机的会话次数,以得到第三会话次数,其中,第三会话次数为第一时间窗口中所有子窗口中第j主机端口与第k主机的会话次数的和,也即计算网关内部第j主机端口在第一时间窗口的会话中,第j主机端口与网关外部第k主机的会话的次数。
具体地,可采用以下公式计算第k主机的第三会话次数:
Sum _ 21 = &Sigma; i = p p + s Count _ tuple 2 [ i ] [ k ]
其中,Sum_21为第k主机的第三会话次数,Count_tuple2[i][k]为第i子窗口中第k主机的会话次数,该处的子窗口与计算第一会话次数和第二会话次数中的子窗口一致。
在得到Sum_21后,判断Sum21与预设的第二攻击判定阈值L的大小关系,其中,第二攻击判定阈值L为外部访问攻击判定阈值,当外部具体某一台主机在观测窗口内,会话次数超过该阈值时,确定该外部主机是攻击源之一,当Sum_11>K且Sum_21>L时,确定第j主机端口的攻击源为第k主机,当Sum_11≤K且Sum_21>L时,确定第k主机正在发起DOS攻击。
采用该优选实施例,能够在识别DDOS攻击的基础上进一步识别攻击源,从而能够在确定攻击源后实施控制措施,以有效的挫败DDOS攻击。
进一步优选地,在识别网关外部主机是否为攻击源时,也采用基于滑动窗口的技术,其观测窗口与DDOS识别的观测窗口相同,因此,在第一时间窗口结束后,观测窗口向后移动预设步长,计算第二时间窗口中第j主机端口与网关的外部的第k主机的会话次数,以得到第四会话次数。
优选地,可根据第三会话次数计算第四会话次数,具体地,采用以下公式计算:
Sum _ 22 = Sum _ 21 - &Sigma; i = p p + x - 1 Count _ tuple 2 [ i ] [ k ] + &Sigma; i = p + s + 1 p + s + x Count _ tuple 2 [ i ] [ k ]
其中,Sum_22为第k主机的第四会话次数。
同样,在得到Sum_22后,判断Sum_22与L的大小关系,当Sum_11>K且Sum_22>L时,确定第j主机端口的攻击源为第k主机,当Sum_11≤K且Sum_22>L时,确定第k主机正在发起DOS攻击。
图2是根据本发明第二实施例的DDOS攻击的识别方法的流程图,如图2所示,该方法包括如下的步骤S201至步骤S210。
步骤S201:网关接收会话的报文。
步骤S202:判断接收到的报文是否属于网关已创建的会话,当接收到的报文属于网关已创建的会话时,返回步骤S201,继续接收报文,当接收到的报文不属于网关已创建的会话时,执行步骤S203。
步骤S203:创建新会话。
步骤S204:确定接收到的报文所属的会话是属于网关内部某具体主机端口的会话。
在该步骤中,可通过报文的目的IP和目的端口确定报文所属的会话是网关内部哪个主机端口的会话。
步骤S205:当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加1,其中,当接收到的报文到达网关的时间在第i子窗口内时,计数值为在第i子窗口中第j主机端口当前的会话次数。
可针对不同主机端口的不同子窗口分别设置计数器,以对每个主机端口在每个子窗口中的会话次数进行计数。
步骤S206:判断当前时间窗口是否结束,如果未结束直接返回步骤S201,如果结束执行步骤S207。
在该步骤中,可通过创建新会话的时间判断当前的时间窗口是否结束,当创建新会话的时间超过该时间窗口的终止时间时,改时间窗口结束。
步骤S207:获取当前时间窗口内各主机端口对应的各子窗口的会话次数。
步骤S208:根据子窗口的会话次数计算各个主机端口在该当前时间窗口中的会话次数。
在该步骤中,如果当前时间窗口不是首个时间窗口,可采用上述第一实施例中描述的计算第二会话次数的公式进行计算。
步骤S209:判断计算得到的各个主机端口的会话次数是否大于K,当计算得到的某个主机端口的会话次数大于K时,执行步骤S210,否则返回步骤S201。
步骤S210:输出该主机端口受到DDOS攻击的报警信息。
优选地,在步骤S201与步骤S202之间,该方法还包括:判断接收到的报文是否为网关外到网关内的报文,具体地,可通过判断接收到的报文的目的IP是否为网关内IP进行判断,其中,当报文为网关外到网关内的报文时,执行步骤S202,当报文为网关内到网关外的报文时,返回步骤S201。
优选地,在步骤S202中,通过Bloom Filter判断接收到的报文是否属于网关已创建的会话。
通过Bloom Filter判断接收到的报文是否属于网关已创建的会话时,创建一个Bloom Filter组(BFS0),该组中包括s+1个Bloom Filter,也即BFS0[0]、BFS0[1]、…、BFS0[s],各Bloom Filter分别与一个观测窗口中的各个子窗口对应,例如BFS0[0]与观测窗口中的首个子窗口对应,BFS0[1]与观测窗口中的第二个子窗口对应,以此类推,BFS0[s]与观测窗口中的最后一个子窗口对应,各个Bloom Filter分别对报文的协议类型、源IP、源端口、目的IP和目的端口构成的五元组判断该报文所属会话是否在BloomFilter中已存在。
具体地,通过Bloom Filter判断接收到的报文是否属于网关已创建的会话的方法包括以下步骤:
步骤S2021:在Bloom Filter组中,获取与接收到的报文对应的Bloom Filter,得到判定Bloom Filter,其中,当接收到的报文到达网关的时间在第i子窗口内时,与接收到的报文对应的Bloom Filter是与第i子窗口对应的Bloom Filter。
步骤S2022:获取接收到的报文的五元组,得到判定五元组。
步骤S2023:根据判定五元组查询判定Bloom Filter中是否存在接收到的报文所属的会话。
其中,当判定Bloom Filter中存在接收到的报文所属的会话时,接收到的报文属于已接收到的会话,因而,执行步骤S201,当判定Bloom Filter中不存在接收到的报文所属的会话时,该接收到的报文所属会话是新会话,因而执行步骤S203。
为了保证Bloom Filter组中包括当前观测窗口中所有已创建会话的信息,如果接收到的报文所属的会话为新会话时,根据获取到的五元组更新判定Bloom Filter。
为了随着观测窗口的滑动实时更新Bloom Filter组的信息,在步骤S206之后,当第一时间窗口结束时,该方法还包括:
更新Bloom Filter组,其中,更新Bloom Filter组具体包括:丢弃观测窗口滑动后移出的子窗口对应的Bloom Filter,增加观测窗口移动后移入的子窗口对应的BloomFilter,并对增加的Bloom Filter进行初始化。例如,滑动前的观测窗口由第p子窗口至第p+s子窗口组成,观测窗口向后移动x个子窗口,滑动后的观测窗口由第p+x子窗口至第p+x+s子窗口组成,则丢弃第p至第p+x-1子窗口对应的Bloom Filter,增加与第p+s+1至第p+s+x子窗口对应的Bloom Filter。
优选地,在步骤S203和步骤S204中,通过计数型Bloom Filter判断接收到的报文所属的会话是网关内部哪个主机端口的会话,并当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加1。
首先创建计数型Bloom Filter组(CBFS1),该组中包括s+1个计数型Bloom Filter,也即CBFS1[0]、CBFS1[1]、…、CBFS1[s],各Bloom Filter分别与一个观测窗口中的各个子窗口对应,例如CBFS1[0]与观测窗口中的首个子窗口对应,CBFS1[1]与观测窗口中的第二个子窗口对应,以此类推,CBFS1[s]与观测窗口中的最后一个子窗口对应,各个计数型Bloom Filter分别对会话的协议类型、目的IP和目的端口构成的三元组计数,同样的三元组信息在计数型Bloom Filter中出现一次,计数型Bloom Filter对该三元组信息进行一次计数。
其次,通过计数型Bloom Filter实现步骤S203和步骤S204的具体方法包括如下的步骤(为了便于说明和区别,将该处的计数型Bloom Filter组描述为第一计数型Bloom Filter组):
步骤S2031:在第一计数型Bloom Filter组中,获取与新会话对应的第一计数型Bloom Filter,得到第一判定计数型Bloom Filter,当接收到的报文到达网关的时间在第i子窗口内时,与新会话对应的第一计数型Bloom Filter是与第i子窗口对应的第一计数型Bloom Filter。
步骤S2032:获取新会话的三元组,得到判定三元组。
步骤S2033:第一判定计数型Bloom Filter根据判定三元组计数,也即,当判定三元组在第一判断计数型Bloom Filter中是第N次出现时,第一判定计数型Bloom Filter对该三元组的计数为N,也即,相同会话协议、相同目的IP和相同目的端口的会话已产生N次。
为了随着观测窗口的滑动实时更新第一计数型Bloom Filter组的信息,在步骤S206之后,当第一时间窗口结束时,该方法还包括更新第一计数型Bloom Filter组,其中,更新第一计数型Bloom Filter组包括:丢弃观测窗口滑动后移出的子窗口对应的计数型Bloom Filter,增加观测窗口移动后移入的子窗口对应的计数型Bloom Filter,并对增加的Bloom Filter进行初始化,例如,滑动前的观测窗口由第p子窗口至第p+s子窗口组成,观测窗口向后移动x个子窗口,滑动后的观测窗口由第p+x子窗口至第p+x+s子窗口组成,则丢弃第p至第p+x-1子窗口对应的第一计数型Bloom Filter,增加与第p+s+1至第p+s+x子窗口对应的第一计数型Bloom Filter。
图3是根据本发明第三实施例的DDOS攻击的识别方法的流程图,在该实施例中,提供了一种基于有限内存的DDOS快速识别方法,该方法可以在限定内存空间资源情况下,通过快速匹配算法,识别服务器是否遭受DDOS攻击,并通过关联IP分析,溯源发现主要攻击源,快速查找确认主要攻击源,便于后续对攻击源进行阻断、QoS等相关操作。该方法的优点在于内存占用量小,适用于大流量和需要长期观测的环境。
其中,该方法中的参数以及数据结构说明如下:
(1)DDOS攻击判定阈值(K):当内部某一台主机在观测窗口W内,连接数(也即会话次数)超过该阈值时,判断该内部主机遭受DDOS攻击,其中,观测窗口W包括s+1个子窗口。
(2)外部访问攻击判定阈值(L):当外部具体某一台主机在观测窗口W内,与某一内部主机连接数超过该阈值时,判断该外部主机是该内部主机的攻击源之一
(3)Bloom Filter组(BFS0):用于基于报文的会话发现和确认,对报文的协议类型、源IP,源Port,宿IP,宿Port五元组计数,对应于观测窗口中子窗口的总数量包含s+1个Bloom Filter,分别为BFS0[0]、BFS0[1]、...、BFS0[s]。
(4)第一计数型Bloom Filter组(CBFS1):用于基于会话的协议类型、宿IP和宿Port三元组计数,对应于观测窗口中子窗口的总数量包含s+1个计数型Bloom Filter,分别为CBFS1[0]、CBFS1[1]、…、CBFS1[s]。
(5)第二计数型Bloom Filter组(CBFS2):用于基于会话的协议类型、源IP、宿IP和宿Port四元组计数,对应于观测窗口中子窗口的总数量包含s+1个计数型BloomFilter,分别为CBFS2[0]、CBFS2[1]、…、CBFS2[s]。
(6)基于时间的观测窗口(W):观测窗口由s+1个子窗口Wi(i∈[1,s+1])构成,到达滑动时间阈值T,滑动一个子窗口。
(7)首窗口起始时间(Tstart):观测窗口中首个子窗口的第一个报文到达的时间。
(8)窗口滑动时间阈值(Tmove,也即滑动步长):当时间到达该阈值时,将观测窗口W后移一个子窗口。
上述的BFS0、CBFS1和CBFS2的数据结构图如图4所述。
该方法包括初始化过程和检测过程,分别描述如下:
初始化过程:
(1)首先创建并初始化Bloom Filter组和计数型Bloom Filter组,包括创建BFS0,CBFS1和CBFS2,其中BFS0用于判断达到的报文是否为已经存在的会话,CBFS1用于存储不同三元组,CBFS2用于存储不同的四元组;(2)当首个会话的首个报文到达网关时,设置Tstart为该会话的创建时间。
检测过程:
(1)当报文输入网关时,进行方向判断,若报文的dIP为网关外部IP,则转为接受后续报文。
(2)若报文的dIP为网关内部IP,获取该报文的五元组信息,得到tuple0(Protocol,sIP,sPort,dIP,dPort),并进行Bloom Filter哈希计算。
(3)获取报文到达网关的时间,如果报文到达时间大于等于Tstart+i*Tmove(i∈[1,s-1]),且小于Tstart+(i+1)*Tmove,查询BFS0[i]中是否存在该报文所属的会话,若存在,则转为接受后续报文。
(4)若不存在,通过哈希计算值更新BFS0[j],并创建新会话Sessionj,其创建时间为首报文Packetk的达到时间。
(5)在创建新会话Sessionj时,分别获取该会话的tuple1(Protocolj,dIPj,dPortj)、tuple2(Protocolj,sIPj,dIPj,dPortj),进行Bloom Filter哈希计算,将CBFS1和CBFS2中对应子窗口CBFS1[i]和CBFS2[i]分别增加对应的计数值一次:Count_tuple1[i][j]++和Count_tuple2[i][j]++。
(6)如果Count_tuple1[j]=∑Count_tuple1[i][j]>K(i∈[1,s]),给出告警:内部主机dIPj对应的端口dPortj正遭受DDOS攻击,如果Count_tuple2[j]=∑Count_tuple2[i][j]>L(i∈[1,s]),给出告警:外部主机sIPj连接数过多,可能正在发起DOS攻击。
(7)如果Count_tuple1[j]>K且Count_tuple2[j]>L,则给出告警:外部主机sIPj是内部主机dIPj对应的端口dPortj的DDOS攻击源,完成的攻击的溯源。
其中,如果新会话Sessionj创建时间大于Tstart+s*Tmove,则观测窗口向后滑动一个子窗口(即对应一个Bloom Filter或计数型Bloom Filter结构),并且BFS0增加新的Bloom Filter,CBFS1和CBFS2分别增加新的计数型Bloom Filter,并进行初始化,将首个子窗口对应的BFS0[0]、CBFS1[0]和CBFS1[0]丢弃,并设置Tstart=Sessionj创建时间-(s-1)*Tmove,进行新一个观测窗口中DDOS攻击的识别。
在该实施例中,基于滑动窗口技术,可以有效地利用时间序列,以较小的计算代价,获取详细的历史连接信息,使DDOS攻击判断更接近实际网络状况;由于采用Bloom Filter算法,其占用内存较小且可控(正常情况下小于32M,极端状况一般不大于64M),很小的误差率(理论值小于0.1%),计算复杂度较低,随网络的规模呈线性增长,双计数型Bloom Filter的配合使用,不但可以发现DDOS攻击,而且可以对DDOS攻击进行溯源,在此基础上采取必要的控制措施可以有效挫败DDOS攻击。因此,该实施例提供的DDOS攻击的识别方法适用于高速网络中使用有限内存实时发现存在的DDOS攻击,并进行相关攻击源的溯源的场合。
本发明实施例还提供了DDOS攻击的识别装置,以下对本发明实施例所提供的DDOS攻击的识别装置进行介绍。需要说明的是,在本发明实施例的DDOS攻击的识别方法可以通过本发明实施例所提供的DDOS攻击的识别装置来执行,本发明实施例的DDOS攻击的识别装置也可以用于执行本发明实施例所提供的DDOS攻击的识别方法。
图5是根据本发明实施例的DDOS攻击的识别装置的原理框图,在该实施例中实时进行DDOS攻击的检测识别,以预设时间长度的滑动时间窗口为观测窗口,根据一个窗口中的会话次数判断该主机端口是否受到DDOS攻击,观测窗口以预设步长滑动,其中预设步长小于观测窗口的时间长度。在观测窗口结束时,向后滑动该预设步长,得到新的观测窗口,再根据该窗口中的会话次数判断该主机端口是否受到DDOS攻击,随着观测窗口的滑动,实现了全流量数据监控,具体地,在进行DDOS攻击识别时,可对网关内部的某一个或某几个主机进行检测识别,也可对所有主机进行检测识别,在该实施例中,以识别某一主机,也即第j主机是否受到DDOS攻击为例进行说明,如图5所示,该识别装置包括第一计算模块、第二计算模块和第一确定模块。
第一计算模块用于计算第一时间窗口中网关内部的第j主机端口的会话次数,以得到第一会话次数。
在该模块中,可采用以下公式计算第j主机端口的第一会话次数:
Sum _ 11 = &Sigma; i = p p + s Count _ tuple 1 [ i ] [ j ] ,
其中,第一时间窗口为观测窗口,由第p子窗口至第p+s子窗口共s+1个子窗口组成,第p子窗口的起始时间为第一时间窗口的起始时间,第p+s子窗口的终止时间为第一时间窗口的终止时间,当第一时间窗口为首个时间窗口时,p=1,Count_tuple1[i][j]为第i子窗口中第j主机端口的会话次数,Sum_11为第一时间窗口中各子窗口的会话次数的加和,也即第一时间窗口中第j主机端口的会话次数总和,该计算公式中第i-1子窗口、第i子窗口、第i+1子窗口是依次相邻的子窗口,也即第i+1子窗口的起始时间是第i子窗口的结束时间。
第二计算模块用于在第一时间窗口结束后,计算第二时间窗口中第j主机端口的会话次数,以得到第二会话次数。
在第一时间窗口结束后,观测窗口向后移动预设步长,该预设步长可以为多个子窗口,优选为一个子窗口。其中,采用多个子窗口为预设步长占用计算资源少,采用一个子窗口为预设步长识别结果准确。
在该模块中,可采用以下公式计算第j主机端口的第二会话次数:
Sum _ 12 = &Sigma; i = p + x p + x + s Count _ tuple 1 [ i ] [ j ] ,
其中,将观测窗口由第一时间窗口向后滑动x个子窗口得到新的观测窗口,也即第二时间窗口,该第二时间窗口由第p+x子窗口至第p+x+s子窗口组成,x<s,Sum_12为第二时间窗口中第j主机端口的会话次数,在计算Sum_12时,无需再计算第p+x子窗口至第p+s子窗口中第j主机端口的会话次数,因为该部分子窗口中的会话次数在计算Sum_11时以得到。
优选地,在该模块中,可根据第一会话次数计算第二时间窗口中第j主机端口的会话次数,以得到第二会话次数,具体地,可采用以下公式第j主机端口的第二会话次数:
Sum _ 12 = Sum _ 11 - &Sigma; i = p p + x - 1 Count _ tuple 1 [ i ] [ j ] + &Sigma; i = p + s + 1 p + s + x Count _ tuple 1 [ i ] [ j ] .
第一确定模块,用于当第一会话次数大于K和/或第二会话次数大于K时,确定第j主机端口受到DDOS攻击,其中,i,j,p,s,x均为自然数,K为预设的第一攻击判定阈值。
采用该实施例的识别装置,通过滑动观测窗口技术实现数据流量监控,可以有效地利用时间序列,无需详细记录全流量信息;同时,滑动窗口的大小能够限定内存空间资源,使得资源占用小;在窗口滑动后,只需计算滑动后新的子窗口中的会话次数便可得到新观测窗口中的会话次数,以较小的计算代价,获取了详细的历史连接信息,使DDOS攻击判断更接近实际网络状况,与采用报文抽样或流抽样的方式,降低了识别DDOS攻击误差,因而,该识别装置降低高速网络环境中识别DDOS攻击的误差。
优选地,该装置还包括第三计算模块、第二确定模块和第三确定模块。第三计算模块用于计算第一时间窗口中第j主机端口与网关的外部的第k主机的会话次数,以得到第三会话次数,其中,第三会话次数为第一时间窗口中所有子窗口中第j主机端口与第k主机的会话次数的和,也即计算网关内部第j主机端口在第一时间窗口的会话中,第j主机端口与网关外部第k主机的会话的次数。
具体地,可采用以下公式计算第k主机的第三会话次数:
Sum _ 21 = &Sigma; i = p p + s Count _ tuple 2 [ i ] [ k ]
其中,Sum_21为第k主机的第三会话次数,Count_tuple2[i][k]为第i子窗口中第k主机的会话次数,该处的子窗口与计算第一会话次数和第二会话次数中的子窗口一致。
在得到Sum_21后,判断Sum_21与预设的第二攻击判定阈值L的大小关系,其中,第二攻击判定阈值L为外部访问攻击判定阈值,当外部具体某一台主机在观测窗口内,会话次数超过该阈值时,确定该外部主机是攻击源之一,当Sum_11>K且Sum_21>L时,第二确定模块确定第j主机端口的攻击源为第k主机,当Sum_11≤K且Sum_21>L时,第三确定模块确定第k主机正在发起DOS攻击。
采用该优选实施例,能够在识别DDOS攻击的基础上进一步识别攻击源,从而能够在确定攻击源后实施控制措施,以有效的挫败DDOS攻击。
进一步优选地,在识别网关外部主机是否为攻击源时,也采用基于滑动窗口的技术,其观测窗口与DDOS识别的观测窗口相同,因此,该识别装置还包括第四计算模块,用于在第一时间窗口结束后,观测窗口向后移动预设步长,计算第二时间窗口中第j主机端口与网关的外部的第k主机的会话次数,以得到第四会话次数。
优选地,可根据第三会话次数计算第四会话次数,具体地,采用以下公式计算:
Sum _ 22 = Sum _ 21 - &Sigma; i = p p + x - 1 Count _ tuple 2 [ i ] [ k ] + &Sigma; i = p + s + 1 p + s + x Count _ tuple 2 [ i ] [ k ]
其中,Sum_22为第k主机的第四会话次数。
同样,在得到Sum_22后,判断Sum_22与L的大小关系,当Sum_11>K且Sum_22>L时,确定第j主机端口的攻击源为第k主机,当Sum_11≤K且Sum_22>L时,确定第k主机正在发起DOS攻击。
优选地,第一计算模块包括接收子模块、第一判断子模块、确定子模块、计数子模块和计算子模块。
其中,接收子模块用于网关接收会话的报文;第一判断子模块用于判断接收到的报文是否属于网关已创建的会话;确定子模块用于当接收到的报文不属于网关已创建的会话时,创建新会话,并确定接收到的报文所属的会话是网关内部哪个主机端口的会话;计数子模块用于当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加1,其中,当接收到的报文到达网关的时间在第i子窗口内时,计数值为在第i子窗口中第j主机端口当前的会话次数;计算子模块用于获取第一时间窗口内各子窗口中第j主机端口的会话次数计算Sum_11。
优选地,该第一计算模块还包括第二判断子模块,用于判断接收到的报文是否为网关外到网关内的报文,具体地,可通过判断接收到的报文的目的IP是否为网关内IP进行判断,其中,当报文为网关外到网关内的报文时,第一判断子模块进行判断,否则接收子模块接收新的报文。
优选地,判断子模块通过Bloom Filter判断接收到的报文是否属于网关已创建的会话。具体地,通过Bloom Filter判断接收到的报文是否属于网关已创建的会话的方式如上文中的步骤S2021至步骤S2023,此处不再赘述。
优选地,确定子模块和计数子模块通过计数型Bloom Filter判断接收到的报文所属的会话是网关内部哪个主机端口的会话,并当确定的主机端口是第j主机端口时,将接收到的报文对应的子窗口的计数值加1,具体地,该优选实施例的实现方式如上文中步骤S2031至步骤S2033,此处不再赘述。
优选地,第三计算模块也可通过计数型Bloom Filter进行会话次数的计数,首先创建计数型Bloom Filter组(CBFS2),该组中包括s+1个计数型Bloom Filter,也即CBFS2[0]、CBFS2[1]、…、CBFS2[s],各Bloom Filter分别与一个观测窗口中的各个子窗口对应,例如CBFS2[0]与观测窗口中的首个子窗口对应,CBFS2[1]与观测窗口中的第二个子窗口对应,以此类推,CBFS2[s]与观测窗口中的最后一个子窗口对应,各个计数型BloomFilter分别对会话的协议类型、源IP、目的IP和目的端口构成的四元组计数,同样的四元组信息在计数型Bloom Filter中出现一次,计数型Bloom Filter对该四元组信息进行一次计数。
其次,第三计算模块可通过如下的方式实现(为了便于说明和区别,将该处的计数型Bloom Filter组描述为第二计数型Bloom Filter组):
第三计算模块在第二计数型Bloom Filter组中,获取与新会话对应的第二计数型Bloom Filter,得到第二判定计数型Bloom Filter,当接收到的报文到达网关的时间在第i子窗口内时,与新会话对应的第二计数型Bloom Filter是与第i子窗口对应的第二计数型Bloom Filter。
第三计算模块获取新会话的四元组,得到判定四元组。
第二判定计数型Bloom Filter根据判定四元组计数,也即,当判定四元组在第二判断计数型Bloom Filter中是第N次出现时,第二判定计数型Bloom Filter对该四元组的计数为N,也即,相同会话协议、相同源IP、相同目的IP和相同目的端口的会话已产生N次。
为了随着观测窗口的滑动实时更新第二计数型Bloom Filter组的信息,当第一时间窗口结束时,第三计算模块还用于更新第二计数型Bloom Filter组,其中,更新第二计数型Bloom Filter组包括:丢弃观测窗口滑动后移出的子窗口对应的计数型BloomFilter,增加观测窗口移动后移入的子窗口对应的计数型Bloom Filter,并对增加的Bloom Filter进行初始化,例如,滑动前的观测窗口由第p子窗口至第p+s子窗口组成,观测窗口向后移动x个子窗口,滑动后的观测窗口由第p+x子窗口至第p+x+s子窗口组成,则丢弃第p至第p+x-1子窗口对应的第二计数型Bloom Filter,增加与第p+s+1至第p+s+x子窗口对应的第二计数型Bloom Filter。
图6是根据本发明实施例的防火墙的示意图,该实施例的防火墙设置于企业与外网连接的边界处,该防火墙包括上述任意一种DDOS攻击的识别装置。当防火墙开启防DDOS功能时,内部服务器A开启80端口,向外提供Web服务。外部主机可以通过防火墙经过边界路由访问内部服务器A的80端口,获取Web服务。防火墙内部会记录服务器A所建立的每一个会话,并判断服务器A是否遭受DDOS攻击,对外部访问的每一台主机判断是否为潜在攻击源;由于DDOS是一个持续的过程,因此可以在很短的时间窗口内,实现DDOS攻击的溯源,譬如在本例中,当服务器A遭受DDOS攻击时,攻击者1和攻击者k可以被很快定位,并采取适当的措施(如阻断),从而使服务器A受到保护。
从以上的描述中,可以看出,本发明实现了如下技术效果:通过滑动观测窗口技术实现数据流量监控,可以有效地利用时间序列,无需详细记录全流量信息;同时,滑动窗口的大小能够限定内存空间资源,使得资源占用小;在窗口滑动后,只需计算滑动后新的子窗口中的会话次数便可得到新观测窗口中的会话次数,以较小的计算代价,获取了详细的历史连接信息,使DDOS攻击判断更接近实际网络状况,降低高速网络环境中识别DDOS攻击的误差。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

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攻击的识别方法,其特征在于,计算所述第一会话次数包括:
步骤S11:所述网关接收会话的报文;
步骤S12:判断所述接收到的报文是否属于所述网关已创建的会话;
步骤S13:当所述接收到的报文不属于所述网关已创建的会话时,创建新会话,并确定所述接收到的报文所属的会话是所述网关内部哪个主机端口的会话;
步骤S14:当确定的主机端口是所述第j主机端口时,将所述接收到的报文对应的子窗口的计数值加1,其中,当所述接收到的报文到达所述网关的时间在所述第i子窗口内时,所述计数值为在所述第i子窗口中所述第j主机端口当前的会话次数;
步骤S15:判断所述第一时间窗口是否结束时,如果未结束返回所述步骤S11,如果结束执行所述步骤S16;
步骤S16:获取所述第一时间窗口内各子窗口中所述第j主机端口的会话次数计算所述第一会话次数。
3.根据权利要求2所述的DDOS攻击的识别方法,其特征在于,在所述步骤S12中,通过Bloom Filter判断所述接收到的报文是否属于所述网关已创建的会话。
4.根据权利要求3所述的DDOS攻击的识别方法,其特征在于,所述步骤S12包括:
在Bloom Filter组中,获取与所述接收到的报文对应的Bloom Filter,得到判定Bloom Filter,其中,所述Bloom Filter组由s+1个Bloom Filter组成,所述BloomFilter用于对报文的五元组计数,所述五元组包括报文的协议类型、源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子窗口对应的Bloom Filter,并对增加的Bloom Filter进行初始化。
6.根据权利要求2所述的DDOS攻击的识别方法,其特征在于,在所述步骤S12之前,计算所述第一时间窗口中所述第j主机端口的会话次数还包括:
步骤S17:判断所述接收到的报文是否为所述网关外到所述网关内的报文,其中,当所述报文为所述网关外到所述网关内的报文时,执行步骤所述S12,当所述报文为所述网关内到所述网关外的报文时,执行所述步骤S11。
7.根据权利要求2所述的DDOS攻击的识别方法,其特征在于,在所述步骤S13和所述步骤S14中,通过计数型Bloom Filter判断所述接收到的报文所属的会话是所述网关内部哪个主机端口的会话,并当确定的主机端口是所述第j主机端口时,将所述接收到的报文对应的子窗口的计数值加1。
8.根据权利要求7所述的DDOS攻击的识别方法,其特征在于,所述步骤S13和所述步骤S14包括:
在第一计数型Bloom Filter组中,获取与所述新会话对应的第一计数型BloomFilter,得到第一判定计数型Bloom Filter,其中,所述第一计数型Bloom Filter组由s+1个第一计数型Bloom Filter组成,所述第一计数型Bloom Filter用于对会话的三元组计数,所述三元组包括会话的协议类型、目的IP、目的端口,所述第一计数型Bloom Filter组中的各第一计数型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主机端口时,将所述接收到的报文对应的子窗口的计数值加1。
15.根据权利要求11至14中任一项所述的DDOS攻击的识别装置,其特征在于,所述装置还包括:
第三计算模块,用于计算所述第一时间窗口中所述第j主机端口与所述网关的外部的第k主机的会话次数,以得到第三会话次数,其中,所述第三会话次数为所述第一时间窗口中所有子窗口中所述第j主机端口与所述第k主机的会话次数的和;
第二确定模块,用于当所述第一会话次数大于K且所述第三会话次数大于L时,确定所述第j主机端口的攻击源为所述第k主机,其中,L为预设的第二攻击判定阈值;以及
第三确定模块,用于当所述第一会话次数小于或等于K且所述第三会话次数大于L时,确定所述第k主机正在发起DOS攻击。
16.一种防火墙,其特征在于,所述防火墙包括权利要求11至15中任一项所述的DDOS攻击的识别装置。
CN201210572156.8A 2012-12-25 2012-12-25 Ddos攻击的识别方法和识别装置及防火墙 Active CN103001972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210572156.8A CN103001972B (zh) 2012-12-25 2012-12-25 Ddos攻击的识别方法和识别装置及防火墙

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210572156.8A CN103001972B (zh) 2012-12-25 2012-12-25 Ddos攻击的识别方法和识别装置及防火墙

Publications (2)

Publication Number Publication Date
CN103001972A true CN103001972A (zh) 2013-03-27
CN103001972B CN103001972B (zh) 2015-11-25

Family

ID=47930116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210572156.8A Active CN103001972B (zh) 2012-12-25 2012-12-25 Ddos攻击的识别方法和识别装置及防火墙

Country Status (1)

Country Link
CN (1) CN103001972B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104125242A (zh) * 2014-08-18 2014-10-29 北京阅联信息技术有限公司 识别伪装ldns请求的ddos攻击的防护方法及装置
CN106027546A (zh) * 2016-06-28 2016-10-12 华为技术有限公司 网络攻击的检测方法、装置及系统
WO2016188294A1 (zh) * 2015-05-28 2016-12-01 阿里巴巴集团控股有限公司 一种网络攻击处理方法和装置
CN106293889A (zh) * 2015-06-05 2017-01-04 北京国双科技有限公司 一种控制滑动窗口移动的方法及装置
CN107454052A (zh) * 2016-05-31 2017-12-08 华为技术有限公司 网络攻击检测方法以及攻击检测装置
CN111669359A (zh) * 2019-03-09 2020-09-15 深圳市锐速云计算有限公司 一种新型网络攻击处理方法及装置
CN111818049A (zh) * 2020-07-08 2020-10-23 宝牧科技(天津)有限公司 一种基于马尔可夫模型的僵尸网络流量检测方法及系统
CN112751869A (zh) * 2020-12-31 2021-05-04 中国人民解放军战略支援部队航天工程大学 基于滑动窗口群的网络异常流量检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101388885A (zh) * 2008-07-23 2009-03-18 成都市华为赛门铁克科技有限公司 分布式拒绝服务攻击的检测方法和系统
CN101459677A (zh) * 2009-01-09 2009-06-17 北京邮电大学 一种sip消息洪泛攻击的检测装置和检测方法
CN101753381A (zh) * 2009-12-25 2010-06-23 华中科技大学 一种检测网络攻击行为的方法
CN102014031A (zh) * 2010-12-31 2011-04-13 湖南神州祥网科技有限公司 一种网络流量异常检测方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101388885A (zh) * 2008-07-23 2009-03-18 成都市华为赛门铁克科技有限公司 分布式拒绝服务攻击的检测方法和系统
CN101459677A (zh) * 2009-01-09 2009-06-17 北京邮电大学 一种sip消息洪泛攻击的检测装置和检测方法
CN101753381A (zh) * 2009-12-25 2010-06-23 华中科技大学 一种检测网络攻击行为的方法
CN102014031A (zh) * 2010-12-31 2011-04-13 湖南神州祥网科技有限公司 一种网络流量异常检测方法及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104125242A (zh) * 2014-08-18 2014-10-29 北京阅联信息技术有限公司 识别伪装ldns请求的ddos攻击的防护方法及装置
WO2016188294A1 (zh) * 2015-05-28 2016-12-01 阿里巴巴集团控股有限公司 一种网络攻击处理方法和装置
CN106302347A (zh) * 2015-05-28 2017-01-04 阿里巴巴集团控股有限公司 一种网络攻击处理方法和装置
CN106302347B (zh) * 2015-05-28 2019-11-05 阿里巴巴集团控股有限公司 一种网络攻击处理方法和装置
CN106293889A (zh) * 2015-06-05 2017-01-04 北京国双科技有限公司 一种控制滑动窗口移动的方法及装置
CN106293889B (zh) * 2015-06-05 2019-11-19 北京国双科技有限公司 一种控制滑动窗口移动的方法及装置
CN107454052A (zh) * 2016-05-31 2017-12-08 华为技术有限公司 网络攻击检测方法以及攻击检测装置
CN106027546A (zh) * 2016-06-28 2016-10-12 华为技术有限公司 网络攻击的检测方法、装置及系统
CN111669359A (zh) * 2019-03-09 2020-09-15 深圳市锐速云计算有限公司 一种新型网络攻击处理方法及装置
CN111818049A (zh) * 2020-07-08 2020-10-23 宝牧科技(天津)有限公司 一种基于马尔可夫模型的僵尸网络流量检测方法及系统
CN112751869A (zh) * 2020-12-31 2021-05-04 中国人民解放军战略支援部队航天工程大学 基于滑动窗口群的网络异常流量检测方法及装置
CN112751869B (zh) * 2020-12-31 2023-07-14 中国人民解放军战略支援部队航天工程大学 基于滑动窗口群的网络异常流量检测方法及装置

Also Published As

Publication number Publication date
CN103001972B (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN103001972B (zh) Ddos攻击的识别方法和识别装置及防火墙
Roschke et al. A new alert correlation algorithm based on attack graph
CN106506242B (zh) 一种网络异常行为和流量监测的精确定位方法与系统
CN109600363A (zh) 一种物联网终端网络画像及异常网络访问行为检测方法
US10701076B2 (en) Network management device at network edge for INS intrusion detection based on adjustable blacklisted sources
CN104734916B (zh) 一种基于tcp协议的高效多级异常流量检测方法
CN107454039B (zh) 网络攻击检测系统、方法和计算机可读存储介质
CN110138788A (zh) 一种基于深度指标的脆弱性攻击代价定量评估方法
CN103139166A (zh) 基于小信号检测理论的LDoS攻击检测方法
Yan et al. Low-rate dos attack detection based on improved logistic regression
Chen et al. DDoS attack detection method based on network abnormal behaviour in big data environment
CN100379201C (zh) 可控计算机网络的分布式黑客追踪的方法
Ran et al. Defending saturation attacks on SDN controller: A confusable instance analysis-based algorithm
CN107864110A (zh) 僵尸网络主控端检测方法和装置
KR20170054215A (ko) 넷플로우 기반 연결 핑거프린트 생성 및 경유지 역추적 방법
CN103501302A (zh) 一种蠕虫特征自动提取的方法及系统
CN106375351B (zh) 一种异常域名检测的方法及装置
Moustafa et al. RCNF: Real-time collaborative network forensic scheme for evidence analysis
CN108494791A (zh) 一种基于Netflow日志数据的DDOS攻击检测方法及装置
CN117375942A (zh) 基于节点清洗防范DDoS攻击的方法及装置
Zali et al. Real-time intrusion detection alert correlation and attack scenario extraction based on the prerequisite-consequence approach
CN106817268B (zh) 一种ddos攻击的检测方法及系统
Aparicio-Navarro et al. An on-line wireless attack detection system using multi-layer data fusion
KR100656340B1 (ko) 비정상 트래픽 정보 분석 장치 및 그 방법
Zheng et al. Segment detection algorithm: CAN bus intrusion detection based on bit constraint

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 215163 Jiangsu city of Suzhou province high tech Industrial Development Zone, kolding Road No. 78 Su Gaoxin Software Park Building 7 layer 3

Applicant after: HILLSTONE NETWORKS

Address before: 215163 Jiangsu city of Suzhou province high tech Zone (Suzhou city) kolding Road No. 78 Gaoxin Software Park Building 7 floor 3

Applicant before: Suzhou Shanshi Network Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SUZHOU SHANSHI NETWORK CO., LTD. TO: HILLSTONE NETWORKS COMMUNICATION TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160824

Address after: 100083 Beijing city Haidian District Wangzhuang Road No. 1 Building No. 4 hospital (Tsinghua Tongfang Technology Plaza, D block 6 layer 0615)

Patentee after: BEIJING HILLSTONE NETWORKS INFORMATION TECHNOLOGY CO., LTD.

Address before: 215163 Jiangsu city of Suzhou province high tech Industrial Development Zone, kolding Road No. 78 Su Gaoxin Software Park Building 7 layer 3

Patentee before: HILLSTONE NETWORKS

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220113

Address after: 100192 room 101-01, 5 / F, 20 / F, yard 1, Baosheng South Road, Haidian District, Beijing

Patentee after: BEIJING HILLSTONE NETWORKS INFORMATION TECHNOLOGY Co.,Ltd.

Patentee after: Jingyi Zhiyuan (Wuhan) Information Technology Co., Ltd;

Address before: 100083 0615, 6th floor, building 4, No.1 courtyard, Wangzhuang Road, Haidian District, Beijing

Patentee before: BEIJING HILLSTONE NETWORKS INFORMATION TECHNOLOGY Co.,Ltd.