NGINX App Protect Denial of Service 阻止应用层DoS攻击

NGINX | 2021年7月06日

数字化转型在加速释放业务潜力的同时,也在扩大威胁面。安全团队忙于适应不断扩大的工作范围和责任,攻击者则趁机利用应用牟利,手段也日益复杂。与传统的网络层拒绝服务(DoS)攻击相比,应用层(第 7 层)DoS攻击正在大幅增加,主要原因是这类攻击可以绕过并非针对现代应用架构设计的传统防御措施。

从攻击者的角度看,第 7 层 DoS 攻击有两个可利用的特点:只需极少资源即可造成严重中断,而且难以检测。此类攻击利用复杂工具生成并精准定向发送请求,使应用服务器和 API 无法处理合法请求,从而导致服务中断。当服务器收到的请求数量超出其处理能力时,就会丢弃合法请求、停止响应,甚至崩溃。

传统DoS缓解解决方案无法有效保护现代应用。此类解决方案采用基于静态规则的安全机制,需要持续维护,才能跟上现代应用环境的变化和更新速度。

NGINX App Protect DoS 简介

NGINX App Protect拒绝服务防护(DoS)是适用于NGINX Plus的新型轻量级动态模块,旨在保护现代应用免受复杂的应用层DoS攻击。NGINX App Protect DoS可缓解意图中断和破坏应用的攻击,帮助应用持续保持性能和创收能力,并在竞争激烈的数字世界中维护客户忠诚度和品牌声誉。

NGINX App Protect DoS可部署在任何平台、架构或环境中,靠近应用和微服务,包括Kubernetes集群。它可随应用横向扩展,并始终保持出色的安全防护效果。

NGINX App Protect DoS 实际应用

部署用例

NGINX App Protect DoS可部署在多种位置,以保护应用服务:

  • 边缘:外部负载均衡器和代理
  • Ingress Controller:进入Kubernetes的入口
  • 按服务部署的代理,内部服务代理层
  • 每个Pod的代理,嵌入Pod中的代理
  • API网关:微服务的入口点

已缓解的攻击类型

NGINX App Protect DoS 可防御多种复杂的攻击类型:

  • GET 和 POST 洪泛攻击(HTTP和HTTPS均适用):攻击者试图通过大量请求使服务器或API不堪重负,导致其无法响应真实用户。
  • “慢速”攻击:适用于HTTP和HTTPS。“低速慢速”攻击会占用服务器资源,导致服务器没有可用资源来处理真实用户的请求。此类攻击难以防御,主要有两个原因:慢速攻击主要分为三种类型:
    • 与网络DDoS攻击不同,这类攻击不会占用大量带宽,因此很难与正常流量区分开来。
    • 发起此类攻击不需要大量资源,因此,借助复杂的自动化工具,仅用一台计算机即可发送数千个请求。
    • Slowloris:攻击者连接到服务器,并缓慢发送不完整的请求标头。服务器在等待其余标头期间会保持连接处于打开状态,最终耗尽实际用户可用的连接池。
    • 慢速读取:攻击者发送格式正确的HTTP请求,但随后以极慢的速度读取响应,甚至完全不读取。随着影响累积,服务器资源会被持续占用,导致合法请求无法通过。
    • 慢速POST:攻击者向服务器发送合法的HTTP POST 标头,并正确指定随后将发送的消息正文大小。然后,攻击者以极慢的速度发送消息正文。由于消息看似有效,服务器会保持连接打开,等待接收完整的消息正文。大量慢速POST攻击会耗尽实际用户可用的连接池。
  • 上述攻击的分布式变体:利用多台计算机显然可以轻松发起更多并发攻击。此外,每台计算机产生的流量可以相对较低,使其看起来像普通用户。计算机还可以退出攻击池后再重新加入,导致源IP地址集合不断变化。这些流量特征会降低限速和地理封锁等传统缓解技术的有效性。
  • Challenge Collapsar攻击/随机URI。在Challenge Collapsar(CC)攻击中,攻击者频繁发送看似正常的请求,但请求的URI需要执行复杂且耗时的算法或数据库操作,可能耗尽目标服务器的资源。攻击者还可以将URI和其他HTTPS参数随机化,使静态规则等传统缓解工具失效。NGINX App Protect DoS则依靠先进的机器学习算法,显著提升有效性并减少误报。

