设为首页收藏本站

安而遇随-随遇而安

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
安而遇随-随遇而安 首页 其他 转载 查看内容

TCP反射放大中间盒武器化

2021-8-28 15:21| 发布者: 随便、先森。| 查看: 14377| 评论: 0|原作者: Kevin Bock, Abdulrahman Alaraj, Yair Fax, Kyle Hurley, Eric Wustrow, and Dave Levin|来自: censorship.ai

摘要: by:谷歌翻译这项工作在USENIX Security 2021上发表并获得了杰出论文奖。我们的会议演讲也可以在这里找到。概括:我们发现了一种新方法,攻击者可以通过滥用中间盒和审查基础设施在 TCP 上发起反射式拒绝服务 (DoS) ...
by:谷歌翻译

这项工作在USENIX Security 2021上发表并获得了杰出论文奖。我们的会议演讲也可以在这里找到

概括:

  • 我们发现了一种新方法,攻击者可以通过滥用中间盒和审查基础设施在 TCP 上发起反射式拒绝服务 (DoS) 放大攻击。与现有的基于 UDP 的攻击相比,这些攻击可以产生更多数量级的放大。
  • 这是第一个超越发送SYN数据包的 TCP 反射放大攻击,也是第一个基于 HTTP 的反射放大攻击。
  • 我们在野外发现了多种类型的中间盒错误配置,这些错误配置可能导致攻击者在技术上无限 放大:通过发送单个数据包,攻击者可以向受害者发起无穷无尽的数据包流。

总的来说,我们的研究结果表明,审查基础设施对更广泛的互联网构成的威胁比以前理解的要大。即使是在非审查民族国家中良性部署防火墙和入侵防御系统,也可以使用我们发现的技术进行武器化。

查看我们的全文、我们的会议演讲、我们的开源代码,或者您可以跳转到下面的常见问题解答部分

这不是我们发现审查员可能被武器化的唯一方式:请参阅关于我们在 WOOT 2021 中的工作的帖子“你的审查员就是我的审查员:武器化审查基础设施以应对可用性攻击”。

什么是反射放大?

反射放大攻击是 DoS 攻击者武器库中的强大工具。攻击者将受害者的请求欺骗到开放服务器(例如,开放的 DNS 解析器),然后服务器响应受害者。如果响应大于欺骗请求,则服务器在 DoS 攻击中有效地放大了攻击者的带宽:

武器化中间盒

目前大多数 DoS 放大都是基于 UDP 的。原因是 TCP 需要 3 次握手,这会使欺骗攻击复杂化。每个 TCP 连接都以客户端发送SYN数据包开始,服务器以 a 响应,SYN+ACK客户端以数据包完成握手ACK3 次握手保护 TCP 应用程序免受放大器的影响,因为如果攻击者发送SYN带有欺骗源 IP 地址的数据包,该数据包将发送SYN+ACK给受害者,并且攻击者永远不会了解SYN+ACK完成 3 次握手所需的关键信息在没有收到 的情况下SYN+ACK,攻击者无法代表受害者发出有效请求。

3 次握手可有效防止 TCP 兼容主机的放大。但是在这项工作中,我们发现大量的网络中间盒不符合 TCP 标准,并且可以被滥用来进行攻击。特别是,我们发现许多审查中间盒会响应带有大块页面的欺骗性审查请求,即使没有有效的 TCP 连接或握手。这些中间盒可以被武器化以进行 DoS 放大攻击。

中间盒通常在设计上不兼容 TCP:许多中间盒尝试处理非对称路由,其中​​中间盒只能看到连接中数据包的一个方向(例如,客户端到服务器)。但是这个特性使它们容易受到攻击:如果中间盒仅基于连接的一侧注入内容,攻击者可以欺骗 TCP 3 次握手的一侧,并说服中间盒存在有效连接。

这给我们留下了一些问题:触发这些中间盒的最佳方式是什么,我们可以从中获得什么样的放大因子?

发现放大中间盒

我们的目标是发现攻击者可以发送的一系列数据包,以欺骗中间盒注入响应,而无需完成真正的 3 次握手。

请注意,此目标不符合 TCP。我们正在利用实现中的弱点,而不是在 TCP 协议本身的设计中。这意味着仅研究 TCP 协议是不够的——我们必须研究真正的中间盒 TCP 实现。这带来了一个挑战:世界上有太多种类的中间盒供我们购买,即使我们可以购买,为民族国家审查基础设施提供动力的中间盒通常也不会出售。

