HTTP 泛洪是一种 分布式拒绝服务 ( DDoS ) 攻击,其中攻击者利用看似合法的 HTTP GET 或 POST 请求来攻击 Web 服务器或应用程序。

HTTP 泛洪攻击是体积攻击,通常使用僵尸网络“僵尸大军”——一组连接 Internet 的计算机,每台计算机都被恶意接管,通常在特洛伊木马等恶意软件的帮助下进行。

作为一种复杂的第 7 层攻击,HTTP 泛洪不使用格式错误的数据包、欺骗或反射技术,并且比其他攻击需要更少的带宽来关闭目标站点或服务器。

因此,他们需要更深入地了解目标站点或应用程序,并且每次攻击都必须经过精心设计才能有效。这使得 HTTP 泛洪攻击更难以检测和阻止。

攻击说明

当像 Web 浏览器这样的 HTTP 客户端与应用程序或服务器“对话”时,它会发送一个 HTTP 请求——通常是两种类型的请求之一:GET 或 POST。GET 请求用于检索标准的静态内容(如图像),而 POST 请求用于访问动态生成的资源。

当它强制服务器或应用程序分配最大的资源来响应每个单个请求时,这种攻击是最有效的。因此,肇事者通常旨在用多个请求淹没服务器或应用程序,每个请求都尽可能地处理密集型。

出于这个原因,从攻击者的角度来看,使用 POST 请求的 HTTP 洪水攻击往往是最有效的;因为 POST 请求可能包含触发复杂服务器端处理的参数。另一方面,基于 HTTP GET 的攻击更容易创建,并且可以在僵尸网络 场景中更有效地扩展 。

缓解方法

HTTP 洪水攻击很难与有效流量区分开来,因为它们使用标准 URL 请求。这使它们成为当今服务器和应用程序面临的最先进的非漏洞安全挑战之一。传统的基于速率的检测在检测 HTTP Flood 攻击方面效果不佳,因为 HTTP Flood 中的流量通常低于检测阈值。

最高效的缓解机制依赖于流量分析方法的组合,包括识别 IP 信誉、跟踪异常活动和采用渐进式安全挑战(例如,要求解析 JavaScript)。推荐相关阅读:《什么是HTTP 503错误-服务不可用》