网络中心主页 专题网 北财社区 网络中心博客
当前位置:主页>IPV6技术专题>技术文献>

IPv6分片重组在入侵检测系统中的实现


  Web技术推动因特网以惊人的速度发展。10年前,关注未来因特网扩展性能的人们就开始担心IPv4网络本身的局限性将难以支撑因特网的持续发展。为此IETF推出了新一代因特网协议——IPv6。与IPv4相比,IPv6提供了许多全新的特性,如地址空间扩展、安全性设置以及自动配置等。
  
  IPv6的发展得到众多设备制造商的支持,甚至提高到国家层面来开展基于IPv6的研究和部署。美国国防部的IPv6部署进度表显示:2005-2007年,IPv6和IPv4协议共同运行;2008年实现美国本土全面的IPv6计划。欧洲和日、韩在IPv6相关领域也展开了大量研究,各种实验网和试验性商用IPv6网纷纷开通。200陴年3月,我国第一个下一代因特网主干网——CERNET2正式开通并提供服务,成为目前世界上规模最大的IPv6国家主干网。
  
  随着IPv6的逐渐普及,针对下一代因特网的安全防范问题也被提到议事日程上来。本项目正是基于这一考虑而开展的。受国家计算机网络与信息安全中心委托,本项目主要进行基于IPv6骨干网的入侵检测技术研究,为IPv6时代的国家计算机网络信息安全研究做技术储备。
  
  本文将就IP分片攻击在IPv6中的表现形式、IPv6的分片重组机制以及如何防范IPv6的分片攻击展开详细的讨论。
  
  一、IP分片攻击在IPv6中的表现形式
  
  总的来说,在IPv4下的所有分片攻击都能在IPv6中重现,只是在实现的具体机制上有所不同。
  
  当需要传输的IP数据包超过链路所能支持的最大传输单元(MTU)时,一个原始IP数据包将被拆分成多个分片包;当属于同一个原始IP数据包的分片包到达目的节点之后,由目的节点完成分片包的重组。与IPv4不同的是IPv6的分片操作只能在源节点进行,而前者在沿途的中间节点(如中间路由器)上也可以进行。IP分片包可以独立地通过不同的路径转发,到达目的节点的顺序也不一定能保持从源节点出发时的顺序。由于目标系统能够完成IP分片数据包的重组,因此网络入侵检测系统也必须具备对IP分片数据包重组的能力,否则将不能正确检测通过IP分片方式进入受保护网络的攻击数据。
  
  IP分片攻击在IPv6下的表现形式与在IPv4下相似。首先是攻击者故意打乱IP分片包到达目的节点的顺序。如果入侵检测系统以为IP分片包总是严格按照分片顺序到达,那么在重组的过程中就不能正确识别各个分片包的先后顺序,会造成对攻击数据漏报。
  
  其次是分片包缓冲处理机制问题。在属于同一个原始IP数据包的所有分片包到齐之前,入侵检测系统必须将所有先期到达的分片包放到一个缓冲区中。分片攻击机可能通过故意不发送属于同一个原始IP数据包的一个分片包或者故意发送多个分片包,造成入侵检测系统的IP分片重组模块因为消耗掉所有内存而遗漏攻击数据甚至崩溃。
  
  第三种情况是IP分片包重叠问题,这也是最难处理的一个问题。无论是在IPv4还是IPv6网络中,分片包都有一个类似于分片偏移量(fragment offset)的域来标志每个分片包在原始数据包中的偏移量,故意构造错误的分片包偏移量就能造成分片包的重叠。解决这个问题的第一种策略是完整保留后期到达的分片包,让后期到达的分片包覆盖先期到达分片包的重叠区域;第二种策略是完整保留先期到达的分片包,而仅仅部分采用后到达的分片包数据以消除重叠,不同系统的主机和不同的入侵检测系统可能会采取不同的取舍策略。分片包重叠的直接后果就是使入侵检测系统陷入取前还是取后的两难境地。因为无论采取何种策略,都有可能造成入侵检测系统因为与被保护网络的主机采取不同的丢弃策略而造成对攻击数据漏报。
  
  二、IPv6分片及其重组机制
  
  与IPv4不同,IPv6的包分片操作只能在源节点进行,这简化了中间节点对包的处理,有利于提高中间节点的包转发速率;IPv6的分片重组操作则与IPv4一样,也是在目的节点进行。通过使用路径最大传输单元(MTU)发现机制,源节点可以确定其到目的节点之间的整个路径中能够传送的最大包长度,从而可以避免在中间节点进行分片处理。IPv6规范中要求最大传输单元的值至少为1280 byte,并建议将链路配置为至少可以传送包长为1500byte的包。
  
  IPv6规范建议在发送任意长度的包之前,必须检查由源节点到目的节点的路径,计算出可以无需中间节点分片而发送的最大包长度,也就是获得路径最大传输单元。当需要传输的数据包长度超过路径最大传输单元时,源节点就实施分片操作,而目的节点将两个或者多个分片包重组成分片包前的数据包。
  
  从数据包分片的角度看,一个完整的IPv6数据包可以分成不可分片部分(unfragmentable part)和可分片部分(fragmentable part)。
  
  不可分片部分包括原始数据包的IPv6基本头和每个分片包中必须携带的三种可能出现的IPv6扩展头。这三种可能出现的IPv6扩展头分别是:逐跳扩展头(hop-by-hop header)、目的地选项扩展头(destination options header)和路由扩展头(routing header)。这三种扩展头如果在原始数据包中出现,每个分片头中都必须携带该扩展头。
  
  可分片部分包括可能出现的其他IPv6扩展头和数据载荷部分。这里所谓的其他扩展头是指除了必须包含在不可分片部分的三种扩展头之外的所有其他类型的扩展头,例如认证扩展头(authentication header)、封装安全载荷扩展头(encapsulating security payload header)等。
  
  不可分片部分必须出现在每个分片包中,而可分片部分则被切成两个或者两个以上的部分出现在不同的分片包中,这些分片包拥有相同的分片标志,但是分片偏移量各不相同。因此对于每一个分片包,必须包含三个部分,依次是原始数据包的不可分片部分、分片扩展头(fragment header)、原始数据包的可分片部分的某一个分片。
  
  1.IPv6分片扩展头
  
  根据RFC24603,IPv6分片扩展头的格式如图1所示。
  
  Web技术推动因特网以惊人的速度发展。10年前,关注未来因特网扩展性能的人们就开始担心IPv4网络本身的局限性将难以支撑因特网的持续发展。为此IETF推出了新一代因特网协议——IPv6。与IPv4相比,IPv6提供了许多全新的特性,如地址空间扩展、安全性设置以及自动配置等。
  
  IPv6的发展得到众多设备制造商的支持,甚至提高到国家层面来开展基于IPv6的研究和部署。美国国防部的IPv6部署进度表显示:2005-2007年,IPv6和IPv4协议共同运行;2008年实现美国本土全面的IPv6计划。欧洲和日、韩在IPv6相关领域也展开了大量研究,各种实验网和试验性商用IPv6网纷纷开通。200陴年3月,我国第一个下一代因特网主干网——CERNET2正式开通并提供服务,成为目前世界上规模最大的IPv6国家主干网。
  
  随着IPv6的逐渐普及,针对下一代因特网的安全防范问题也被提到议事日程上来。本项目正是基于这一考虑而开展的。受国家计算机网络与信息安全中心委托,本项目主要进行基于IPv6骨干网的入侵检测技术研究,为IPv6时代的国家计算机网络信息安全研究做技术储备。 北京财经专修学院
  
  本文将就IP分片攻击在IPv6中的表现形式、IPv6的分片重组机制以及如何防范IPv6的分片攻击展开详细的讨论。
  
  一、IP分片攻击在IPv6中的表现形式
  
  总的来说,在IPv4下的所有分片攻击都能在IPv6中重现,只是在实现的具体机制上有所不同。
  
  当需要传输的IP数据包超过链路所能支持的最大传输单元(MTU)时,一个原始IP数据包将被拆分成多个分片包;当属于同一个原始IP数据包的分片包到达目的节点之后,由目的节点完成分片包的重组。与IPv4不同的是IPv6的分片操作只能在源节点进行,而前者在沿途的中间节点(如中间路由器)上也可以进行。IP分片包可以独立地通过不同的路径转发,到达目的节点的顺序也不一定能保持从源节点出发时的顺序。由于目标系统能够完成IP分片数据包的重组,因此网络入侵检测系统也必须具备对IP分片数据包重组的能力,否则将不能正确检测通过IP分片方式进入受保护网络的攻击数据。 北京财经专修学院
  
  IP分片攻击在IPv6下的表现形式与在IPv4下相似。首先是攻击者故意打乱IP分片包到达目的节点的顺序。如果入侵检测系统以为IP分片包总是严格按照分片顺序到达,那么在重组的过程中就不能正确识别各个分片包的先后顺序,会造成对攻击数据漏报。
  
  其次是分片包缓冲处理机制问题。在属于同一个原始IP数据包的所有分片包到齐之前,入侵检测系统必须将所有先期到达的分片包放到一个缓冲区中。分片攻击机可能通过故意不发送属于同一个原始IP数据包的一个分片包或者故意发送多个分片包,造成入侵检测系统的IP分片重组模块因为消耗掉所有内存而遗漏攻击数据甚至崩溃。
  
  第三种情况是IP分片包重叠问题,这也是最难处理的一个问题。无论是在IPv4还是IPv6网络中,分片包都有一个类似于分片偏移量(fragment offset)的域来标志每个分片包在原始数据包中的偏移量,故意构造错误的分片包偏移量就能造成分片包的重叠。解决这个问题的第一种策略是完整保留后期到达的分片包,让后期到达的分片包覆盖先期到达分片包的重叠区域;第二种策略是完整保留先期到达的分片包,而仅仅部分采用后到达的分片包数据以消除重叠,不同系统的主机和不同的入侵检测系统可能会采取不同的取舍策略。分片包重叠的直接后果就是使入侵检测系统陷入取前还是取后的两难境地。因为无论采取何种策略,都有可能造成入侵检测系统因为与被保护网络的主机采取不同的丢弃策略而造成对攻击数据漏报。