相反,我们使用我们的工具Geneva来研究在野外审查中间盒。

为了找到要研究的中间盒,我们使用了 CensoredPlanet 的 Quack 工具发布的公共数据。Quack 是一种扫描器,可以在其路径上查找带有审查中间盒的 IP 地址。我们使用这些数据识别了位于世界各地的 184 个示例中间盒,这些中间盒通过注入块页面来执行 HTTP 审查。

Geneva ( Gen etic Eva sion) 是我们设计的一种遗传算法,旨在自动发现逃避审查的新方法,但其核心是,Geneva 是一个数据包级网络模糊器。我们修改了Geneva 的适应度函数,以奖励它使引发的响应尽可能大,然后针对所有184 个中间盒训练Geneva。

我们发现了 5 个数据包序列,这些数据包序列引起了中间盒的放大响应。其中每一个都包含一个格式良好的 HTTP GET 请求,该请求是针对中间框禁止的某个域的:

  • SYN数据包(带有禁止请求)
  • PSH
  • PSH+ACK
  • SYN数据包,后跟一个PSH包含禁止请求的数据包
  • SYN数据包,后跟一个PSH+ACK包含禁止请求的数据包

我们还发现了另外 5 个修改,它们进一步增加了一小部分中间盒的放大率;攻击者可以将这些用于特定的中间盒。有关这些修改的更多详细信息,请参阅我们的论文。

为了从这些中间盒中获得响应,我们需要一个被每个中间盒审查或禁止的域,但大多数审查中间盒使用不同的阻止列表,因此很难找到一个能够从每个人那里引出阻止页面的域。我们分析了 Quack 数据集,以找到从大多数中间盒中引发响应的 5 个域,这些域巧合地跨越了五个不同的区域:

  • www.youporn.com(S***Q)
  • www.roxypalace.com(赌博)
  • plus.google.com(社交媒体)
  • www.bittorrent.com(文件共享)
  • www.survive.org.uk(性健康/教育)

我们还使用example.com和根本没有域作为对照实验。

寻找放大器

我们扫描了整个 IPv4 Internet 以测量有多少 IP 地址允许反射放大。为此,我们修改了 zmap 扫描器以构建由日内瓦识别的所有五个数据包序列。

我们总共扫描了整个 IPv4 互联网 35 次(5 个数据包序列 × 7 个测试域)。我们测量了我们得到的响应,以计算我们从每个 IP 地址获得的放大系数。

我们的 zmap 版本是开源的,可在此处获得。

结果

我们发现的攻击类型粗箭头表示放大;红色的表示触发放大的数据包。(a) 正常 TCP 反射,其中攻击者发送单个 SYN 数据包以引发 SYN+ACK。(b) 中间盒反射,其中攻击者发送数据包序列以触发块页面或审查响应。(c) 组合目的地和中间箱反射,其中攻击者可以从中间箱和最终目的地引出响应。(d) 路由环路反射,其中触发数据包被困在路由环路中。(e) 受害者持续反射,其中受害者的默认响应触发来自中间盒或目的地的额外数据包。我们发现无限放大是由 (d) 未能减少 TTL 的路由循环和 (e) 受害者持续反射引起的。

回想一下,我们正在寻找中间盒中 TCP 实现的弱点,而不是 TCP 协议本身。此外,每个中间盒都有自己的注入策略和阻止页面:这意味着这种攻击没有单一的放大因子,因为我们触发的每个中间盒都会不同!

相反,我们可以查看响应大小的分布,以了解攻击者可用的放大量。

下面是我们在所有 35 次扫描中收到的每个 IP 地址的最大放大系数的图表,按 x 轴上的放大系数排序。在 y 轴上,您可以看到 IP 地址提供的放大系数。

在这张图上,您可以看到放大因子的巨大范围——从超过 100,000,000 到小于 1。

无限放大

接下来,我们将检查上图顶部的 IP 地址,我们可以看到放大系数在 1,000,000 到 100,000,000 之间。这些 IP 地址是我们的超级放大器,提供了巨大的放大系数。事实上,这些放大因素可能被低估了。这些数字来自我们的扫描停止收集数据的地方,而不是 IP 地址停止向我们发送数据的地方。这里发生了什么?

