你的路由器是我的探测器
撰文 | 张可言
编辑 | 刘梦迪
背景介绍
随着IPv6的迅速普及,对IPv6网络的测量与理解至关重要。然而,大规模的网络测量往往面临挑战。一方面是缺少观测点,如果在目标网络中没有观测点,许多测量任务就无法完成。另一方面,IPv6通常更为安全,例如,IPv6地址空间的巨大扩展使得穷举扫描不再可能,从固定IPv6报头中移除长期识别字段(IPID)也使得许多基于IPID侧信道的攻击和测量不适用于IPv6。
与IPv4不同,IPv6的ICMP协议要求IPv6节点限制ICMP差错报文的生成速率,限制带宽和转发成本,以降低ICMP泛洪攻击的风险。尽管IPv6中普遍存在的ICMP限速确实降低了网络被ICMP数据包淹没的风险,但它也为作者通过ICMP限速侧信道测量远程IPv6网络开辟了新机会。
基于以上信息,清华大学的潘龙、杨家海等人在NDSS 2023上讨论了一种在ICMP速率限制中通过侧信道测量远程网络的新技术——IVANTAGE,从单个本地观测点出发,无需控制目标或依赖目标网络中的其他服务,对远程IPv6网络进行测量。
IVANTAGE技术
由于直接控制远程网络的多个观测点在实际操作中非常困难,IVANTAGE巧妙地将遍布全球的路由器转变为间接的“观测点”,以ICMP速率限制机制为侧信道,通过精心设计的探测包触发远程路由器产生ICMP响应,从而间接测量网络特性,扩展了测量的覆盖范围。主要步骤包括:
找到远程观测点
让它们“发送”和“接收”数据包
“观测点”发现:IVANTAGE的第一步是找到可以作为“观测点”的目标,即使它们不是真正意义上的观测点。可以响应特定探测包并生成ICMP报文的远程路由器,作者称之为远程“观测点”(RVP)。这些RVP不受研究者直接控制,但通过诱导它们响应带有欺骗源地址的探测数据包(如ICMP Echo请求和TCP SYN),可以间接促使它们成为测量过程中的“发送器”和“接收器”。下图显示了作者发现的远程“观测点”分布情况,它们分布在182个不同的国家,29679个BGP前缀和9498个AS中。
RVP分布情况
“发送”:在确定了可用的RVP后,需要控制RVP发送探测包进行主动测量,这是最关键的部分。通过向这些路由器发送带有欺骗源IP地址的数据包,即可触发它们按照ICMP协议规范生成并回送ICMP响应。由于IPv6要求节点对ICMP差错报文的生成速率进行限制,通过分析对比这些响应的速率和模式,就能推断出目标网络的某些特性。
“接收”:在大多数测量中,还需要从RVP捕获数据包。但是,如果不能访问RVP,则很难捕获其接收到的数据包。幸运的是,对于某些测量,通常没有必要捕获RVP上的所有数据包。作者只关心它是否(或何时)接收到特定类型的数据包。"接收"操作实际上是一种间接确认RVP是否接收到特定类型数据包的方法,特别是那些会触发ICMP差错报文的数据包。由于研究者无法直接访问或监控RVP上的数据流量,他们往往将ICMP限速机制作为一种侧信道来推断数据包的接收状态。
下图是IVANTAGE技术的概述。假设研究者想要从远程网络中的观测点执行测量,但是他们没有这样的观测点。IVANTAGE将首先在远程网络中找到RVP。然后,关键是如何在不直接控制它们的情况下让RVP按研究者的意愿发送或捕获数据包。如前所述,如果研究者希望RVP向目标发送数据包,就可以使用目标的源地址向RVP发送数据包,然后RVP将向目标发送回复。同样,很难知道RVP是否可以接收到目标发送的数据包。但是,假设目标发送给RVP的数据包会引起RVP产生ICMP差错报文(例如,这些数据包被发送到不可达的IP地址)。在这种情况下,可以通过检查RVP上的ICMP限速状态来知道RVP是否收到了这些应答。
IVANTAGE概述
诚然RVP不能像真正的观测点一样执行所有类型的测量,IVANTAGE主要通过在RVP上“发送”和“接收”数据包来衡量远程网络的过滤策略和网络连通性。接下来,作者将IVANTAGE应用于两个不同但都具有挑战性的测量任务。在ISAV部署的测量中,作者主要关注如何在RVP上“接收”数据包;在可达性测量中,依靠RVP来“发送”和“接收”。这两项任务理论上都需要网络内的观测点,但IVANTAGE利用别人的路由器作为“观测点”,让不可能变成可能。
测量ISAV部署
源地址验证(SAV)通过验证数据包源地址的合法性,降低网络欺骗攻击的风险,分为OSAV和ISAV。大多数网络已经部署了OSAV,往往缺少ISAV,因此测量互联网内的ISAV部署至关重要。但ISAV的测量很困难,如果在目标网络内部没有任何观测点,我们很难知道ISAV是否过滤了带有欺骗源地址的探测包。本文进行了迄今为止对IPv6 ISAV部署的最大规模测量。
在本节中,作者将IVANTAGE应用于ISAV部署的度量,目的是确定目标网络(或BGP前缀,AS)是否部署了ISAV来过滤伪造的入站数据包。主要的挑战是如何知道伪造的数据包是否被ISAV机制过滤,即RVP是否可以“接收”伪造的数据包。
1、测量方法
如下图所示,通过对比不同情境下接收到的ICMP差错报文数量来推断ISAV部署情况。具体来说,需要测量三个关键值:rcv1、rcv2、rcv3,分别对应于向目标地址发送正常ICMP Echo Request、同时发送带有欺骗源地址(属于源网络)的噪音包和带有目标网络内欺骗源地址的噪音包后,从远程“观测点”(RVP)收到的ICMP差错报文的数量。
ISAV部署测量方法
rcv1 vs rcv2:理论上,只要RVP实现全局ICMP速率限制,就有rcv1 > rcv2,这是因为噪声数据包加剧了RVP的ICMP速率限制。如果存在rcv1 ≈ rcv2,可以知道RVP不实现ICMP速率限制或只实现非常松散(或非全局)的ICMP速率限制,将无法成为ISAV测量中良好的RVP。在实践中,作者忽略了这些RVP。
rcv2 vs rcv3:测量rcv2和rcv3的过程非常相似,唯一的区别是噪声包的欺骗源地址所属的网络。如果它属于P的网络,则伪造的源地址很难被目标网络识别;如果它属于目标网络,它将被ISAV(如果部署)检测和过滤。因此,如果存在rcv2 > rcv3,则可推断目标网络已经过滤了噪声包,也就是已部署ISAV。在这种情况下,通常有rcv1 ≈ rcv3。这是因为如果对所有欺骗源噪声包进行过滤,则测量rcv1和rcv3的过程没有区别。同样,如果存在rcv2 ≈ rcv3,则噪声数据包的欺骗源地址属于哪个网络没有区别,说明在通往目标网络的路径上没有ISAV。实际上,作者的测量发现,如果不部署ISAV,通常会得到rcv2 > rcv3,而非rcv2 ≈ rcv3。这可能是因为远程互联网节点更愿意回复来自其近端互联网节点的ICMP回显请求,因此带有目标网络中欺骗源地址的噪声包触发了更明显的ICMP速率限制。
rcv1 vs rcv3:如前所述,如果存在rcv1 > rcv3,则表示目标网络内具有欺骗源地址的噪声包未被过滤,因此ISAV不存在;当rcv1 ≈ rcv3时,由于噪声包被过滤,因此存在ISAV,rcv1与rcv3没有本质区别。
2、推断ISAV部署
通过比较rcv1、rcv2、rcv3这三个值的平均值来推断ISAV的部署情况。理论上,如果RVP实施了全局ICMP速率限制,由于噪音包加剧了RVP的ICMP速率限制,rcv1应大于rcv2。rcv2与rcv3的比较用于进一步判断ISAV状态。
为确定何时可认为ISAV被部署,引入一个阈值λ。为避免快速变化的网络环境的潜在干扰,只有当a < λ × b时,才能确定a < b。实验中,通过对比和评估,最终选择了λ=0.6,意味着只有当rcv的减少量超过原值的40%,才认为ISAV被激活。
有可能同时使rcv3 < λ × rcv1和rcv2 < λ × rcv3。然而,作者的测量表明这种情况很少发生(少于5%)。对于这些特殊情况,作者比较rcv3 / rcv1和rcv2 / rcv3的值,然后选择较小的值。这三个值将被多次测量,以避免不确定网络状态的干扰和可能的丢包。作者只比较这三个值的平均值。
3、大规模测量实验
在实验中作者测量了ISAV在所有发布的BGP前缀中的部署情况。他们从约3万个BGP前缀中挑选出合适的RVP,并在持续约3个月的时间内,从单一本地观测点出发,对这些前缀进行测量。优先选择实施适度ICMP速率限制的RVP,即那些既不过于严格(如只回应一个差错报文)也不过于宽松(如回应与请求数相同数量的差错报文)的路由器。在实际的测量中选择N=50,M=100,λ=0.6。如下图所示,对于所有目标网络,作者发现rcv1大于rcv2和rcv3,因为噪声数据包加剧RVP的ICMP速率限制而产生差异。进而推断ISAV的部署,然后在三个不同类别下绘制三个值的箱形图。作者发现结果与预期一致。对于作者推断部署了ISAV的网络,有rcv1 ≈ rcv3 > rcv2,而对于没有ISAV的网络,rcv1 > rcv2 > rcv3,这也表明作者提出的简单规则是有效的。此外,对于rcv1 ≈ rcv2 ≈ rcv3,无法推断其ISAV部署。
差错报文数量分布
下图是ISAV部署测量结果的总结,与相对完善的OSAV相比,ISAV的缺失令人担忧。本文的测量是迄今为止最大规模的IPv6 ISAV研究,涵盖了27532个BGP前缀,9677个AS和186个国家,并确定了比最先进的测量多2倍的缺乏ISAV的IPv6 AS。
ISAV部署测量结果
测量网络连通性
在本节中,作者将IVANTAGE应用于互联网上两个远程节点之间的可达性测量,这两个节点都不在研究者的控制之下。
1、测量方法
为了测量两个互联网节点(即A和B)之间的可达性,首先需要找到一个RVP。如果A或B已经是作者发现的RVP,这就容易多了。然而,假设A和B都不是RVP,在这种情况下,可以参考先前收集的RVP,以找到尽可能靠近A或B的适当RVP(即代理RVP)。通常情况下,可以为A或B找到至少一个合适的代理RVP,因为110万个RVP广泛分布在约30k个BGP前缀、9.5k个AS和182个国家。假设A是RVP,作者的方法由以下步骤组成,如下图所示。
ISAV部署测量结果
(1)本地探测器P快速地向不可达的IP地址X发送N个ICMP回显请求,这将导致A发送ICMP差错报文。
(2)P接收到A发送的rcv1个ICMP差错报文,由于ICMP速率限制机制,大多数情况下,rcv1 < N。
(3)P向B发送了M个带有欺骗源地址的ICMP回显请求,该源地址与步骤1中使用的不可达IP地址相同。
(4)B回复M个ICMP回显应答发送到该不可达IP地址。注意,ICMP回显应答要触发ICMP速率限制要困难得多,所以B用M个ICMP回显应答进行应答。
(5)由于这些应答被发送到一个不可达的IP地址,A用几个ICMP差错报文进行应答。如果A无法到达B,则不执行此步骤。
(6)大约在同一时间,P再次向该不可达IP地址发送N个ICMP回显请求,但没有欺骗源地址。
(7)P接收rcv2个ICMP差错报文。
作者通过比较rcv1和rcv2来推断可达性。如果B可以到达A,A将收到B发送给不可达IP地址的ICMP回显应答,这将触发A上的ICMP速率限制,因此在步骤7中,P收到的ICMP差错报文不会像以前一样多。如果B不能到达A,A就不会收到B发送的消息,那么步骤5就不会发生。因此,它的限速机制不会被触发,可以接收到和以前一样多的ICMP差错报文。作者还根据重复实验的平均值来推断可达性,以避免在单个实验中可能出现的丢包或其他干扰。
2、测量结果
在实际测量中引入阈值λ。若rcv2 / rcv1 ≥ λ,则推断两点之间不可达。为了提高测量的准确性和稳定性,进行了k次测量。实验表明,当k ≥ 4时,测量结果的稳定性显著提高,这说明四次测量足以得到可靠的结果。
下图是作者在不同λ和k = 6下测量的实验结果,显示出相对稳定的准确度超过90%,精密度和召回率超过80%,我们认为对于理论上不可能完成的测量任务来说已经很好了。当λ取不同值时,实验结果显示了高精度和召回率,特别是在λ = 0.8时,精度达到82.9%,召回率为81.2%,整体准确率超过90%。
可达性测量结果
结论
IVANTAGE技术成功展示了如何利用广泛分布在全球的路由器作为“观测点”,以较低的成本和侵入性,从单一位置有效测量IPv6网络的关键属性。作者将IVANTAGE应用于两个不同但都具有挑战性的测量任务:测量入站源地址验证(ISAV)的部署和测量任意网络节点之间的可达性。作者仅从一个本地观测点完成这两项任务,而无需控制目标或依赖目标网络中的其他服务。文中的大规模ISAV测量覆盖了大约50%的IPv6自治系统,发现其中大约79%容易受到欺骗,这是迄今为止对IPv6 ISAV最大规模的测量研究。在作者的评估中,可达性测量方法实现了超过 80% 的精度和召回率。研究强调了IPv6网络安全配置的不足,为未来改进提供了数据支持。
参考资料
[1] Pan L, Yang J, He L, et al. Your router is my prober: Measuring ipv6 networks via icmp rate limiting side channels[J]. arXiv preprint arXiv:2210.13088, 2022.
往期精彩文章推荐
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...