击破IPv6安全神话
在2012年6月6日全球IPv6启动日,很多公司都为其产品和服务启用了IPv6协议,这也让我们有机会验证IPv6安全性的误解。人们普遍认为,因为IPv6增加的地址空间,从攻击者的角度来看,IPv6主机扫描攻击将需要花很多时间和精力,使得攻击几乎不可能。然而,事实并不是这样。通过分析IPv6地址在互联网上进行配置的方式,本文将介绍IPv6攻击可行性的真实情况分析。
本文引用地址:http://www.amcfsurvey.com/article/154602.htmIPv6不可战胜的神话
IPv6比IPv4有更大的地址空间。标准IPv6子网(在理论上)可以容纳大约1.844 * 1019 个主机,因此其主机密度要比IPv4子网低得多(即,子网中主机数与可用IP地址数量的比率较低)。
因为IPv6地址空间数量如此巨大,很多人认为IPv6将使潜在的攻击者很难对IPv6网络执行主机扫描攻击。有些人估计对单个IPv6子网的主机扫描攻击可能需要5千万年!
在IPv4互联网中的主机扫描攻击
在深入分析IPv6主机扫描攻击的细节之前,让我们来看看在IPv4互联网中,主机扫描攻击是如何执行的。IPv4的地址空间数量有限,整个IPv4地址空间(在理论上)由 232 个地址组成,IPv4子网通常有256个地址。因此,在典型的IPv4子网中,主机密度相对较高。IPv4主机扫描攻击通常是按照以下方式执行的:
• 选定一个目标地址范围
• 发送一个测试数据包到该范围内的每一个地址
• 每个响应的地址都被认为是“可用的”
由于典型的IPv4子网的搜索空间比较小(通常是256个地址),并且这种子网的主机密度很高,对于大多数攻击者而言,在目标网络中按顺序尝试每个可能的地址已经足以发动攻击。
在IPv6互联网中的主机扫描攻击
有两个因素使IPv6的主机扫描攻击比IPv4的攻击更加困难:
• 典型的IPv6子网比IPv4子网更大(IPv6为264 个地址,而IPv4为256个地址) 。
• IPv6子网的主机密度比IPv4子网主机密度低得多
由于这两个因素,在目标IPv6子网中,按顺序试探每一个地址是不可行的,无论是从数据包/带宽的角度来看,还是从执行攻击需要的时间来看。
然而,IPv6主机扫描攻击并非如此繁琐和费时。我们需要认识到,IPv6主机地址并不是随机分布在这相应的256个子网地址空间中,这意味着攻击者在试图确定“可行”节点时,实际上并不需要扫过整个子网地址空间。了解IPv6地址生成或者配置的方式,就明白了这种地址分配是非随机的。
IPv6地址选择
IPv6全球单播地址,顾名思义,是用于互联网通讯的IPv6地址(而不是,比方说,仅用于本地子网内通讯的本地地址)。它类似于IPv4:全球路由前缀通常由上游供应商分配,本地网络管理员将组织网络分成多个逻辑子网,而接口ID(IID)用来确定该子网中的特定网络接口。
在选择接口ID(IPv6地址的低阶64位)时有很多选择,包括:
• 嵌入MAC地址
• 采用低字节地址
• 嵌入IPv4地址
• 使用“繁复”的地址
• 使用隐私或临时地址
• 依赖于过渡技术或共存技术
不幸的是,这些因素都减小了潜在的搜索空间,使IPv6主机扫描攻击变得更容易实现。以下部分解释了具体的原因:
嵌入式MAC地址
大多数IPv6主机是根据非营利组织互联网协会(Internet Society)开发的无状态地址自动分配(SLAAC)来生成它们的地址。SLAAC获取MAC地址,在中间插入一个16位数字,在以太网的中,这让接口ID(还是地址的低阶64位)使用下面的语法:
在这种情况下,接口ID至少有16位是都知道的。接口ID的其余位(从底层以太网地址借来的位)也是按照特定的模式。
因此,在规划IPv6主机扫描攻击时,攻击者可能已经知道了目标企业购买网络设备的供应商的情况。攻击者可以据此减少搜索空间到只有这些OUI(企业唯一标识符),也就是分配到该供应商的标识符。然后他们可以进一步缩小搜索空间,因为以太网地址的低阶24位通常是根据制造的网络接口卡按顺序分配的。例如,如果企业从相应供应商购买了400个系统,这些系统可能有连续的以太网地址(并且连续的IPv6地址)。只要攻击者通过尝试随机地址发现目标网络中的一个节点,就可以根据尝试连续地址,得到其他节点。
这些情况都说明了只需要知道或者发现一些地址,攻击者就能够缩小他的搜索范围,使IPv6主机扫描攻击成为可能。
低字节地址
低字节地址是接口ID全是0的IPv6地址,除了最后8或16位(例如2001:db8::1、2001:db8::2等)。这些地址通常是手动配置的(通常用于基础设施),但是也可能是使用了一些动态主机配置协议版本6(DHCPv6)服务器,这些服务器会从特定地址范围按顺序分配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::”。确定这些“繁复”的地址的搜索空间并不简单,当然,与整个IPv6空间相比时,搜索空间还是有所减少了。曾经有针对“繁复”地址的基于字典的IPv6主机扫描攻击。
隐私/临时地址
为了响应主机跟踪问题,IETF在RFC 4941中标准化了“无状态地址自动配置的隐私扩展”。在本质上,RFC 4941规定接口ID应该是随机的,会随着时间的变化而变化,以创建一个不可预见的地址。
评论