这就是我们发现技术上无限放大因子的地方。放大系数的计算方法是放大器接收的字节数除以发送的字节数。我们发现放大器一旦被来自攻击者的单个数据包序列触发,就会向受害者发送无穷无尽的数据包流。在我们的测试中,其中一些数据包流持续了数天,通常是放大器链路可以提供的全部带宽。

我们发现了导致这种无限放大的两个原因:路由环路受害持续放大器

路由循环

当数据包在从一个 IP 地址路由到另一个 IP 地址时遇到循环时卡住,两个 IP 地址之间就会出现路由循环。包含审查中间盒的路由环路为攻击者提供了新的好处:每次触发数据包绕过路由环路时,它们都会重新触发审查中间盒。

数据包在网络中存活的跳数通常TTLIP 数据包中的字段(或“生存时间”)调节:每次数据包从一个路由器传递到下一个路由器时,它的TTL值都会递减。如果TTL命中 0,则丢弃数据包。最大值TTL为 255:这意味着可以将触发序列发送到放大路由环路的攻击者免费获得额外的 ~250 倍放大。

比普通路由循环更危险的是无限路由循环。如果是一个不递减TTL值的循环路由路径,则会发生无限路由循环,从而导致数据包永远循环循环(或者,直到发生随机数据包丢弃)。我们发现了少量无限路由循环,这些循环遍历了审查基础设施(特别是在中国和俄罗斯),提供了无限放大。

受害者持续放大器

我们发现无限放大的第二个原因是受害者持续循环。当受害者收到意外的 TCP 数据包时,正确的客户端响应是使用RST数据包进行响应。我们发现少数放大器在处理来自受害者的任何其他数据包时会重新发送其块页面- 包括这会产生无限的数据包风暴:攻击者向受害者发出单个块页面,这会导致来自受害者的 a,这会导致来自放大器的新块页面,这会导致来自受害者的 a,等等。RSTRSTRST

受害者持续案件特别危险,原因有两个。首先,受害者的默认行为维持了对自身的攻击。其次,这种攻击会导致受害者在淹没下行链路的同时淹没自己的上行链路。

这些真的是中间盒吗?

是的,我们的结果表明如此。为了测试这一点,我们进行了一个TTL有限的实验:我们采用前 100 万个放大器,跟踪它们以确定它们的距离,然后重新发送具有减少 TTL 数的探测器。这确保了我们的探测不会到达目标主机,但可能会穿过审查的中间盒,所以如果我们仍然看到响应,我们就知道它们是由中间盒生成的。我们确认,前 100 万个放大器中约有 83% 是由中间盒引起的。

民族国家的作用是什么?

我们发现,世界各国的民族国家审查基础设施也可以武器化。这些民族国家中的大多数都是弱放大器(例如,中国的防火墙仅提供大约 1.5 倍的放大),但其中一些提供更具破坏性的放大,例如沙特阿拉伯(约 20 倍的放大)。

民族国家的真正挑战在于,它们的审查基础设施通常会处理所有进出该国的流量。这意味着与其他放大攻击不同,受害者接收到的流量的源 IP 地址是放大器本身,中间盒后面的每个 IP 地址都可以作为流量源出现。换句话说:一个放大的民族国家内的每个 IP 地址都可以是一个放大器。

攻击伤害

攻击者可以通过无限放大造成多少伤害?在这种情况下,作为衡量标准的“放大系数”开始失效。大多数时候,当人们询问放大系数时,他们是在询问攻击者对给定的攻击向量可以造成多大的破坏。如果攻击者可以引出技术上无限的放大因子,但在链路完全饱和之前只有 64 kbps,那么攻击者可以造成的破坏量是有限的。

一个更好的问题:攻击者可以通过这次攻击获得的最大带宽是多少?不幸的是,这是最难从道德上研究的。为了测量给定放大器的最大容量,我们必须使每个网络的链路完全饱和,这可能对该网络的用户产生真正的负面影响。目前,攻击者可以从这次攻击中获得的真正容量尚不清楚。

防御

防御这种攻击是困难的。传入的流量洪流来自 TCP 端口 80(正常 HTTP 流量),响应通常是格式正确的 HTTP 响应。

由于中间盒正在欺骗它们生成的流量的 IP 地址,这意味着攻击者可以将反射流量的源 IP 地址设置为中间盒后面的任何 IP 地址。对于某些网络来说,这只是一小部分 IP 地址,但如果攻击者使用民族国家审查基础设施,攻击者可以使攻击流量来自该国家/地区的任何 IP 地址。这使得受害者很难在攻击期间丢弃来自违规 IP 地址的流量。