Beicai NIC

  
  二、IPv6分片及其重组机制
  
  与IPv4不同,IPv6的包分片操作只能在源节点进行,这简化了中间节点对包的处理,有利于提高中间节点的包转发速率;IPv6的分片重组操作则与IPv4一样,也是在目的节点进行。通过使用路径最大传输单元(MTU)发现机制,源节点可以确定其到目的节点之间的整个路径中能够传送的最大包长度,从而可以避免在中间节点进行分片处理。IPv6规范中要求最大传输单元的值至少为1280 byte,并建议将链路配置为至少可以传送包长为1500byte的包。
  
  IPv6规范建议在发送任意长度的包之前,必须检查由源节点到目的节点的路径,计算出可以无需中间节点分片而发送的最大包长度,也就是获得路径最大传输单元。当需要传输的数据包长度超过路径最大传输单元时,源节点就实施分片操作,而目的节点将两个或者多个分片包重组成分片包前的数据包。 Beicai NIC
  
  从数据包分片的角度看,一个完整的IPv6数据包可以分成不可分片部分(unfragmentable part)和可分片部分(fragmentable part)。
  
  不可分片部分包括原始数据包的IPv6基本头和每个分片包中必须携带的三种可能出现的IPv6扩展头。这三种可能出现的IPv6扩展头分别是:逐跳扩展头(hop-by-hop header)、目的地选项扩展头(destination options header)和路由扩展头(routing header)。这三种扩展头如果在原始数据包中出现,每个分片头中都必须携带该扩展头。
  
  可分片部分包括可能出现的其他IPv6扩展头和数据载荷部分。这里所谓的其他扩展头是指除了必须包含在不可分片部分的三种扩展头之外的所有其他类型的扩展头,例如认证扩展头(authentication header)、封装安全载荷扩展头(encapsulating security payload header)等。
  
  不可分片部分必须出现在每个分片包中,而可分片部分则被切成两个或者两个以上的部分出现在不同的分片包中,这些分片包拥有相同的分片标志,但是分片偏移量各不相同。因此对于每一个分片包,必须包含三个部分,依次是原始数据包的不可分片部分、分片扩展头(fragment header)、原始数据包的可分片部分的某一个分片。 www.beicai.com
  
  1.IPv6分片扩展头
  
  根据RFC24603,IPv6分片扩展头的格式如图1所示。
  
【责任编辑:Long】 【打印】 【关闭