是什么阻止我使用 HTTP 服务器启动 SYN-ACK 洪水?

信息安全 ddos 洪水
2021-09-02 11:01:18

我最近一直在研究网络,这个问题浮现在我的脑海。

是什么阻止我用我的(攻击)目标的源地址发送大量 SYN 请求,并用 SYN-ACK 数据包淹没目标的互联网线路?

这让我比针对我的攻击目标的简单 SYN 洪水(或 UDP 洪水)更有优势——匿名,我可以通过这种方式隐藏我的真实 IP,并且通过黑洞来减轻我的攻击非常困难,因为我可以强制互联网上的任何 HTTP 服务器发送流量。

另一个优点是我可以从僵尸网络中的几乎任何计算机(包括防火墙后面的计算机)将 SYN 发送到 HTTP 服务器。

我的问题是:为什么我不能这样做?为什么这没有在野外被利用?

3个回答

这是一种众所周知的攻击,称为“反射 DoS”。它不会对防御者造成太大问题的原因是接收到意外的 SYN+ACK 不会占用目标服务器上的任何状态。最多它可能会发回一个数据包说“呃,对不起,没想到”,这可能会导致他们的网络连接在攻击者有大量带宽可供使用的情况下出现饱和,但大多数情况下这不是t 对攻击者非常有用。大多数时候,服务前面的防火墙会发现没有打开的连接,只是默默地丢弃数据包。通常,SYN 和 SYN+ACK 数据包非常小,因此您需要大量的数据包才能在泛洪方面对防御者造成任何问题。

相比之下,SYN 泛洪有时有效的原因不是网络链接变得饱和,而是服务器的 TCP 堆栈期待新客户端发送 ACK 并且必须保持状态直到等待时间超时,从而导致半开达到连接限制并拒绝来自合法用户的新连接。然而,在大多数明智的情况下,这主要通过使用现代 TCP/IP 堆栈实现和防御措施(如 TCP cookie 和防火墙/IPS 规则)来缓解。

更常见的泛洪反射攻击类型是在攻击过程中放大攻击,攻击者发送的小数据包会从服务器产生大的响应数据包,从而使攻击者可以显着放大流量。这最初主要是针对 DNS 服务器进行利用的,但最近攻击者发现了许多其他产生更大放大系数的服务,特别是 NTP。

在大多数 ISP 或组织中,您的攻击可能不适用于外部,仅仅是因为它被认为是行业的最佳实践和良好的礼仪,可以执行 Cisco 所说的出口过滤。

对于某些防火墙品牌,例如 CheckPoint,如果启用了反欺骗措施,您将只能将具有欺骗性数据包的机器连接到同一网络上。

简单来说,任何组织,实际上是许多 ISP,都会在他们的防火墙或边界网关中过滤掉任何没有作为自己的 IP 地址源的 Internet 包。

在我管理的 ISP 和大型组织中,我总是实施入口和出口过滤。

自 90 年代后期以来,入口/出口过滤器一直是标准做法,以减轻伪造数据包和 DDOS 攻击。许多人仍未实施这些措施。

技术提示:使用入口和出口过滤保护网络边缘

作为一个轶事:我在第三世界国家最大的 ISP 之一管理 IP/通信/系统;我们仍然几乎受卫星限制,特别是上行带宽非常昂贵且稀缺。有一次,服务台向我转发了一张票,竞争对手购买了我们的调制解调器,他们抱怨我们的服务没有转发他们的 IP 地址空间

作为一个更严肃的故事:我曾经禁用了几分钟我的入口过滤以进行测试,并且由于我的上游提供商错误没有正确过滤他们的多播视频流量,我的膝盖非常快。

它可能有效,但似乎很痛苦。

如果我没听错的话,你的“反射器”机器上的裸 SYN 最终会被任何 IPS 或现代防火墙识别为试图泛滥并被丢弃。

受害者上未经请求的 SYN-ACK 将在防火墙处丢弃。它甚至不会去服务端口。

[source] -ephermal:TCP(SYN):80-> [reflector] -80:TCP(SYN-ACK):ephermal-> [victim]

很多没有 synflood 保护的网络服务器会发送 SYN-ACK 来使 1Gbps 管道饱和