负责任的披露

2020 年 9 月,我们与多个国家级 CERT(计算机应急准备小组)、DDoS 缓解服务和防火墙制造商联系并分享了我们论文的高级副本。我们还与多个 DDoS 缓解服务和美国 CERT 举行了进一步会议,以进一步讨论缓解问题,并一直与 DDoS 缓解服务保持沟通。

不幸的是,我们能做的只有这么多。完全解决这个问题将需要各国投资于可能削弱其审查基础设施的变革,我们认为这不太可能发生。

常问问题

  1. 谁是脆弱的?我是否需要生活在受审查的国家才能成为受害者?
    不幸的是,我们发现这种攻击几乎可以针对任何人,无论您是否生活在受审查的政权中。

  2. 谁容易被武器化?
    大多数民族国家的审查基础设施目前很脆弱,许多现成的商业防火墙也是如此。我们的研究旨在提供有关此问题的全局视图,而不是针对单个防火墙类型,因此我们尚不知道活动使用中易受此攻击的防火墙的完整列表。

  3. 攻击者可以通过这种攻击获得多大的放大系数?
    我们正在利用中间盒对 TCP 协议的实现,这与大多数先前利用协议规范本身的攻击不同。因此,我们不能只为放大系数指定一个数字:它与每个中间盒都不一样!
     
    但总的来说,我们发现数十万个 IP 地址超出了 DNS 和 NTP 的放大系数,其中数百个提供的放大系数大于著名的 memcached (51,000x)。

  4. 你发现的最高放大系数是多少?
    从技术上讲,无限。放大系数的计算方法是放大器接收的字节数除以发送的字节数。我们发现放大器一旦被来自攻击者的单个数据包序列触发,就会向受害者发送无穷无尽的数据包流。在我们的测试中,其中一些数据包流持续了数天,而一些则以它们的链路可以提供的全部带宽。
     
    然而,在这种情况下,作为衡量标准的“放大系数”开始失效。大多数时候,当人们询问放大系数时,他们是在询问攻击者对给定的攻击向量可以造成多大的破坏。如果攻击者可以引出无限放大因子,但最高速度仅为 64 kbps,那么攻击者可以造成的破坏量是有限的。
     
    一个更好的问题:攻击者可以通过这次攻击获得的最大带宽是多少?不幸的是,这是最难从道德上研究的。为了测量给定放大器的最大容量,我们必须使每个网络的链路完全饱和,这可能对该网络的用户产生真正的负面影响。目前,攻击者可以从这次攻击中获得的真正容量尚不清楚。

  5. 谁需要解决这个问题?
    有两个角度可以解决这个问题:防止攻击者欺骗他们的源 IP 地址和保护中间盒不错误地注入流量。不幸的是,多年来一直在努力完全防止源 IP 地址欺骗。完全解决这个问题将需要每个易受攻击的防火墙制造商更新他们的中间盒,以及每个部署了易受攻击的中间盒以升级其基础设施的组织和审查国家。
     
    不幸的是,这个问题不太可能很快得到完全解决。

  6. 我应该担心吗?
    大多数人可能不需要担心这种攻击,但我们一直在使用 DDoS 缓解服务,因此如果在野外使用攻击,他们会做好准备。

  7. 是否在野外发现了这种攻击?
    据我们所知,还没有。我们正在使用不同的 DDoS 缓解服务来监控它是否被使用。

  8. 这与以前的放大攻击相比如何?
    我们的结果表明,这种攻击至少与现有的最大的基于 UDP 的放大攻击一样危险。我们发现数百个带有中间盒的 IP 地址提供的放大系数大于 memcached (51,000x),还有数十万个 IP 地址提供的放大系数大于 DNS 和 NTP。

  9. 这次攻击是否被负责任地披露了?
    是的,但我们是有限的。2020 年 9 月,我们与多个国家级 CERT、DDoS 缓解服务和防火墙制造商联系并分享了我们论文的高级副本。我们还与多个 DDoS 缓解服务和美国 CERT 会面,以进一步讨论缓解问题。
     
    不幸的是,要彻底解决这个问题,需要各国投入资金进行可能削弱其审查基础设施的变革,我们认为这不太可能发生。

  10. 为什么你的攻击没有标志或花哨的名字?
    如果您有任何建议,请给我们留言!

你可以在这里阅读我们的全文要引用,请在此处使用 Bibtex 




鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

返回顶部