| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 利用TCP反射放大攻击将中间件武器化 -> 正文阅读 |
|
[网络协议]利用TCP反射放大攻击将中间件武器化 |
简介这篇文章发表于USENIX SEC 2021,并且获得了USENIX SEC 2021 杰出论文奖。 主要贡献:
总的来说,我们的结果表明审查基础设施对广阔的互联网构成的威胁比以前了解的更大。即使是在没有审查的民族国家中良性部署的防火墙和入侵防御系统,也可以使用我们发现的技术进行武器化。 什么是反射放大攻击?反射放大攻击是 DoS 攻击者武器库中的强大工具。攻击者欺骗/伪造一个从受害者到开放服务器(例如,开放 DNS 解析服务器)的请求,服务器将响应发给受害者。如果响应大于欺骗/伪造的请求,服务器在 DoS 攻击中有效地放大了攻击者的带宽。
武器化中间件现今大多数 DoS 放大都是基于 UDP 的。这样做的原因是 TCP 需要 3 次握手,这使欺骗攻击变得复杂。每个 TCP 连接都以客户端发送 SYN 数据包开始,服务器以 SYN+ACK 响应,客户端以 ACK 数据包完成握手。3 次握手保护 TCP 应用程序免于成为放大器,因为如果攻击者发送带有欺骗性的源 IP 地址的 SYN 数据包,SYN+ACK 将发送给受害者,并且攻击者永远不会获得所需的 SYN+ACK 中包含的关键信息,来完成 3 次握手。在没有收到 SYN+ACK 的情况下,攻击者无法代表受害者发出有效请求。
中间件通常在设计上不符合 TCP 标准:许多中间件尝试处理非对称路由,其中中间件只能看到连接中的一个方向的数据包(例如,客户端到服务器)。但是这个特性让他们容易受到攻击:如果中间件注入的数据仅基于连接的一个方向,攻击者就可以欺骗 TCP 3 次握手的一个方向,并说服中间件存在有效连接。
发现可以放大的中间件我们的目标是发现攻击者可以发送的数据包序列,以欺骗中间件注入响应,而无需完成真正的 3 次握手。 请注意,此目标不符合 TCP 标准。我们正在利用实现中的弱点,而不是 TCP 协议本身的设计。这意味着仅研究 TCP 协议是不够的,我们必须研究真正的中间件 TCP 实现。这提出了一个挑战:世界上有太多种类的中间件供我们购买,即使我们可以购买,支持民族国家审查基础设施的中间件通常也不会出售。 因此,我们使用我们的工具 Geneva 来研究在野外审查中间件。 为了找到要研究的中间件,我们使用了 CensoredPlanet 的 Quack 工具发布的公共数据。Quack 是一种扫描器,它在审查中间件的路径上查找 IP 地址。我们使用这些数据来识别位于世界各地的 184 个样本中间件,这些中间件通过注入块页面来执行 HTTP 审查。 Geneva (Genetic Evasion) 是我们设计的一种遗传算法,旨在自动发现逃避审查的新方法,但从本质上讲,Geneva 是一个数据包级网络 Fuzzer。我们修改了 Geneva 的 fitness function,以奖励它使引发的响应尽可能大,然后针对所有 184 个中间件训练 Geneva。
我们还发现了另外 5 个变种,它们进一步增加了一小部分中间件的放大率;攻击者可以将这些用于特定的中间件。有关这些修改的更多详细信息,请参阅我们的论文。 为了触发这些中间件的响应,我们需要一个被每个中间件审查或禁止的域,但大多数审查中间件使用不同的阻止列表,因此很难找到一个域来触发每个中间件的阻止页面。 我们分析了 Quack 数据集以找到触发最多中间件响应的 5 个域,这些域恰好是五个不同的类型:
我们还使用了 example.com 和 没有域 作为对照实验。 寻找放大器我们扫描了整个 IPv4 因特网以测量有多少 IP 地址允许反射放大。 为此,我们修改了 zmap 扫描器以构建由 Geneva 识别的所有五个数据包序列。 我们总共扫描了整个 IPv4 因特网 35 次(5 个数据包序列 × 7 个测试域)。我们测量了我们得到的响应,以计算我们从每个 IP 地址得到的放大系数。 我们的 zmap 版本是开源的,可在此处获得。 结果上图是我们发现的攻击类型。 粗箭头表示放大;红色表示触发放大的数据包。 a. 正常 TCP 反射,其中攻击者发送单个 SYN 数据包以引出 SYN+ACK。 我们发现无限放大是由** (d) 无法减少 TTL 的路由循环和 (e) 受害者持续反射引起的**。 回想一下,我们正在寻找中间件中 TCP 实现的弱点,而不是 TCP 协议本身。 此外,每个中间件都有自己的注入策略和阻止页面:这意味着这次攻击没有单一的放大系数,因为我们触发的每个中间件都不同! 相反,我们可以查看响应大小的分布,以了解攻击者可用的放大系数。 上图是我们在所有 35 次扫描中为每个 IP 地址收到的最大放大系数的图表,按 x 轴上的放大系数排序(放大倍数大的 IP 排在前)。 在 y 轴上,您可以看到 IP 地址提供的放大系数。 在此图表上,您可以看到放大系数的范围很大 - 从超过 1亿 到小于 1。 无限放大接下来,我们将检查上图 top 的 IP 地址,我们可以看到放大系数在 100w 到 1亿 之间。这些 IP 地址是我们的超级放大器,提供了巨大的放大系数。事实上,这些放大系数可能被低估了。这些数字来自我们的扫描停止收集数据的地方,而不是 IP 地址停止向我们发送数据的地方。这里发生了什么? 这是我们发现技术上无限放大系数的地方。放大系数的计算方法是放大器接收的字节数除以发送的字节数。我们发现放大器一旦被攻击者的单个数据包序列触发,就会向受害者发送无休止的数据包流。在我们的测试中,其中一些数据包流持续了数天,通常是放大器链路可以提供的全带宽。 我们发现了这种无限放大的两个原因:路由环路和受害者的持续放大。 路由环路当数据包在从一个 IP 地址路由到另一个 IP 地址时在穿越环路时卡住时,两个 IP 地址之间就会发生路由环路。包含审查中间件的路由循环为攻击者提供了新的好处:每次触发数据包环绕路由循环时,它们都会重新触发审查中间件。 数据包在网络中存活的跳数通常由 IP 数据包中的 TTL 字段(生存时间)调节:每次数据包从一个路由器传递到下一个路由器时,它的 TTL 值都会递减.如果 TTL 达到 0,则丢弃数据包。最大 TTL 值为 255:这意味着可以将触发序列发送到放大路由循环的攻击者可以免费获得额外的大约 250 倍的放大。 比普通路由循环更危险的是无限路由循环。如果是一条不递减 TTL 值的循环路由路径,导致数据包永远循环(或直到发生随机数据包丢弃),则会发生无限路由循环。我们发现了少量无限路由循环,它们穿越了提供无限放大的审查基础设施(特别是在中国和俄罗斯)。 受害者的持续放大我们发现无限放大的第二个原因是受害者持续循环。当受害者收到意外的 TCP 数据包时,正确的客户端响应是使用 RST 数据包进行响应。我们发现少数放大器在处理来自受害者的任何额外数据包时会重新发送它们的块页面 - 包括 RST。 这会产生一个无限的数据包风暴:攻击者向受害者引出单个块页面,这会导致受害者发出 RST,从而导致放大器产生新的块页面,从而导致受害者发出 RST,不断循环。 由于两个原因,受害者持续放大的情况特别危险。首先,受害者的默认行为支持对自身的攻击。其次,这种攻击会导致受害者在淹没下行链路的同时淹没自己的上行链路。 这些真的是中间件吗?是的,我们的结果表明如此。为了测试这一点,我们进行了一个 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 缓解服务保持沟通。 不幸的是,我们能做的只有这么多。完全解决这个问题将需要各国投资于可能削弱其审查基础设施的变革,我们认为这不太可能发生。 FAQ
参考Weaponizing Middleboxes for TCP Reflected Amplification |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 21:26:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |