论文部分内容阅读
摘要:DoS攻击一直是Internet最主要的威胁。随着Internet的发展,IPv6毫无疑问将代替Internet现在的主要协议IPv4。该论文主要关注IPv6下使用IPSec配置或不使用IPSec的情况下的针对协议的DoS攻击,主要涉及与IPv6邻居发现协议(NDP)相关的DoS攻击。
关键词:IPv6 IPSec;拒绝服务攻击;邻居发现协议;攻击分析
中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)09-2084-02
The Analysis of DoS Attack to NDP under IPv6
HU Yong-bing
(Guangzhou Vocational College of Science and Technology, Guangzhou 510850, China)
Abstract: The DoS attack is always one of the leading threats to the Internet. With the development of Internet, IPv6 is inevitably taking the place of IPv4 as the main protocol of Internet. This paper focus on the DoS attacks under IPv6 and without IPSec configuration or with IPSec, which including the DoS attacks pertinent to IPv6 Neighbor Discovery Protocol.
Key words: IPv6; IPSec; DoS; neighbor discovery protocol; attack analysis
随着Internet的发展,IPv6将作为下一代Internet协议取代IPv4。相应地,IPv6的安全威胁也成为当前研究的主要问题。本篇论文关注IPv6下的DoS攻击,因为DoS一直是Internet的主要威胁。而IPv6下的典型DoS攻击主要涉及IPv6邻居发现协议。
1 邻居发现协议
邻居发现协议[1]是IPv6不可或缺的部分。它主要用来解决相同链路下的节点间的交互相关的一些问题,主要包括以下功能:路由发现、前缀发现、参数发现、地址解析、下一跳确认、邻居不可达检测、重复地址检测与重定向。因为邻居发现和路由发现两个功能具有不同的安全属性,这里将它们分为两个部分进行分析。
1.1 邻居发现功能
地址解析
IPv6节点通过地址解析程序确定一个只给定IP地址的邻居的链路层地址。当一个节点想要与一个只知道链路层地址的邻居通信,它执行地址解析。这是通过向邻居多播一个邻居请求消息实现的。其间,发送方必须包含它的源链路层地址作为源链路层地址选项。一个节点将通过发送一个邻居广播消息来响应目标为这个节点被赋予的地址中的一个的邻居请求,并且目标链路层地址选项将包含在这个消息中。
邻居不可达检测
IPv6节点利用邻居不可达检测程序来跟踪节点正发包所到的邻居的可达状态。一个邻居被认为是可达的,如果节点最新接收到一个最近发送给该邻居的包被接收到的确认。积极确认能通过两种方法收集:一个是高层协议里的提示。详细地讲,如果更高层协议是面向连接的,只有新近发到远端的数据包真正到达远端,从远端发来的数据包才能被接收,比如TCP协议。但是有时这样的可达信息可能在更上层协议中是不容易得到的,因为它们不是面向连接的,比如UDP协议。在这种情况下,节点使用邻居不可达检测来主动探查邻居。这个过程中,节点首先单播邻居请求消息给邻居,然后等待相应的邻居广播消息。如果没有收到响应包,节点可能认为这个邻居是不可达的。反之认为是可达的。
重复地址检测
IPv6节点可以通过两种方法生成全局IPv6地址,一种是手动配置,另外一种是自动配置。后面的一种也能通过无状态机制或状态机制(DHCPv6)。本文集中探讨无状态地址配置[2]。在这个过程中,发送方首先检查它想要的IPv6地址是否已经被另外一个节点在使用,这个检查是通过周期性地多播邻居请求消息来完成的,消息未指定源地址并指向需要被检查地址。如果被检查地址已经被另一个节点使用,这个节点会发送一个邻居广播作为响应。否则,如果没有收到相应的邻居广播,处理节点可以认为被检查地址是可用的。
1.2 路由发现功能
IPv6下的路由器主动或者作为响应发送路由广播消息来广播本地连接参数例如连接MTU、跳数限制等等。
重定向
当IPv6下的路由器发现一个到达指定目标更好的中继节点,就发送重定向消息通知主机。如果ICMP目标地址与ICMP目的地址相同,则说明目的实际上是一个邻居。
2 无IPSec保护的基于邻居发现协议的攻击
2.1 基于邻居发现功能的DoS攻击
重复地址检测攻击
当处理无状态地址自动配置时,一个IPv6节点(受害方)会对一个指定IPv6地址进行重复地址检测。此时,攻击者会伪装成正使用该指定地址的节点响应检测消息,导致受害者不能正常获取IPv6地址。
邻居不可达检测失效
当IPv6节点处理邻居不可达时,攻击方能够通过发送伪造的邻居广播发起这种攻击。邻居实际上不可达的情况下,进行检测的节点可能被欺骗而认为邻居仍然可达。
邻居请求/广播欺骗
这种攻击能导致合法节点的包被发到一些另外的链路层地址去。这种攻击通过发送一个包含不同的源的链路层地址选项的邻居请求或者一个不同目标链路层地址选项的邻居广播实现。
2.2 基于路由发现功能的DoS攻击
缺省路由断开
RFC2461[1]声明如果缺省路由器列表为空,发送方会假设目的是处于连接的。根据这个声明,攻击方能发送一个虚假的路由器寿命为0的路由广播,。当受害方被欺骗后,它将试图直接发送每一个包,而不是通过路由器发送。在目标不在本地链路的情况下,包将不会到达真实的目的。
重定向消息欺骗攻击
这个攻击能够用来把一个给定目的的包发送到链路上的任何一个链路层地址。攻击方使用当前第一跳路由的链接本地地址以向合法主机发送一个重定向消息。由于主机通过链接本地地址来鉴别消息来自它的第一跳路由,所以它接受了重定向。只要响应邻居不可达检测的攻击方探查链路层地址,发到该目的的包就会被重定向。
伪造On-Link前缀攻击
攻击方通过发送一个指定一些任意长度的前缀为在线状态的路由广播消息实现这种攻击。如果受害方认为这些前缀在线,它将不会把这些前缀的包发送给路由器。相反,它将试图通过发送邻居请求进行地址解析,但是邻居请求将不会有响应,从而拒绝为被攻击主机提供服务。
伪造地址配置前缀攻击
这个攻击通过发送一个路由广播消息实现,该路由广播消息指定一个无效的被用到一个主机进行地址自动配置的子网前缀。受害方将使用这个被广播的前缀执行地址自动配置算法构造一个地址[3],即使那个地址对于子网是无效的。结果,返回包将不能到达主机因为主机源地址无效。
恶意最后一跳路由
攻击方可以通过主动或者作为响应多播看起来合法的IPv6路由广播来冒充成一个IPv6最后一跳路由。如果进入的主机选择攻击方作为它的缺省路由,攻击方可以从主机提取流量。
参数欺骗攻击
IPv6广播包含许多参数,这些参数在主机发送包时被使用,这些参数也可以告诉主机是否应当进行状态地址配置[1]。攻击方可以发出一个看起来有效的路由广播来打断合法流量,该路由广播复制合法缺省路由的路由广播,除了包含参数的部分。
3 IPSec保护下的基于邻居发现协议的DoS攻击
IPSec [4]由IETF设计来为IPv4和IPv6提供能共同使用的、高质量的、基于加密的安全性。这套安全服务提供包括访问控制、无连接完整性、数据源认证、反重播保护、保密性和有限的业务流保密性。IPSec在IPv4中是可选的但是在IPv6的实现中必须被支持。它为IPv6提供了一定的保护。
3.1 没有源地址欺骗的DoS攻击
一般情况下,攻击者总是用源地址欺骗发起DoS攻击,但是也有可能使用真实身份进行攻击或者控制大量的傀儡主机直接进行攻击。这些攻击存在很大的检测难度,而且IPSec机制对这些攻击无效,因为相应的攻击数据保持了数据的完整性,无法从单个的数据包上检测到DoS攻击,只能通过流量监控和分析对它们进行检测和防御。
3.2 源地址欺骗的DoS攻击
基于源地址欺骗的攻击,比如TCP泛洪攻击、UDP泛洪攻击和ICMP泛洪攻击, 根据IPSec机制的原理分析,IPSec能够有效的应对源地址欺骗的DoS攻击,因为所有的攻击数据包的数据完整性都受到了破坏。
4 小结
通过前面的原理分析,由于IPSec对接收到的包的源地址欺骗识别能力,IPSec能够保护IPv6主机免受与IPv6邻居发现协议相关的所有种类的DoS攻击。但是在攻击者用真实身份发起DoS攻击的情况下,IPSec显得无能为力。因此IPSec机制本身仍然存在缺点,而且在IPSec配置过程中也会发生一些安全问题。整体来看,IPSec机制不能解决IPv6的所有安全问题,所以必须对IPv6安全问题进行更进一步的研究。
参考文献:
[1] T. Narten, E. Nordmark and W. Simpson, Neighbor Discovery for IP Version 6 (IPv6), RFC2641, Internet Engineering Task Force, December 1998.
[2] S. Thomson and T. Narten, IPv6 Stateless Address Autoconfiguration, RFC2462, Internet Engineering Task Force, December 1998.
[3] Pekka Nikander and James Kempf, IPv6 Neighbor Discovery (ND) Trust Models and Threats, RFC3756, Internet Engineering Task Force, May 2004.
[4] Stephen Kent and Randall Atkinson, Security Architecture for the Internet Protocol, RFC 2401, Internet Engineering Task Force, November 1998.
关键词:IPv6 IPSec;拒绝服务攻击;邻居发现协议;攻击分析
中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)09-2084-02
The Analysis of DoS Attack to NDP under IPv6
HU Yong-bing
(Guangzhou Vocational College of Science and Technology, Guangzhou 510850, China)
Abstract: The DoS attack is always one of the leading threats to the Internet. With the development of Internet, IPv6 is inevitably taking the place of IPv4 as the main protocol of Internet. This paper focus on the DoS attacks under IPv6 and without IPSec configuration or with IPSec, which including the DoS attacks pertinent to IPv6 Neighbor Discovery Protocol.
Key words: IPv6; IPSec; DoS; neighbor discovery protocol; attack analysis
随着Internet的发展,IPv6将作为下一代Internet协议取代IPv4。相应地,IPv6的安全威胁也成为当前研究的主要问题。本篇论文关注IPv6下的DoS攻击,因为DoS一直是Internet的主要威胁。而IPv6下的典型DoS攻击主要涉及IPv6邻居发现协议。
1 邻居发现协议
邻居发现协议[1]是IPv6不可或缺的部分。它主要用来解决相同链路下的节点间的交互相关的一些问题,主要包括以下功能:路由发现、前缀发现、参数发现、地址解析、下一跳确认、邻居不可达检测、重复地址检测与重定向。因为邻居发现和路由发现两个功能具有不同的安全属性,这里将它们分为两个部分进行分析。
1.1 邻居发现功能
地址解析
IPv6节点通过地址解析程序确定一个只给定IP地址的邻居的链路层地址。当一个节点想要与一个只知道链路层地址的邻居通信,它执行地址解析。这是通过向邻居多播一个邻居请求消息实现的。其间,发送方必须包含它的源链路层地址作为源链路层地址选项。一个节点将通过发送一个邻居广播消息来响应目标为这个节点被赋予的地址中的一个的邻居请求,并且目标链路层地址选项将包含在这个消息中。
邻居不可达检测
IPv6节点利用邻居不可达检测程序来跟踪节点正发包所到的邻居的可达状态。一个邻居被认为是可达的,如果节点最新接收到一个最近发送给该邻居的包被接收到的确认。积极确认能通过两种方法收集:一个是高层协议里的提示。详细地讲,如果更高层协议是面向连接的,只有新近发到远端的数据包真正到达远端,从远端发来的数据包才能被接收,比如TCP协议。但是有时这样的可达信息可能在更上层协议中是不容易得到的,因为它们不是面向连接的,比如UDP协议。在这种情况下,节点使用邻居不可达检测来主动探查邻居。这个过程中,节点首先单播邻居请求消息给邻居,然后等待相应的邻居广播消息。如果没有收到响应包,节点可能认为这个邻居是不可达的。反之认为是可达的。
重复地址检测
IPv6节点可以通过两种方法生成全局IPv6地址,一种是手动配置,另外一种是自动配置。后面的一种也能通过无状态机制或状态机制(DHCPv6)。本文集中探讨无状态地址配置[2]。在这个过程中,发送方首先检查它想要的IPv6地址是否已经被另外一个节点在使用,这个检查是通过周期性地多播邻居请求消息来完成的,消息未指定源地址并指向需要被检查地址。如果被检查地址已经被另一个节点使用,这个节点会发送一个邻居广播作为响应。否则,如果没有收到相应的邻居广播,处理节点可以认为被检查地址是可用的。
1.2 路由发现功能
IPv6下的路由器主动或者作为响应发送路由广播消息来广播本地连接参数例如连接MTU、跳数限制等等。
重定向
当IPv6下的路由器发现一个到达指定目标更好的中继节点,就发送重定向消息通知主机。如果ICMP目标地址与ICMP目的地址相同,则说明目的实际上是一个邻居。
2 无IPSec保护的基于邻居发现协议的攻击
2.1 基于邻居发现功能的DoS攻击
重复地址检测攻击
当处理无状态地址自动配置时,一个IPv6节点(受害方)会对一个指定IPv6地址进行重复地址检测。此时,攻击者会伪装成正使用该指定地址的节点响应检测消息,导致受害者不能正常获取IPv6地址。
邻居不可达检测失效
当IPv6节点处理邻居不可达时,攻击方能够通过发送伪造的邻居广播发起这种攻击。邻居实际上不可达的情况下,进行检测的节点可能被欺骗而认为邻居仍然可达。
邻居请求/广播欺骗
这种攻击能导致合法节点的包被发到一些另外的链路层地址去。这种攻击通过发送一个包含不同的源的链路层地址选项的邻居请求或者一个不同目标链路层地址选项的邻居广播实现。
2.2 基于路由发现功能的DoS攻击
缺省路由断开
RFC2461[1]声明如果缺省路由器列表为空,发送方会假设目的是处于连接的。根据这个声明,攻击方能发送一个虚假的路由器寿命为0的路由广播,。当受害方被欺骗后,它将试图直接发送每一个包,而不是通过路由器发送。在目标不在本地链路的情况下,包将不会到达真实的目的。
重定向消息欺骗攻击
这个攻击能够用来把一个给定目的的包发送到链路上的任何一个链路层地址。攻击方使用当前第一跳路由的链接本地地址以向合法主机发送一个重定向消息。由于主机通过链接本地地址来鉴别消息来自它的第一跳路由,所以它接受了重定向。只要响应邻居不可达检测的攻击方探查链路层地址,发到该目的的包就会被重定向。
伪造On-Link前缀攻击
攻击方通过发送一个指定一些任意长度的前缀为在线状态的路由广播消息实现这种攻击。如果受害方认为这些前缀在线,它将不会把这些前缀的包发送给路由器。相反,它将试图通过发送邻居请求进行地址解析,但是邻居请求将不会有响应,从而拒绝为被攻击主机提供服务。
伪造地址配置前缀攻击
这个攻击通过发送一个路由广播消息实现,该路由广播消息指定一个无效的被用到一个主机进行地址自动配置的子网前缀。受害方将使用这个被广播的前缀执行地址自动配置算法构造一个地址[3],即使那个地址对于子网是无效的。结果,返回包将不能到达主机因为主机源地址无效。
恶意最后一跳路由
攻击方可以通过主动或者作为响应多播看起来合法的IPv6路由广播来冒充成一个IPv6最后一跳路由。如果进入的主机选择攻击方作为它的缺省路由,攻击方可以从主机提取流量。
参数欺骗攻击
IPv6广播包含许多参数,这些参数在主机发送包时被使用,这些参数也可以告诉主机是否应当进行状态地址配置[1]。攻击方可以发出一个看起来有效的路由广播来打断合法流量,该路由广播复制合法缺省路由的路由广播,除了包含参数的部分。
3 IPSec保护下的基于邻居发现协议的DoS攻击
IPSec [4]由IETF设计来为IPv4和IPv6提供能共同使用的、高质量的、基于加密的安全性。这套安全服务提供包括访问控制、无连接完整性、数据源认证、反重播保护、保密性和有限的业务流保密性。IPSec在IPv4中是可选的但是在IPv6的实现中必须被支持。它为IPv6提供了一定的保护。
3.1 没有源地址欺骗的DoS攻击
一般情况下,攻击者总是用源地址欺骗发起DoS攻击,但是也有可能使用真实身份进行攻击或者控制大量的傀儡主机直接进行攻击。这些攻击存在很大的检测难度,而且IPSec机制对这些攻击无效,因为相应的攻击数据保持了数据的完整性,无法从单个的数据包上检测到DoS攻击,只能通过流量监控和分析对它们进行检测和防御。
3.2 源地址欺骗的DoS攻击
基于源地址欺骗的攻击,比如TCP泛洪攻击、UDP泛洪攻击和ICMP泛洪攻击, 根据IPSec机制的原理分析,IPSec能够有效的应对源地址欺骗的DoS攻击,因为所有的攻击数据包的数据完整性都受到了破坏。
4 小结
通过前面的原理分析,由于IPSec对接收到的包的源地址欺骗识别能力,IPSec能够保护IPv6主机免受与IPv6邻居发现协议相关的所有种类的DoS攻击。但是在攻击者用真实身份发起DoS攻击的情况下,IPSec显得无能为力。因此IPSec机制本身仍然存在缺点,而且在IPSec配置过程中也会发生一些安全问题。整体来看,IPSec机制不能解决IPv6的所有安全问题,所以必须对IPv6安全问题进行更进一步的研究。
参考文献:
[1] T. Narten, E. Nordmark and W. Simpson, Neighbor Discovery for IP Version 6 (IPv6), RFC2641, Internet Engineering Task Force, December 1998.
[2] S. Thomson and T. Narten, IPv6 Stateless Address Autoconfiguration, RFC2462, Internet Engineering Task Force, December 1998.
[3] Pekka Nikander and James Kempf, IPv6 Neighbor Discovery (ND) Trust Models and Threats, RFC3756, Internet Engineering Task Force, May 2004.
[4] Stephen Kent and Randall Atkinson, Security Architecture for the Internet Protocol, RFC 2401, Internet Engineering Task Force, November 1998.