使用 F5 NGINX App Protect DoS 中的 eBPF 加速 DDoS 缓解

对抗 DDoS 攻击的斗争仍在不断变化。在 2023 年 DDoS 攻击趋势报告中,F5 Labs 分析了最近三年有关分布式拒绝服务 (DDoS) 攻击的数据,发现虽然攻击者仍然使用复杂的多向量 DDoS 攻击,但他们也转向发起更纯粹的应用程序攻击层(第 7 层)攻击。仅 2022 年,第 7 层攻击的流行率就增长了 165%。

2020 年至 2022 年 DDoS 攻击类型计数,显示应用程序攻击数量大幅增加,容量攻击和多向量攻击相应减少。

通常,攻击者会寻求最简单的途径来实现其目标,无论这意味着阻止网站操作还是勒索目标。第 7 层攻击的增加可能表明,仅使用容量或协议策略发起 DDoS 攻击变得越来越困难,并且应用程序层攻击正在被证明提高效率。

使用 eBF 和 XDP 保护现代应用

在保护您的应用程序免受 DDoS 攻击时,重要的是要尽可能利用技术进步,最大限度地保证您的应用程序可用(并让您的用户满意)。虽然采用 eXpress 数据路径 (XDP) 技术的扩展伯克利数据包过滤器 (eBPF) 自 2014 年以来就已经出现,但由于微服务和云原生架构的采用不断增加,目前它在开发人员、SRE 和运营社区中的受欢迎程度正在飙升。

eBPF

eBPF是Linux内核中的数据链路层虚拟机(VM),允许用户安全高效地运行程序。它还在运行时扩展了内核的功能,无需更改内核源代码,也无需添加额外的内核模块。 eBPF 是事件触发的——它检测 Linux 主机上的特定活动并采取特定操作。这项技术提供对应用程序和应用程序服务的完整堆栈可见性,并能够跟踪微服务和最终用户之间的连接和事务。可用数据的范围相当广泛。它能够解决敏锐的可观察性、分析网络流量管理和运行时安全需求,并利用其基本的高效设计来降低计算成本。

观看视频什么是 eBPF?来自 F5 DevCentral 的 eBPF 技术快速概述。

XDP

XDP 具有高性能网络的优势。它使用户空间程序能够直接读取和写入网络数据包数据,并在到达内核级别之前决定如何处理数据包。该技术允许开发人员将 eBPF 程序附加到由 Linux 内核中的网络设备驱动程序实现的低级挂钩。

NGINX App Protect DoS 如何使用 eBPF?

NGINX App Protect DoS 是一种基于行为的高级 La7 年级 DDoS 缓解解决方案,在 NGINX Plus 和 NGINX Ingress Controller 上运行,以保护 HTTP 和 HTTP/2 应用程序免受 Slowloris 和 HTTP Flood 等攻击。简而言之,NGINX App Protect DoS 可防御简单网络 DDoS 解决方案无法检测到的应用层攻击。

NGINX App Protect DoS 可以部署在 NGINX Plus 上的负载均衡器或 API 网关上,也可以部署在 NGINX Ingress Controller 上或集群内部作为每个 Pod 或每个服务代理。它还可以作为“安全即代码”轻松集成到 CI/CD 管道中,以实现敏捷 DevOps。

与 NGINX App Protect DoS 结合使用时,eBPF 有望显着增强 DDoS 攻击吸收能力。 NGINX App Protect DoS 使用 eBPF(NGINX Ingress Controller 本身不可用)作为多层解决方案的一部分,通过单独或与 TLS 结合阻止来自不良行为者的流量来加速缓解性能,不良行为者由源 IP 地址识别F指纹识别。

接下来,让我们看看 NGINX App Protect DoS 如何跨三个阶段工作的基本机制:异常检测、动态规则创建和自适应学习以及规则执行。

异常检测

NGINX App Protect DoS 持续监控受保护的应用程序,并使用机器学习来构建应用程序和客户端行为的统计站点模型。它实时观察流量并跟踪 300 多个 HTTP 请求指标,以创建不断更新的全面活动和性能基准。除了被动监控应用程序流量之外,NGINX App Protect DoS 还执行主动应用程序运行状况检查并监控响应时间和丢弃的请求等指标。

