低字节地址

低字节地址是接口ID全是0的IPv6地址,除了最后8或16位例如2001:db8::1、2001:db8::2等)。这些地址通常是手动配置的通常用于基础设施),但是也可能是使用了一些动态主机配置协议版本6DHCPv6)服务器,这些服务器会从特定地址范围按顺序分配IPv6地址。当采用低字节地址时,IPv6地址搜索空间被缩小到最多)216个地址,这使IPv6主机扫描攻击变得更为可行。

嵌入式IPv4地址

互联网工程任务组IETF)规范允许IPv6地址以“2001:db8::W.X.Y.Z”的形式来表达,而IPv4地址的形式为“W.X.Y.Z”。这种生成地址的形式通常出现在基础设施设备中,因为如果该设备的IPv4地址是已知的,就更容易“记住”设备的IPv6地址。其余的地址都是已知的或者可猜测出,所以采用嵌入式IPv4地址的网络将有助于攻击者将IPv6地址搜索空间缩小到与IPv4网络相同的搜索空间。

“繁复”的地址

IPv6地址采用十六进制而不是小数)符号,这在手动配置地址时,增加一些创意。例如,Facebook的域名映射到IPv6地址是“2a03:2880:2110:3f02:face:b00c::”。确定这些“繁复”的地址的搜索空间并不是简单的事情,当然,与整个264 IPv6空间相比时,搜索空间还是有所减少了。曾经有针对“繁复”地址的基于字典的IPv6主机扫描攻击。

隐私/临时地址

为了响应主机跟踪问题,IETF在RFC 4941中标准化了“无状态地址自动配置的隐私扩展”。在本质上,RFC 4941规定接口ID应该是随机的,会随着时间的变化而变化,以创建一个不可预见的地址。

然而,RFC 4941规定除了传统SLAAC地址外还要生成临时地址而不是替代它们),临时地址用于出站通讯,而传统SLAAC地址用于服务器功能例如入站通讯)。因此,这些地址并不能缓解主机扫描攻击,因为在采用临时地址的主机上仍然配置了可预测的SLAAC地址但OpenBSD除外,OpenBSD在启用隐私地址时,禁用了传统SLAAC地址)。

过渡/共存技术

有很多IPv4到IPv6的过渡技术或者共存技术例如6to4和Teredo)为IPv6全球单播地址指定了特殊语法,在大多数情况下是在IPv6中嵌入IPv4地址,作为IPv6的地址的一部分。由于有很多这方面的技术,本文将不深入到具体细节,但需要注意这些地址遵循特定的模式,所以能减小IPv6地址搜索范围。

如何缓解IPv6主机扫描攻击

缓解IPv6主机扫描攻击最聪明的办法是从IPv6地址删除任何明显的模式。IETF的6man工作组目前正在研究一种生成IPv6地址的方法,它有以下特点:

◆ 产生的接口ID不容易被预测出

◆ 产生的接口ID在每个子网内是稳定的,但是当主机从一个网络移动到另一个网络时,接口ID会跟着变化

◆ 产生的接口ID独立于底层链路层地址

为了确保IPv6部署的安全性,IETF必须完成此标准化工作,并且更重要的是,需要供应商部署它。一旦这些工作都到位了,这些不可预测的地址将让攻击者的IPv6主机扫描攻击更难以执行。

其他缓解IPv6主机扫描攻击的措施包括使用基于网络的入侵防御系统IPS):当在本地子网接收到大量针对不同IPv6地址的探测数据包时尤其是当很多目标地址不存在时),可以从特定来源地址阻止入站数据包,来应对主机扫描攻击活动。另一种方法是为基于DHCPv6和手动配置的系统配置不可预测的地址。虽然windows系统生成不可预测地址,所有其他端点包括基于思科和Linux的设备)还需要一些额外的配置,既可以启用DHCPv6服务器来发布不可预测地址,也可以手动配置系统,这样他们就可以使用不可预测地址。很显然,DHCPv6的方法应该是首选方法,因为它更容易扩展。然而,并不是所有DHCPv6软件都有这个功能,因此可能唯一的方法应该是手动配置每个系统的IPv6地址当然这个工作会非常痛苦)。

读了本文关于IPv6地址在互联网上的分配方式的分析,大家应该提高认识:虽然IPv6的主机扫描攻击在很大程度上受到了阻止,但IETF和供应商仍然有很多工作要做,以增加IPv6主机扫描攻击的难度。


相关内容