​

  • 隐藏在NAT之后:攻击者使用加密或网络地址转换(NAT)来规避检测。仅通过跟踪源IP地址来检测攻击并不可行,因为即使只有一个用户发起攻击,也会将所有NAT用户都视为攻击者。NGINX App Protect DoS使用IPv4指纹识别技术,准确检测隐藏在NAT之后的恶意行为者。由于大多数流量都使用SSL/TLS加密,因此可将识别行为者的关键标识从单一IP地址扩展为IP地址与TLS指纹的组合(该指纹基于TLS hello消息生成)。
  • 针对性SSL/TLS攻击:攻击者滥用SSL/TLS握手协议。一种常见方法是向目标SSL/TLS服务器发送无效数据。处理无效消息与处理合法消息所需的计算资源相当,却不会产生有用的结果。在这种情况下,大多数防火墙都无济于事,因为它们无法区分有效和无效的SSL/TLS握手数据包,而且在防火墙上实施解密的成本过高。NGINX App Protect DoS采用SSL/TLS签名机制,根据未加密且在SSL/TLS握手流程早期传递的CLIENT HELLO消息,提供基于异常的检测和缓解,从而避免高昂的解密成本。此外,将SSL/TLS签名与服务器运行状况监控机制结合使用,无需终止SSL/TLS连接即可提供DoS防护和缓解。

总结

DoS攻击以应用而非网络为目标的情况日益普遍。由于许多此类第7层DoS攻击看起来与合法流量无异,传统WAF防御措施无法有效检测这些攻击。

此外,攻击者不断利用机器学习和AI等新技术发起第7层DoS攻击,导致简单规则和静态签名的有效性降低。第7层DoS缓解措施也必须随之演进,而NGINX App Protect DoS通过自适应动态防御提供了适用的技术。

如需进一步了解如何确保DoS防护,请参阅我们的解决方案简介。另请参阅以下相关博客:

亲自体验NGINX App Protect DoS,立即开始30天免费试用,或联系我们,讨论您的用例。


分享

关于作者

相关博客文章

NGINX Plus R26 正式发布
NGINX | 2022/02/15

NGINX Plus R26 正式发布

NGINX Plus R26通过缓存JSON Web密钥集加快JWT验证,并强化TLS握手,从而提升安全性。NGINX JavaScript的新功能包括增强对异步函数的支持,以及实现WebCrypto API。

使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击
NGINX | 2022/02/10

使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击

gRPC具备开发人员设计和部署现代应用所需的速度与灵活性,但其开放性也使其极易受到第7层DoS攻击。NGINX App Protect DoS可保护gRPC应用免受此类破坏性攻击。

Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划
NGINX | 2021/09/13

Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划

了解选择错误的Ingress控制器可能带来的风险,以及如何从关键方面着手,让您的选择更好地适应未来需求。

NGINX Plus R19 正式发布
NGINX | 2019/09/03

NGINX Plus R19 正式发布

NGINX Plus R19扩展了监控功能,不仅提供更多指标,还新增了指标分析方式;增加试运行模式,用于测试限速效果;增强键值存储,以支持IP地址范围;并使限速更加动态。

NGINX现已正式加入F5
NGINX | 2019/05/09

NGINX现已正式加入F5

NGINX现已正式成为F5的一部分。Gus Robertson现任F5 NGINX业务部门负责人。他阐述了两家公司在人才、文化和愿景方面融合的价值,以及双方将如何携手增强NGINX的开源产品和商业产品。

使用NGINX和NGINX Plus实现高性能缓存
NGINX | 2016/08/24

使用NGINX和NGINX Plus实现高性能缓存

我将介绍NGINX在内容缓存和性能方面的工作原理,并分享一些控制NGINX内容缓存方式的技巧。