IPv6防火墙安全:新协议带来的问题(二)

《IPv6防火墙安全:新协议带来的问题(一)》介绍了IPv6的头结构和IPv6防火墙对安全的影响,本文中将告诉你IPv6转换/共存技术和可能的IPv6安全问题。

IPv6转换/共存技术

IPv6转换/共存技术还给IPv6防火墙带来另一个问题。大多数转换技术都使用某种通道机制,它在一种网络协议(通常是IPv4)中封装另一种网络层协议(通常是IPv6)。这会对防火墙的安全性造成很多影响。

首先,防火墙可能无法识别特定的转换技术,也可能无法应用一些原生IPv6流量支持的过滤策略。例如,在使用原生IPv4或原生IPv6时,一个网站可以阻挡通向TCP端口25的数据包,但是在部署了Teredo 等转换机制后,它可能无法阻挡这些数据包。

其次,转换技术可能会加剧上述问题,因为不仅封装的流量可能使用组合的IPv6扩展头和分片,其他向外发送的数据包(通常是IPv4)也可能是分片的,因此这都会大大增加最终流量的复杂性。这种复杂性不仅会降低网络流量传输速度,更严重的是,它还可能影响防火墙的过滤策略。例如,防火墙可能无法处理整个头信息链,从而无法找到TCP分片(参见下图)。下图的示例显示的是使用Teredo的TCP/IPv6数据包的语法,说明了最终流量的复杂程度。

图2:一个使用Teredo的TCP/IPv6数据包示例

这个数据包的结构可能会变得更复杂,例如,如果内外数据包都分片了。

可能的IPv6安全问题

显然,为了应用IPv6数据包过滤策略,防火墙至少必须支持整个IPv6头信息链的处理。理想情况下,这些防火墙还应该支持IPv6转换技术,这样应用于原生IPv6流量的过滤策略可以同样应用到转换流量上。也就是说,防火墙应该有一个“默认拒绝”策略,这样防火墙就能够阻挡您不需要的流量,如转换流量。

对于可能利用多扩展头的资源耗尽攻击,在防火墙上限制一个IPv6数据包支持的最大扩展头数量可以解决这个问题。合理的限制是允许每一个当前定义的扩展头只出现一个实例。然而,也可以使用“16”等其他限制值——例如,OpenBSD就采用这个限制值。这种限制允许合法流量,但不允许异常多数量的扩展头。超过限制的数据包必须丢弃。虽然这可能会影响性能,但是能够防止DoS。

最后,规定在IPv6报文的第一个分片中包含应用数据包过滤策略所需要的完整数据包头信息,能够应付使用分片的防火墙绕行技术。也就是说,在防火墙接收到的报文第一个分片中,如果不包含完整的上层协议头信息,如TCP头,那么这个数据包就会被丢弃。防火墙绕行技术还可以在应用过滤策略之前,通过在防火墙中重新组合分片的报文来解决。然而,对于基于网络的防火墙而言,至少这并不是一种推荐的方法,因为它可能会留下DoS漏洞。

解决IPv6防火墙问题

正如本文所介绍的,IPv6防火墙面临许多问题,但是它们可以通过合理的防火墙设计和操作解决。在购买防火墙设备时,必须对IPv6防火墙支持仔细评估,因为不同产品的支持差别很大,支持不佳的防火墙可能会对企业网络安全造成负面影响。