防ip数据报分片攻击的方法

文档序号:7773667阅读:940来源:国知局
专利名称:防ip数据报分片攻击的方法
技术领域
本发明涉及计算机网络安全技术领域,特别涉及一种防IP数据报分片攻击的方法。
背景技术
最大传输单元(Maximum Transmission Unit,MTU)是数据链路层的协议数据单元 (Protocol Data Unit,PDU),也就是帧的大小。对最常见的以太网而言,采用的是数据链路层协议是基于IEEE802. 2/802. 3,以太网帧中的数据(有效)字段的长度范围是46 1500 个字节。这个1500就是以太网的MTU。当链路层的上层协议,比如IP协议所要传输的IP 数据报(包括IP Header)大小超过这个长度范围时,IP数据报就必须分成多片传输,并在目标系统中进行重组。这个过程就是分片(Fragmentation),其中分割出来的每一个片断就是一个分片或分片报文Fragment。由此可以看出,IP数据报分片在网络环境中是经常发生的事件。但是,如果经过人为的恶意操作的分片,将会导致拒绝服务、攻击或者迂回路由器及防火墙的一种攻击手段。目前针对DOS类型的IP数据报分片攻击,大部分网络设备制造商的处理方法大致分为以下两种类型现有技术一设置阈值来限制IP数据报的分片报文每秒的流速。现有技术二 利用访问控制列表在网络上禁止IP数据报后续分片包通过。由于IP数据报分片是在网络上传输IP报文时常采用的一种技术手段,IP数据报分片攻击就是利用这点,在你发起大量的IP数据报的分片时,而这些分片之间是毫无关系,或者分片的偏移量是经过调整的。这样主机会消耗大量的CPU来重组这些分片,重组完成之后发现是错误的数据报而又丢弃!如果这种数据报较多,系统就无法处理,导致死机!若采用上述现有技术一的手段,设置阈值来限制IP数据报的分片报文每秒的流速,可以将阈值外的流量丢弃,但无法识别通过、丢弃的分片报文的合法性和完整性;若采用上述现有技术二的手段,利用访问控制列表可以在网络上放行初始分片包而拒绝后续分片包,但是这种方式无法对正常的分片报文进行正确识别.通过上面说明可以看出现有技术只是对IP数据报的分片报文在通过网络设备的过程中定义了开关或者是限流进行IP数据报的分片报文的控制,但是并没有对IP数据报的分片报文的合法性、完整性进行检测,这样无法做到从根本上阻止IP数据报的分片报文的攻击。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是如何防止IP数据报的分片报文对网络设备的攻击。(二)技术方案
为解决上述技术问题,本发明提供了一种防IP数据报分片攻击的方法,对接收到的IP数据报的分片报文在达对应的处理模块之前进行临时重组,在临时重组过程中,若属于同一 IP数据报的分片报文数超出分片阈值,则丢弃该IP数据报。其中,对所述IP数据报的分片报文进行临时重组的步骤包括将所述IP数据报的分片报文暂存在缓存中,根据所述分片报文的五元组对分片报文进行分流,并对每个分片报文添加标签以识别不同的流,对分流和添加标签后的分片报文进行重组。其中,所述分流的方式如下利用分片报文五元组中的上层协议进行分离,分离后对分片报文的五元组中的源地址、目的地址、源端口、目的端口进行hash运算,利用每个分片报文的hash值为标签标示该分片报文,标签相同的分片报文分为同一个流。其中,在临时重组前还包括将所述IP数据报的分片报文与攻击检测中的特征码进行匹配,若有分片报文与所述特征码匹配,则将所述IP数据报丢弃。其中,若所述缓存中的等待重组的IP数据报大于包阈值,则将后续IP数据报的分片报文存储在队列中。其中,当在预定时间内未接收到IP数据报的最后一个分片报文,则丢弃已接收的该IP数据报的所有分片报文。(三)有益效果本发明的防IP数据报分片攻击的方法通过将各个IP数据报的分片报文存储在一个高速缓存中并临时重组这些分片报文,从而检测IP数据报的完整性,同时还将分片报文与攻击检测中的特征码对比,以检查分片报文的合法性,因此更有效地防止了 IP数据报分片攻击。


