2011年2月3日悄无声息的到来又逝去,这一天看似普通,但对互联网人士来说,却非比寻常,无论他们是否知晓,这一天却是一个里程碑。在那个周四,互联网数字分配机构(IANA)将最后可用的IPv4地址分配殆尽。虽然某些地区的互联网注册管理机构(RIR)还有够一两年使用的库存,但全新IPv4地址分配的时代已基本成为历史。
既然IPv4已经用尽,那么是时候认真考虑采用下一代互联网协议IPv6了。当前,每小时就会增加一百万台新设备,而IPv6具有128位的地址空间(IPv4具有32位空间),可以适应互联网当前及未来的发展需求。实际上,与IPv4 的43亿个IP地址相比,IPv6可以再增加340万亿万亿万亿地址,足以满足可预见未来的全球互联网需求。
随着DNS安全扩展协议(DNSSEC)的持续部署,IPv6将为未来互联网提供稳定而安全的基础。但是,要实现从IPv4向IPv6的成功过渡,无论是基础架构运营商、服务提供商,还是应用开发人员与用户,所有人都必须在一系列工作中团结合作,这些工作包括:
•支持并开发IPv6能力,并建立与IPv4相当的功能
•调试并修正那些仅使用IPv6的新软件与应用程序中的问题
•改善与IPv4的交互工作与过渡共存问题
安全性将成为这一工作的关键。IPv6为大多数互联网参与者展示了新的疆界,它的出现也将带来一些独特的安全挑战。虽然下述内容并不完全,但它给出了八个需要注意的问题领域,业界需要在采用IPv6的过程中,不断地解决这些问题。要知道我们仍然处于采用的初级阶段,所以某些风险的解决方案只能来自于被实际应用所证明的最佳实践。
* 从IPv4向IPv6的转换过程中,事务处理(Transaction)可能更容易受到攻击。由于IPv4与IPv6并非“逐位(bits on the wire)”地兼容,因此协议转换就成为更广泛的部署与采纳的一种途径。从IPv4到IPv6的转换中,当转换流通过网络时,必然产生需要协调事务处理。设想一个邮局的信件分拣员,他必须打开每个IPv4信封,再将每封信装入一个IPv6信封中,以确保它能投递到正确的地址,此时要修改文件包含的内容,从而使之与新的IPv6信封外的信息相符。每做一次这个操作,都给执行不善和执行不力者提供了一个机会,从而产生或触发一个潜在的漏洞。另外,这种方法引入了必须维护事务处理状态的中间环节(middle boxes),使网络复杂化,从而危及了端到端的原则。通常情况下,安全人员应注意所有转换与事务处理机制(包括隧道)的安全问题,只有经过了彻底评估以后,才能明确地启用这些机制。
* 大网络段既有优点也有缺点。IPv6的网络段规模要远远大于我们现有的网络段。现在,为一个IPv6子网络推荐使用的前缀长度为/64(264),它可以在一个网络段中容纳约18×1018个主机!虽然这能够实现几乎无限制的LAN长度,但这一规模也带来了挑战。例如,扫描一个IPv6/64块网络的漏洞要花数年时间,而扫描一个/24的IPv4子网(28)只需花几秒钟。既然不可能做完整的扫描,那么比较好的办法或许是只使用地址的前/118(与一个/22的IPv4中主机数量相同),缩小要扫描IP的区间范围,或者明确地分配掉所有地址,并且暗中拒绝余下的所有地址。这样便可以做到细致的IP管理,以及较今天而言更为严格的监控。另外还可以预测到,攻击者可能将采用被动式域名系统(DNS)分析以及其它侦测技术来代替传统的扫描方法。
* 邻居发现及请求都可能使网络出现问题。IPv6中的邻居发现(Neighbor Discovery)使用了五种不同类型的第6版互联网控制信息协议(ICMPv6),用于多种目的,如在链接中包含可确定邻居的链路层地址,清空已失效的缓存值,以及发现那些想要自己转发分组数据包的邻居。虽然邻居发现提供了很多有用的功能,包括重复地址检测(DAD)以及对不可及邻居的检测(NUD),但它也给攻击者提供了很多机会。IPv6中的邻居发现攻击将很快取代IPv4中的同类攻击,如ARP Spoofing攻击。一般而言,除非明确地提供并实现了链路层访问控制以及安全机制,否则保持所有端口的关闭是一个好主意,而且要在不使用IPv6时,将其完全禁用。
* 阻塞大型扩展头、防火墙与安全网关,可能成为DDoS攻击者的目标。在 IPv6中,IP选项功能已被从主头中移出,而通过一组附加头来实现。这些附加头叫做扩展头,其定义了一组目标选项、逐跳跃(hop-by-hop)选项、身份认证,以及一个其它选项的数组。这些扩展头跟随着固定为40字节的IPv6主头,它们相互链接,构成一个IPv6分组数据包(固定头+扩展头+有效负载)。有大量扩展头的IPv6流会淹没防火墙和安全网关,甚至会致使路由器转发性能下降,因此成为了DDoS和其它攻击者的一种潜在动力。在路由器上禁用“IPv6源路由(IPv6 source routing)”可能是防止DDoS威胁的必要方式,并且明确地写明支持哪种扩展头,以及检查网络设备的正确实现,这些都很重要。一般而言,IPv6增加了很多需要过滤或区域性传播的部件,包括一些扩展头、组播地址,以及增加了互联网控制信息协议(ICMP)的使用。
* 6to4和6RD代理可能会导致攻击与滥用行为。6to4及其ISP快速部署的6RD均无需配置专用的隧道,就能使IPv6数据包跳出IPv4的空间。但部署IPv6代理服务器可能会使代理运营商进入一个麻烦的世界,包括发现式攻击、欺骗,以及反射式攻击,而代理运营商自身可能被利用,成为一个攻击和滥用的“源头”。
* 对IPv6服务的支持可能暴露现有的IPv4应用程序或系统。有一个局限便是,现有的安全补丁可能仅适用于IPv4支持,而大多数核心程序在做DNS查表等动作时,偏向于优先采用IPv6接口(而不是IPv4),以促进IPv6的更快部署。实际上,IPv6与IPv4之间的这种互动可能使每次DNS查表的流量翻番(同时请求AAAA和A记录,或更糟糕的情况,即每次都要通过IPv4和IPv6)。为了优化用户体验,可能产生出大量非必需的DNS流量。OS与内容供应商在不断采用措施,以减轻或优化这个性能(如:AAAA白名单),但它也增加了系统负荷和状态。另外应注意到,使用新的IPv6栈后,肯定会逐步显现新的漏洞。一个过渡周期内长期存在两个栈,以及路由器、最终系统与网络服务(如DNS)之间的相互依存,显然会为犯罪分子提供充分施展的空间。
* 很多用户可能被隐藏在固定地址集后面。被大型网络地址转换协议(NAT-PT)设备所隐藏的用户可能会废除一些有用功能(如地理定位)或工具,使恶意网络行为有了空间,并且让基于信誉的号码与命名空间的安全控制问题更为严重。
* 与其它网络做隧道操作时,即使IPSec也可能带来问题。IP安全机制(IPSec)能够对发送者做出认证,提供完全的保护,并且可选采用加密的IP分组数据包以提供传输数据的可信性。IPSec在IPv4中是一个可选功能,而在IPv6中是强制使用的。在隧道模式下(基本上是建立一个网络间、主机—网络和主机间通信的VPN),整个数据包被封装在一个新的IP包内,并给它一个新的IP头。但当与某个超出原发方控制的网络建立VPN连接时,则可能产生安全性暴露问题,或被用于漏出数据等。由于IPSec要用附加协议(如互联网密钥交换–IKE)去处理对安全保护以及相关安全密钥的协商与管理,从而增加了复杂性,因此IPv6初期对IPSec支持的广泛程度也许并不会超过IPv4。
在IPv6开始广泛部署且IPv4设备开始减少以前,还会有一段时间。到那时,我们都将致力于可实现互联网第40亿台设备的协议。
2月3日这个里程碑的日子已成历史,我们将别无选择地去发展和传播一些最佳实践,从而使下一代IP地址更加稳定、可靠和安全,而它的开始要依赖网络与安全人员的认知与知识。
注释:作者Danny McPherson现为威瑞信公司首席安全官。