当应用程序受到第 7 层 DDoS 攻击时,应用程序响应时间(或错误率)会偏离学习模型,并触发应用程序保护系统。

动态规则创建和自适应学习

检测到异常后,NGINX App Protect DoS 会动态创建规则来识别和阻止恶意流量。为了使合法用户能够访问应用程序,同时阻止恶意攻击者,它创建了客户端行为的统计图,以识别哪些用户正在或没有参与攻击。

除了部署动态签名来阻止攻击之外,NGINX App Protect DoS 还会持续衡量缓解效果并应用自适应学习来持续提供强大的应用安全性并阻止零日攻击。一旦识别出导致攻击的客户端和请求,它就会构建一条规则来拒绝该流量。

NGINX App Protect DoS 实施多层防御策略,其中包括:

  • 根据 IP 地址或 TLS 指纹阻止不良行为者
  • 阻止带有攻击签名的不良请求
  • 应用全球费率限制

这三种缓解措施会逐步应用,以确保尽可能阻止攻击者,而不会对合法用户造成影响。然而,大部分阻止活动经常发生在 IP 地址和 TLS 指纹阻止或仅 IP 地址阻止的初始组合阶段。幸运的是,这些正是 eBPF 程序可以有效执行的规则类型。

规则执行

NGINX App Protect DoS 使用创建的规则并将其应用于传入的应用程序流量以阻止恶意请求。由于所有应用程序流量均由 NGINX Plus 代理代理到后端(或上游)应用程序,因此任何符合阻止规则的请求都会被简单地丢弃,而不会传递到后端应用程序。

尽管 NGINX Plus 是高性能代理,但攻击和缓解规则创建的额外工作负载仍然有可能压垮可用性NGINX 运行平台的 ble 资源。这就是 eBPF 的用武之地。通过应用仅 IP 地址阻止,或将其与内核中的 IP 地址和 TLS 指纹阻止相结合,可以在传输层(第 4 层)尽早评估和阻止恶意流量。这比在用户空间中运行的 NGINX 执行时的效率要高得多。

在支持的平台上,当 NGINX App Protect DoS 根据源 IP 地址或 TLS 指纹创建阻止攻击者的规则时,这些规则会被编译成 eBPF 字节码程序,当网络事件(称为钩子)发生时,该程序由内核执行。如果特定网络事件触发规则,流量会在第 4 层提前丢弃。这有助于在到达第 7 层之前加速 DDoS 缓解。由于此活动全部发生在内核中,因此非常高效,并且可以过滤更多流量(在耗尽资源之前) )与在用户空间中实现规则时相比。

NGINX 应用程序专业版tect DoS 与 eBPF 在到达用户空间之前阻止内核中的不良流量,从而加速 DDoS 缓解并降低计算成本。

在 NGINX App Protect DoS 上启用 eBPF 加速缓解

NGINX App Protect DoS 加速缓解可在以下 Linux 发行版上使用:

  • 阿尔卑斯 3.15+
  • Debian 11+
  • RHEL 8+
  • Ubuntu 20.04+

要启用加速 DDoS 缓解,请按照以下步骤操作:

  • 安装支持 eBPF 的 NGINX App Protect DoS 软件包并执行任何其他任务。 (有关详细信息,请参阅安装文档,因为安装后任务因发行版而异。)
  • 照常配置 NGINX App Protect DoS。
  • 在 NGINX Plus 配置的 http{} 块中添加以下指令。

    protected_dos_accelerated_mitigation 开启;

  • 重新加载 NGINX 配置。

    $ sudo nginx -t && nginx -s 重新加载

  • 摘要

    合并广告NGINX App Protect DoS 的主动学习功能与 eBPF 内核执行的高效流量处理相结合,提供了多层、加速的第 7 层 DDoS 缓解策略,并针对当今的多向量和以应用程序为中心的 DDoS 攻击提供了改进的功能。它还通过减少缓解任何特定 DDoS 攻击所需的资源来降低基础设施和计算成本。

    通过 30 天免费试用亲自体验 NGINX App Protect DoS,或联系我们讨论您的使用案例。

    其他资源

    • 白皮书 – 保护现代应用免受第 7 层 DoS 攻击
    • 博客 – NGINX App Protect 拒绝服务如何适应不断变化的攻击形势
    • 数据表 – 防御、适应和缓解第 7 层 DoS 攻击

    评论

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注