应用层 DDoS 攻击, 以及如何减轻它们

DDoS 攻击 (分布式拒绝服务) 和 DoS (拒绝服务) 根据攻击所针对的 OSI 模型层,攻击可以大致分为三类: 网络层 (层 3), 传输层 (层 4), 和应用层 (层 7).
层 3 和图层 4 攻击通常不太复杂–即使它们可能非常难以缓解–并涉及用流量淹没网络和传输层, 使目标系统的资源负担过重,使其对合法用户不可用. 这些类型的攻击可以使用各种技术(如 ICMP 泛洪)发起, TCP SYN 泛洪, 或 UDP 泛洪.
例如 ICMP 泛洪, 是 Layer 3 攻击,其中大量 ICMP 数据包被淹没到目标系统, 使其无响应. TCP SYN 泛洪, 另一方面, 是一个层 4 利用 TCP 连接建立方式的攻击.
在 SYN 泛洪攻击中, 攻击者向目标系统发送大量 SYN 数据包, 但从不发送 ACK 数据包来完成连接. 这会导致系统为每次连接尝试分配资源,最终使系统过载并使其对合法用户不可用. UDP 泛洪将大量 UDP 数据包发送到目标系统, 消耗其资源并使其无响应.
应用层 DDoS 攻击
应用层攻击比层攻击更复杂,更难缓解 3 和 layer 4 攻击. 这些攻击以应用程序层为目标 (层 7) 并利用应用程序本身的漏洞. 层 7 攻击可以造成更大的损害,因为它们可以直接影响应用程序和底层基础设施. 您将无法缓解层 7 层的 DDoS 攻击 3 或图层 4 网络防火墙等工具.
HTTP 泛洪, Slowloris 攻击, 和 DNS 放大攻击是 Layer 7 拒绝服务攻击. 这些攻击需要更复杂的防御措施,例如应用层防火墙, 入侵防御系统, 和 CDN (内容交付网络).
HTTP 泛洪
使用 GET 或 POST 请求执行 HTTP 洪水攻击,以压垮目标服务器. 使用 GET 请求的泛洪攻击通常更简单,并且需要更少的资源,因为它们只从服务器请求信息. POST 请求, 另一方面, 通常需要发送大量数据.
HTTP 洪水攻击难以缓解的原因之一是它们通常从大量来源发起, 难以识别和阻止所有恶意流量. 此外, 攻击者可以使用 IP 欺骗等技术来掩盖他们的真实身份,并使追踪其攻击来源变得更加困难.
防御 HTTP 洪水攻击可能很复杂. 不同类型的攻击需要不同的缓解策略. 针对 HTTP 洪水攻击的常见防御措施包括速率限制, 黑名单, 和 Web 应用程序防火墙. 然而, 这些技术可能是资源密集型的,可能不足以阻止更复杂的攻击.
Slowloris 攻击
Slowloris 是一种泛洪攻击,其中 Web 服务器处理客户端连接的方式成为目标. 这种攻击通过打开与服务器的大量连接来实现, 但以较慢的速度发送请求, 尽可能长时间地保持每个连接打开. 这种类型的攻击可以消耗服务器的所有可用资源,并允许攻击者消耗 CPU, 记忆, 或网络带宽, 等. 甚至无需触发典型的速率限制 以及通常用于检测和阻止其他类型 DDoS 攻击的流量过滤机制.
执行 Slowloris 攻击, 攻击者通常使用脚本或工具向服务器发送 HTTP 请求, 但故意延迟发送后续请求. 该请求旨在看起来像合法请求, 但是使用不完整的标头,使连接无限期打开. 随着时间的推移, 服务器将有许多打开的连接,等待来自客户端的其他数据, 导致服务器停止响应合法流量.
由于 Slowloris 攻击的隐蔽设计和相对较低的带宽,因此很难检测到. 这使其成为想要在不触发警报或引起怀疑的情况下破坏其服务器的攻击者的有效工具。抵御 Slowloris 攻击, Web 服务器可以实施多种对策. 例如, 限制可从单个 IP 地址建立的连接数,或为不完整的请求设置超时. 某些 Web 应用程序防火墙和 DDoS 缓解服务具有针对 Slowloris 攻击的内置保护, 使用可以实时检测和阻止此类流量的算法.
层 7 DDoS 缓解措施
速率限制
速率限制涉及对特定时间段内可从特定 IP 地址或用户代理发出的请求数设置阈值. 这个概念与层中的速率限制非常相似 3 但它必须在 layer 上实现 7.
速率限制的目的是防止攻击者使用大量请求使 Web 应用程序过载, 导致服务器中断. 可以在 Web 应用程序体系结构的各个层实施速率限制, 在 Web 服务器上, 负载均衡器, 或应用程序防火墙. 实施通常涉及跟踪特定 IP 地址或用户代理发出的请求数,并在达到预定义阈值时阻止进一步的请求.
在 Web 应用程序中实现速率限制的一种常见方法是使用中间件或插件,这些插件跟踪每个客户端发出的请求数,并在超过阈值时阻止进一步的请求. is to 这些插件可以配置为根据请求类型等因素应用不同的速率限制策略, 用户代理, 或客户端 IP 地址.
例如, 简单的速率限制策略可以将来自单个 IP 地址的请求限制为最大值 10 每分钟请求数. 如果客户端超过此阈值, 后续请求将被阻止,直到期限到期.
应用层限速产品可用于流行的 Web 服务器和云服务, 包括:
阿帕奇
Apache 有几个模块可用于速率限制, 如 mod_limitipconn, 限制来自给定 IP 地址的同时连接数, 和 mod_qos, 提供各种服务质量控制,包括速率限制.
此外, ModSecurity Web 应用程序防火墙 具有速率限制功能,可以阻止超过定义阈值的客户端. 除了上面提到的模块, Apache 还提供 mod_evasive. 这是一个模块,可用于对超过定义阈值的客户端进行速率限制和阻止. 使用各种技术检测和阻止恶意客户端, 包括 IP 和用户代理跟踪.
Nginx 浏览器
Nginx 提供 ngx_http_limit_req模块. 这可用于根据 IP 地址或其他因素限制来自某些客户端的请求速率. 该模块使用 Token 桶算法,根据限流策略为每个客户端分配 Token. 除了 ngx_http_limit_req 模块, Nginx 也提供了 ngx_http_limit_conn 模块. 这可用于限制来自特定客户端或 IP 地址的连接数. 该模块使用 Token 桶算法,根据限流策略分配 Token.
IIS公司
Microsoft 的 Internet 信息服务 (IIS公司) 包括一个 动态 IP 限制模块 可用于速率限制. 此模块可以配置为阻止来自超过预定义阈值的 IP 地址的请求,还可以提供警报和日志以进行监控. 除了动态 IP 限制模块, IIS 还提供了一个请求筛选模块,该模块可用于根据各种条件(如 IP 地址)限制特定客户端的请求速率, 用户代理, 和请求方法.
AWS
亚马逊云科技 (AWS) 提供多种可用于速率限制的服务, 包括 具有速率限制功能的 AWS WAF.
AWS Shield 提供 DDoS 保护,包括基于速率的规则,这些规则可以阻止来自超过特定阈值的 IP 地址的请求. 对 AWS WAF 和 AWS Shield 的补充, AWS 还提供 AWS Elastic Load Balancer. 它包括各种速率限制策略,这些策略可以配置为阻止超过预定义阈值的客户端.
天蓝色
Microsoft Azure 提供了多种可用于速率限制的服务, 包括 Azure 应用程序网关. 它包括一个 Web 应用程序防火墙,可以将其配置为限制传入请求的速率. 此外, Azure Front Door 产品/服务 速率限制功能 可以阻止来自超过预定义阈值的 IP 地址的请求. 除了 Azure 应用程序网关和 Azure Front Door, Azure 还提供 Azure 防火墙. 这可用于对超过定义阈值的客户端进行速率限制和阻止.
GCP
Google Cloud 平台 (GCP) 提供 Cloud Armor, 具有速率限制功能的 Web 应用程序防火墙,可以阻止来自超过定义阈值的客户端的请求.
这些应用层限速产品可以通过限制来自恶意客户端的请求数量来有效缓解 HTTP Flood 攻击. 然而, 重要的是,它们必须经过正确配置,不会阻止合法流量,并与其他安全措施(如防火墙和 DDoS 缓解服务)结合使用,以提供针对 DDoS 攻击的全面保护.
未完成请求的超时
以下是为 Apache 列出的一些 Slowloris 应用层缓解方法, Nginx 浏览器, 和 IIS Web 服务器, 以及 AWS 的负载均衡器和其他功能, 天蓝色, 和 GCP 服务:
阿帕奇
除了上面提到的模块, Apache 还提供了一个模块, mod_reqtimeout, 可用于为传入请求设置超时. 如果客户端发送的请求花费的时间超过指定的超时时间, 服务器将关闭连接. 这将防止 slowloris 攻击.
Nginx 浏览器
除了 ngx_http_limit_conn 模块和 ngx_http_limit_req 模块, Nginx 也提供了他的 ngx_http_request 模块. 这可用于限制上游服务器处理请求所需的时间. 如果上游服务器花费的时间超过指定的超时时间, Nginx 将关闭连接.
IIS公司
动态 IP 限制和请求过滤模块的补充, IIS 还提供内核模式驱动程序 HTTP.sys. 这允许您为传入请求设置超时. 如果客户端发送的请求花费的时间超过指定的超时时间, 服务器将关闭连接.
AWS
除了 AWS WAF 和 AWS Shield, AWS 还提供 Elastic Load Balancer, 它包含许多连接超时规则,这些规则可以配置为关闭时间超过预定义阈值的连接.
天蓝色
除了 Azure 应用程序网关和 Azure Front Door, Azure 还提供 Azure 负载均衡器, 它包含可配置的空闲超时特性,可用于关闭可能在预定义时间段内处于空闲状态的连接.
GCP
Google Cloud 平台 (GCP) 为其服务提供了许多连接超时替代方案, 其中包括 Cloud Load Balancing, 它包含一个可配置的超时特性,可用于关闭时间超过预定义阈值的连接.
结论
结论, DDoS 和 DoS 攻击可以根据其所针对的 OSI 模型的层进行分类, 如网络层 (层 3), 传输层 (层 4), 和应用层 (层 7).
While 图层 3 和 layer 4 攻击会用流量淹没网络和传输层, 层 7 攻击更复杂,并利用应用程序本身的漏洞. HTTP 洪水和 Slowloris 攻击是层的示例 7 拒绝服务攻击. 针对这些攻击的对策包括速率限制, 黑名单, 和 Web 应用程序防火墙. 实时识别和遏制攻击需要全面的, 包括监控在内的多层防御策略, 检波, 和响应能力.
此外, 攻击者可以自定义他们的技术并定制他们的攻击,以逃避检测和逃避安全措施. 因此, 组织必须实施全面的, 包括监控在内的多层防御策略, 检波, 以及实时快速识别和遏制攻击的响应能力. 这可能包括使用高级机器学习算法和行为分析来检测和阻止恶意流量模式.
帖子免责声明
观点, 信息, 或表达的意见仅代表作者的意见,并不一定代表其雇主或他所属组织的意见.
本文中包含的信息仅供一般参考之用. 该信息由Farhad Mofidi提供,同时他努力保持信息的最新性和准确性, 他不作任何形式的陈述或保证, 明示或暗示, 关于完整性, 精度, 可靠性, 网站的适用性或可用性. 法哈德不作任何陈述或保证. 或任何信息, 出于任何目的包含在任何帖子中的产品或相关图形.
也, 人工智能可以用作提供建议和改进某些内容或句子的工具. 想法, 思潮, 意见, 最终产品是作者原创和人造的.