freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

针对洋葱路由网络的带宽膨胀攻击
2024-05-11 07:02:24

Tor是提供匿名通信的著名系统,每日用户群达 200 万。自成立以来,它一直受到各种流量指纹和关联攻击,旨在使其用户去匿名。这些攻击的一个关键要求是吸引尽可能多的用户流量到敌对中继,这通常是通过带宽膨胀攻击(Bandwidth Inflation Attack)来实现的。

本文提出了 Tor 中的一种新的膨胀向量,称为 MirageFlow,它可以膨胀带宽。攻击利用 Tor 中继节点之间的资源共享,并使用一组攻击者控制的中继,在集群内协调资源分配,以欺骗带宽测量者相信集群中的每个中继节点都拥有充足的资源。本文提出了两种攻击变体,C-MirageFlow 和 D-MirageFlow,并在私有 Tor 测试网络中测试这两个版本。评估表明,攻击者可以使用 C-MirageFlow 将测量带宽增加近 n 倍,使用 D-MirageFlow 将测量带宽增加 n∗N的近一半,其中 n 是一台服务器上托管的集群大小,N 是服务器数量。

0x01 引言

在隐私增强技术已成为抵御恶意追踪的有力防御手段。在这些技术中,匿名通信网络(如 Tor)已证明其有效性并迅速普及。 Tor 依靠 7000 多台志愿者运行的服务器(称为洋葱路由器或中继),每天通过由 3 到 8 个(通常为 3 个)中继组成的匿名保护电路为近 200 万用户路由加密网络流量。

作为其正常运行的一个组成部分,Tor 网络以共识文件的形式维护活动中继列表,其中包含有关网络中中继的有用自我报告和测量状态信息,包括每个中继可用的估计带宽。Tor 客户端采用路径选择算法,该算法利用最新的共识文件作为输入。该算法形成由中继组成的通信电路,用户数据通过这些中继传输。为了确定中继的可用带宽,Tor 采用其带宽扫描技术,该技术涉及通过中继建立两跳测量电路并沿此路径向 Web 服务器执行数据传输(下载/上传)。通过利用这种方法,Tor 可以测量中继的带宽并将此信息合并到共识文件中。

问题是,在带宽测量期间创建和使用的测量电路仅使用两个中继来构建,而流量需要通过至少三个中继才能确保匿名性。这使得带宽测量器生成的流量很容易与常规用户流量区分开来。一旦检测到此类测量电路,攻击者就可以停止为用户流量提供服务,并利用其整个可用带宽仅转发测量流量,从而在测量期间增加其可用带宽。文献中表明,通过采用这种策略,攻击者能够将其测量带宽和被选中转发用户流量的概率提高至 177 倍。膨胀攻击的另一种直接策略是恶意中继在其描述符中错误报告其可用带宽。这些中继试图通过提供虚假和夸大的报告来增加其在用户流量中的份额,而不管其实际带宽能力如何。

本文对 Tor 带宽测量机制的研究揭示了另一个关键弱点。目前,没有什么可以阻止中继运营商将它们部署在共享资源上,例如物理机器或网络链路。例如,可以使用在单个物理主机上执行的虚拟机托管多个攻击者控制的中继节点,或者,即使驻留在单独的物理机器上,它们也可以共享网络链路。攻击者可以利用这一事实,将物理主机(与共存中继器一起)和/或网络链路的全部资源用于当前检测到的测量流量,同时丢弃所有针对所有而非一个攻击者控制的中继节点的用户流量,从而进一步增加其测量带宽,从而整体上增加先前已知的膨胀攻击的影响(其倍数高达 177 ),其额外倍数等于集群中攻击者控制的中继器的数量。当带宽扫描仪同时测量集群内两个或更多恶意中继时,攻击效果会降低。但是,由于负责测量整个 Tor 网络的带宽扫描仪数量很少,因此这种共同测量的影响仍然有限。因此,发生这种共同测量的可能性很低。然而,探索带宽扫描仪的数量如何影响提议攻击的膨胀因素是很有趣的。

0x02 背景

