什么是慢速攻击?
慢速攻击是 DoS 或 DDoS 攻击的一种,依赖一小串非常慢的流量,可以针对应用程序或服务器资源发起攻击。与更传统的蛮力攻击不同,慢速攻击所需的带宽非常小,并且难以防护,因为它们生成的流量很难与正常流量区分开。大规模 DDoS 攻击可能会很快被注意到,而慢速攻击可能会在很长一段时间内不被发现,同时拒绝或减慢对真实用户的服务。
与可能需要一个僵尸网络才能发起的分布式攻击相反,发起慢速攻击不需要很多资源,使用一台计算机就可以成功发起。用于发动慢速攻击的两个最受欢迎的工具是 Slowloris 和 R.U.D.Y.。
慢速攻击的工作原理
慢速攻击以基于线程的 Web 服务器为目标,旨在通过慢速请求捆绑每个线程,从而阻止真正的用户访问服务。在攻击时,需要非常缓慢地传输数据,但传输速度又足够快,以防止服务器超时。
想象有一座四车道桥梁,每个车道都有收费站。司机在收费站处停车,交出钞票或几枚硬币,然后过桥,即可为下一个司机腾出车道。现在想象一下,有四个驾驶员同时出现并占据了所有开放的车道,而他们每个人都慢慢地将小额硬币交给收费站操作员,一次交一枚硬币,堵塞所有可用车道数小时,并阻止其他驾驶员通过。这种令人丧气的情况就与低速缓慢攻击的工作原理非常相似。
攻击者可以使用 HTTP 标头、HTTP 发布请求或 TCP 流量进行慢速攻击。以下是 3 个常见的攻击示例:
- Slowloris 工具连接到服务器,然后缓慢发送部分 HTTP 标头。这将导致服务器保持连接打开状态以便接收其余的标头,这样就会将线程捆绑起来。
- 另一个名为 R.U.D.Y.(死亡之子)的工具会生成 HTTP POST 请求以填写表单字段。它告诉服务器将发送多少数据,但随后却非常缓慢地发送数据。服务器保持连接打开,因为它预计还有更多数据。
- 另一种慢速攻击是 Sockstress 攻击,这种攻击利用 TCP/IP 三向握手中的漏洞,创建出不确定的连接。
Web 服务如何检测慢速攻击?
用于识别和阻止传统 DDoS 攻击的速率检测技术无法找出低速缓慢攻击,因为它们看起来像正常流量。检测它们的最佳方法是仔细监控和记录服务器资源使用情况并结合行为分析。将正常时间的流量和用户行为与潜在攻击期间的流量和用户行为进行比较。
如果服务器运行缓慢或崩溃,并且怀疑是低速缓慢攻击,则这种攻击的一个迹象是正常用户进程需要更长的时间。如果用户操作(例如填写表格)通常需要几秒钟,但实际上花费几分钟或几小时,占用的服务器资源比正常情况多得多,则可能是慢速攻击的原因。
在检测到慢速攻击后,如何缓解又是另一个问题。
如何停止慢速攻击
缓解慢速攻击的一种方法是升级您的服务器可用性; 您的服务器可以同时保持的连接越多,攻击阻塞服务器的难度就越大。这种方法的问题是攻击者可以尝试扩展他们的攻击来填满您服务器的可用性。