Slowloris 是一种拒绝服务攻击程序,它允许攻击者通过打开和维护攻击者和目标之间的许多并发HTTP连接来压倒目标服务器。

Slowloris 攻击是如何工作的?

Slowloris 是一种应用层攻击,它利用部分 HTTP 请求进行操作。攻击的功能是打开与目标 Web 服务器的连接,然后尽可能长时间地保持这些连接打开。

Slowloris 不是一类攻击,而是一种特定的攻击工具,旨在允许单台机器在不使用大量带宽的情况下关闭服务器。与消耗带宽的基于反射的DDoS 攻击(例如NTP 放大)不同,这种类型的攻击使用少量带宽,而是旨在通过看起来比正常速度慢但模仿常规流量的请求来耗尽服务器资源。它属于称为“低速和慢速”攻击的攻击类别. 目标服务器将只有这么多线程可用于处理并发连接。每个服务器线程将尝试在等待慢速请求完成时保持活动状态,这种情况从未发生。当超过服务器的最大可能连接数时,将不再应答每个额外的连接并且会发生拒绝服务。

Slowloris 攻击发生在 4 个步骤中:

00001. 攻击者首先通过发送多个部分 HTTP 请求标头来打开与目标服务器的多个连接。

00002. 目标为每个传入请求打开一个线程,目的是在连接完成后关闭该线程。为了高效,如果连接时间过长,服务器会超时超长连接,为下一个请求释放线程。

00003. 为了防止目标连接超时,攻击者会定期向目标发送部分请求标头,以保持请求处于活动状态。本质上说,“我还在这里!我就是慢,你等着我。”

00004. 在等待请求终止时,目标服务器永远无法释放任何打开的部分连接。一旦所有可用线程都在使用中,服务器将无法响应来自常规流量的额外请求,从而导致拒绝服务。

Slowloris 背后的关键是它能够以很少的带宽消耗引起很多麻烦。

如何缓解 Slowloris 攻击?

对于容易受到 Slowloris 攻击的 Web 服务器,有一些方法可以减轻一些影响。易受攻击的服务器的缓解选项可以分为 3 个一般类别:

00001. 提高服务器可用性- 增加服务器在任何时候允许的最大客户端数量将增加攻击者在服务器过载之前必须建立的连接数量。实际上,无论增加多少,攻击者都可以扩大攻击次数以克服服务器容量。

00002. 速率限制传入请求- 基于某些使用因素限制访问将有助于缓解 Slowloris 攻击。限制单个IP 地址允许建立的最大连接数、限制慢速传输速度以及限制允许客户端保持连接的最长时间等技术都是限制低速和慢速攻击有效性的方法。

00003. 基于云的保护- 使用可以充当反向代理的服务,保护源服务器。

Cloudflare 如何缓解 Slowloris 攻击?

Cloudflare 在开始向源服务器发送任何内容之前缓冲传入请求。因此,像 Slowloris 攻击这样的“低而慢”的攻击流量永远不会到达预定目标。