Tor 中继和线路:Tor 用户(也称为客户端)从 Tor 网络中随机选择三个或更多中继来建立通信电路。该电路的初始跳跃(也称为守卫中继)用作客户端连接的入口点,通常在轮换之前保持使用 2-3 个月。要被视为守卫中继,它必须满足特定标准,包括稳定性、足够的正常运行时间(通常为 8-68 天)和最低带宽 2 Mbps。此匿名通信电路中的最后一个中继称为出口中继。它代表最后一跳,负责将客户端的流量传输到 Tor 网络之外的互联网上所需的目的地。因此,服务提供商可见的 IP 地址是出口中继的 IP 地址,确保客户端的 IP 地址保持隐藏。守卫和出口中继之间的中继称为中间中继,用作电路中的中间跳跃。它们只是在两个方向上转发流量,从而实现 Tor 客户端与其在互联网上的预期目的地之间的通信。Tor 中继由一个全球志愿者社区运营,该社区被称为中继运营商。一个这样的运营商可以提供分组为家族的多个中继,而 Tor 的路径选择算法可防止来自同一家族的多个中继被纳入电路。值得注意的是,家族状态是通过为中继分配相同的“MyFamily”属性来自我报告的。Tor 网络还允许使用相同的公共 IP 地址托管两个 Tor 中继。

目录和带宽权限:在建立连接时,Tor 客户端会从由称为目录权威机构 (DA,Directory Authorities) 的专门实体提供的列表中选择用于电路的中继。这些 DA 维护最新的活动中继名册,包括其标志状态(守卫、中间或出口)和带宽信息。DA 每小时更新一次此列表,DA 之间的共识经过加密签名并提供给客户端。

这些 DA 的一个子集(通常为六个)也充当带宽权威机构 (BA,Bandwidth Authorities)。这些 BA 还承担着进行主动测量以估计 Tor 中继的可用带宽的额外责任。值得注意的是,这六个 BA 负责测量超过 7000 个中继(每个 BA 通常运行 4-5 个并行测量线程)。BA 有大约 60 分钟的有限时间来完成测量轮次并将结果包含在后续的共识文件中。此外,由于各种原因(例如更新、部署问题或持续攻击),BA 有时会暂时停止服务数小时甚至长达数月。因此,在此期间,许多测量可能不完整或缺失。

Tor 中的带宽测量:BA 最初使用的带宽扫描机制是 2011 年的 TorFlow 扫描仪。然而,自 2018 年以来,它已逐渐被简单带宽扫描仪 (SBWS) 机制取代。这项工作中的重点主要围绕 SBWS,因为它现在已经完全取代了 TorFlow。

TorFlow 和 SBWS 方法都采用带宽测量方法,即通过两跳电路从 Web 服务器多次下载大文件。值得注意的是,具有两个中继的电路不提供匿名性,因此,测量流量可以与用户流量轻易区分。在 SBWS 中,电路中的第一个中继是被测量的目标中继,而第二个中继是随机选择的出口中继,其速度至少是目标中继的两倍。 Web 服务器通过 HTTPS 提供 1GB 的文件供 SBWS 扫描器下载。 SBWS 扫描器随机选择 0 到 1GB 之间的字节范围,通常以 16MiB 为增量,例如 0-16MiB 或 16MiB-32MiB,依此类推。如果下载在 5 秒内完成,则范围会扩大,如果需要超过 10 秒,则范围会缩小。一旦确定了适当的范围,就会下载五个适当大小的文件,这意味着它们可以在 5-10 秒的时间范围内下载,并记录每个文件下载的字节数和所花费的时间。因此,一次测量至少需要 25 秒。

值得注意的是,SBWS 和 TorFlow 方法生成的带宽文件每次测量只包含一个时间戳,表示测量过程的结束。但是,它们不包括开始时间戳或测量持续时间。这种遗漏很重要,因为它阻止了从带宽文件中确定性地再现测量时间线。例如,在识别共同测量的中继时,此信息将很有价值。一旦获得有效的测量值,SBWS 和 TorFlow 都会将它们合并到带宽文件中,然后将其转发给 DA 进行聚合。

建立共识:带宽测量文件(也称为 BA 投票)由 DA 处理,以汇总结果并根据 Tor 目录协议计算带宽权重。本质上,每个中继的共识权重是根据其自我报告的带宽和 BA 使用带宽扫描仪测量的带宽计算的。值得注意的是,SBWS 计算相对于所有 Tor 中继的带宽权重。生成的共识文件由所有 DA 签名,然后分发给 Tor 客户端。

尽管存在通过进行实际测量来协助交叉验证自我报告的中继带宽值的 BA,但攻击者仍然可以通过选择性拒绝服务 (DoS) 策略有效地执行膨胀攻击。在这种情况下,恶意中继仅响应测量流量,而丢弃所有其他

# 洋葱路由 # Tor网络 # 中继攻击 # 带宽 # 流量匿名
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录