SLAAC是无状态地址自动配置。为应对传统SLAAC地址的保密性问题,IETF提出了RFC 4941“IPv6自动配置无状态地址的保密性扩展”;它通常称为“临时地址”。RFC 4941标准化的方案主要通过以下方式实现:
1、临时地址是使用随机IID不断重复生成的IPv6地址。
2、这些临时地址包含传统的SLAAC地址。也就是说,实现RFC 4941的节点不仅包含临时地址,也包含传统(固定的)SLAAC地址。
3、临时地址将用于外出连接,而传统的SLAAC地址用于进入连接。也就是说,只有当需要地址不会时,才能使用传统的SLAAC地址。
但是,临时地址也有许多缺点。它们也无法避免地址扫描攻击,它们并不能完全对抗主机跟踪,而且通常会增加网络操作复杂性。而且,在使用传统SLAAS地址的时候会同时使用临时地址(而不是替换),所以临时地址几乎无法抵抗地址扫描攻击。
对于主机跟踪,临时地址不能彻底解决这些问题。例如,假设有一个攻击者知道受攻击节点的传统SLAAC地址所使用IID,那么这个攻击者也就知道了所攻击节点可能连接的目标网络。在这种情况下,攻击者就可以利用网络前缀和所攻击节点使用的不变IID,主动让受攻击的节点连接各个目标网络。
这里的关键概念是,只要IID在网络保持不变,攻击者就可能利用它发起主机跟踪攻击。启用临时地址只能对抗被动主机跟踪攻击(例如,通过连接攻击者所操控服务器的受攻击节点发起的攻击)。然而,主动主机跟踪攻击(攻击者向目标发送侦测数据包)仍然无法避免。
对抗主动主机跟踪
SI6 Networks的IPv6工具套件scan6工具是一个专门用于发起主动IPv6主机跟踪的IPv6地址扫描工具。它提供了许多选项,可以指定攻击节点可能连接的网络和所使用的固定接口ID。
例如,假设有一个攻击者知道一个传统SLAAC地址为a00:27ff:fe89:7878的节点IID,那么这个节点可能只能连接网络2001:db8:1::/64和2001:db8:2::/64。这时,攻击者就可以用scan6执行以下命令:
复制代码代码如下: # sudo scan6 -i eth0 -d 2001:db8:1::/64 -d 2001:db8:2::/64 -W a00:27ff:fe89:7878 -l -z 60 -t -v
这样scan6就可以每隔60秒钟攻击IPv6地址2001:db8:1::a00:27ff:fe89:7878和 2001:db8:2::a00:27ff:fe89:7878。正如之前所提到的,即使目标节点使用临时地址,这种攻击也可能生效,因为临时地址也包含传统SLAAC地址。
scan6工具还可以从各个文件获取目标IID和目标网络前缀。例如,这个工具可以执行以下命令:
复制代码代码如下: # sudo scan6 -i eth0 -m PREFIXES-TXT -w IIDS.TXT -l -z 60 -t -v
在这种情况中,scan6工具将从文件PREFIXES.TXT获取目标IPv6前缀,从文件IIDS.TXT获取目标节点的IID。
可能的解决方法
显然,临时地址可以对抗关联一个网络内部节点活动,因为它们会让远程攻击者很难将许多通信实例关联到同一个节点。
完全消除主机跟踪攻击则要求禁止节点使用在多个网络中保持不变的IID。有一篇IETF提案“一种通过IPv6无状态自动配置(SLAAC)生成固定加强保密地址的方法”专门处理这个问题。它包括:
1、产生的IPv6地址将在网络中保持不变(例如,在连接同一个网络时,主机总能获得相同的地址),所以网络操作不会受到负面影响。
2、当主机从一个网络切换到另一个网络时,它的IPv6地址会发生变化(从而对抗主机跟踪攻击)。
以上就是遇到传统SLAAC地址的主动主机跟踪的问题该怎么解决?的全部内容,希望可以帮助到您。感谢对蚂蚁资源网的支持。
(责任编辑:佟塞娅)
版权声明:文章内容是蚂蚁资源网小编精心整合原创的,素材来源于互联网,如无意侵犯到您的权益,请联系网站客服核实版权信息,以便及时删除。