图1是本发明实施例的一种防IP数据报分片攻击的方法流程图;图2是图1中临时重组检测时的流程图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。本实施例中以防火墙执行本发明方法为例进行说明,为了避免防火墙(其它网络设备类似)每个业务模块(地址转换、访问控制、数据加解密)单独处理IP数据报的分片报文乱序这种情况而导致复杂度过高,防火墙对收到的分片报文进行临时重组(即在防火墙接口收到分片包后交予后续上层业务模块进行重组处理之前,每个接口下定义的缓存空间中进行分片报文的重组)。临时重组过程中对分片报文进行检验、缓存和排序,保证后续业务模块处理的都是完整、正确的分片报文。如图1所示,当防火墙的某个接口接收到数据后,首先判断是否为IP数据报的分片报文,若不为分片报文则按常规方式交给后续模块处理。若为分片报文,则将分片报文存储在高速缓存中。防火墙在内存中为每个接口保留可变的数据报存储空间,临时存储那些等待重组的分片报文。对缓存中的分片报文进行临时重组,通过重组检测数据报的完整性及合法性来确定哪些IP数据报是具有攻击性的IP数据报。临时重组检测方式如图2所示,高速缓存中按分片报文的五元组(源IP、目的IP、 源端口、目的端口、协议)进行hash运算将高速缓存中的分片报文进行分流,根据分片报文加载的上层协议(TCP\UDP)进行分离,分离后的分片报文按照〈源地址、目的地址、源端口、 目的端口 >进行hash运算,由于同一个IP数据报的五元组相同,采用相同的hash运算后得到的hash值也相同,以hash值作为分片报文的标签同时标识唯一的一条流,即一条流中包含的分片报文来自同一个IP数据报。若分流后发现某个IP数据报分片数超过分片阈值 max-fragment,则丢弃该IP数据报,若未超过分片阈值,则对添加标签后的分片报文进行重组,相同标签的分片报文根据标志字段第二位置1和偏移量为0确定报文的第一分片,然后根据标志字段第二位置0确定报文的最后分片,中间的分片根据分片偏移量从小到大一次填充直至分片报文按顺序重组完成,重组完成后交给后续模块处理。优选地,在重组前还包括步骤按接收顺序将IP数据报的分片报文与攻击检测中的特征码(Ping of death、Teardrop、Jolt2、Tiny fragment)进行匹配,若匹配(说明该片段具有攻击性),则将该IP分片报文丢弃。这样提前排除了本身具有攻击性的数据报,能够减少待重组的IP数据报,提高重组效率。为了更好的控制临时重组的过程,本实施例中在虚拟重组功能中还加入另外两个参数。一个参数是等待重组的分片包个数的阈值database-limit。一个参数是同一数据报所有分片超时时间holdtime。这两个参数连同分片阈值max-fragment的具体定义如下1 限定等待重组的分段数PowerAegis(config)#fragment size database-limit默认情况下,防火墙在内存中为每个接口保留200个已分片数据报空间用来临时存储IP分片报文,database-limit的取值范围为1个-30000个数据报。若缓存中的等待重组的数据报大于200,则将后续包的IP分片报文存储在队列中。2 限定每个数据报的分片数PowerAegis(config)#fragment chain max-fragment默认情况下,防火墙在丢弃一个数据报的所有分片前,最多可接收该数据报的M 个分片,max-fragment的取值范围[1-8200]。若每个数据报的IP分片报文数大于对,则丢弃该数据报。3 为数据报的所有部分限制到达时间PowerAegis(config)#fragment timeout holdtime默认情况下,防火墙在分片到达5秒后开始收集片段,如果最后的分片在此时间内还没有到达,所有的分片都将被丢弃,holdtime的取值范围为ls-30s。该参数可以防止某个IP数据报长时间的等待。另外,还可以动态调整虚拟重组参数,如下表所示。可以使用下面的命令监视防火墙的所有虚拟重组的行为。例如,以下输出中显示的防火墙的mgmt接口默认分片设置(数据库大小为200个数据报,流限制为M个分片,超时限制为5秒)。
PowerAegis#show fragment mgmt*--------------------------------------------------------------------
-------*I Interface | mgmtSize :200, Chain :24, Timeout :5,IDS Threshold :152Queue :3, Assemble :331, Fail :895, Overflow :231还可以看到防火墙已处理152个攻击报文,已经重组331个数据报,还有3个在队列中等待重组。另外,重组过程中失败了 895次,这是因为在等待所有分片到达期间超时值过期;上述过程还发生了溢出情况,可以看到231个不同的数据报均出现了多于M个分片的情况。可以根据监视得到的实时数据动态调整上面定义的3个参数的大小,例=Queue排队太多可以调大Size的值;不同链路会有不同大小的报文,以太网(最大MTU为1500字节)最大不超过M个分片;可以自主定义所有分片报文全部到达的容忍时间。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种防IP数据报分片攻击的方法,其特征在于,对接收到的IP数据报的分片报文在达对应的处理模块之前进行临时重组,在临时重组过程中,若属于同一 IP数据报的分片报文数超出分片阈值,则丢弃该IP数据报。
2.如权利要求1所述的防IP数据报分片攻击的方法,其特征在于,对所述IP数据报的分片报文进行临时重组的步骤包括将所述IP数据报的分片报文暂存在缓存中,根据所述分片报文的五元组对分片报文进行分流,并对每个分片报文添加标签以识别不同的流,对分流和添加标签后的分片报文进行重组。
3.如权利要求2所述的防IP数据报分片攻击的方法,其特征在于,所述分流的方式如下利用分片报文五元组中的上层协议进行分离,分离后对分片报文的五元组中的源地址、目的地址、源端口、目的端口进行hash运算,利用每个分片报文的hash值为标签标示该分片报文,标签相同的分片报文分为同一个流。
4.如权利要求1 3中任一项所述的防IP数据报分片攻击的方法,其特征在于,在临时重组前还包括将所述IP数据报的分片报文与攻击检测中的特征码进行匹配,若有分片报文与所述特征码匹配,则将所述IP数据报丢弃。
5.如权利要求1所述的防IP数据报分片攻击的方法,其特征在于,若所述缓存中的等待重组的IP数据报大于包阈值,则将后续IP数据报的分片报文存储在队列中。
6.如权利要求1所述的防IP数据报分片攻击的方法,其特征在于,当在预定时间内未接收到IP数据报的最后一个分片报文,则丢弃已接收的该IP数据报的所有分片报文。
全文摘要
本发明公开了一种防IP数据报分片攻击的方法,涉及网络安全技术领域,该方法对接收到的IP数据报的分片报文在达对应的处理模块之前进行临时重组,在临时重组过程中,若属于同一IP数据报的分片报文数超出分片阈值,则丢弃该IP数据报。本发明通过将各个IP分片报文存储在一个高速缓存中并虚拟重组这些分段,从而可以检测原始的数据报。这使得网络设备可核实每个片段的顺序和完整性,并发现利用片段进行的恶意攻击,更有效地防止了IP分片报文攻击。
文档编号H04L29/06GK102510385SQ20111041331
公开日2012年6月20日 申请日期2011年12月12日 优先权日2011年12月12日
发明者王瑞 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1