共用方式為

应用程序 (第 7 层) DDoS 保护

Azure WAF 具有多种防御机制,可帮助防止分布式拒绝服务(DDoS)攻击。 DDoS 攻击可以针对网络层(L3/L4)或应用层(L7)。 Azure DDoS 可保护客户免受大型网络层卷攻击。 在第 7 层运行的 Azure WAF 可保护 Web 应用程序免受 HTTP 洪水等 L7 DDoS 攻击。 这些防御可以阻止攻击者访问应用程序并影响应用程序的可用性和性能。

如何保护服务?

可以通过添加 Web 应用程序防火墙(WAF)或将 DDoS 置于服务前面来筛选出错误请求来缓解这些攻击。 Azure 提供使用 Azure Front Door 和数据中心与应用程序网关在网络边缘运行的 WAF。 这些步骤是一个通用列表,需要进行调整以满足应用程序要求服务。

  • 使用 Azure Front Door Premium 或应用程序网关 WAF v2 SKU 部署 Azure Web 应用程序防火墙(WAF), 以防止 L7 应用程序层攻击。
  • 纵向扩展源实例计数,以便有足够的备用容量。
  • 在源公共 IP 上启用 Azure DDoS 防护 ,以保护公共 IP 免受第 3 层(L3)和第 4 层 DDoS 攻击。 Azure 的 DDoS 产品/服务可以自动保护大多数站点免受 L3 和 L4 批量攻击,这些攻击会向网站发送大量数据包。 默认情况下,Azure 还为 Azure 上托管的所有站点提供基础结构级保护。

将 Azure WAF 与 Azure Front Door 配合使用

Azure WAF 具有许多功能,可用于缓解许多不同类型的攻击,例如 HTTP 洪水、缓存旁路、僵尸网络发起的攻击。

  • 使用机器人保护托管规则集来防范已知错误的机器人。 有关详细信息,请参阅 配置机器人保护

  • 应用速率限制以防止 IP 地址过于频繁地调用服务。 有关详细信息,请参阅 速率限制

  • 阻止 IP 地址和标识为恶意的范围。 有关详细信息,请参阅 IP 限制

  • 阻止或重定向到静态网页,从定义的地理区域外部或不符合应用程序流量模式的已定义区域中的任何流量。 有关详细信息,请参阅 异地筛选

  • 创建自定义 WAF 规则,以自动阻止和速率限制具有已知签名的 HTTP 或 HTTPS 攻击。 签名(例如特定的用户代理)或特定流量模式,包括标头、Cookie、查询字符串参数或多个签名的组合。

除了 WAF,Azure Front Door 还提供默认的 Azure 基础结构 DDoS 防护,以防止 L3/4 DDoS 攻击。 在 Azure Front Door 上启用缓存有助于吸收边缘突然高峰流量,并保护后端源免受攻击。

有关 Azure Front Door 上的功能和 DDoS 保护的详细信息,请参阅 Azure Front Door 上的 DDoS 保护

将 Azure WAF 与 Azure 应用程序网关配合使用

建议使用包含最新功能(包括 L7 DDoS 缓解功能)的应用程序网关 WAF v2 SKU 来抵御 L7 DDoS 攻击。

应用程序网关 WAF SKU 可用于缓解许多 L7 DDoS 攻击:

  • 将应用程序网关设置为自动纵向扩展,而不是强制实施最大实例数。

  • 使用机器人保护托管规则集可为已知错误的机器人提供保护。 有关详细信息,请参阅 配置机器人保护

  • 应用速率限制以防止 IP 地址过于频繁地调用服务。 有关详细信息,请参阅 配置速率限制自定义规则

  • 阻止 IP 地址和标识为恶意的范围。 有关详细信息,请参阅 “创建和使用 v2 自定义规则”中的示例。

  • 阻止或重定向到静态网页,从定义的地理区域外部或不符合应用程序流量模式的已定义区域中的任何流量。 有关详细信息,请参阅 “创建和使用 v2 自定义规则”中的示例。

  • 创建自定义 WAF 规则,以自动阻止和速率限制具有已知签名的 HTTP 或 HTTPS 攻击。 签名(例如特定的用户代理)或特定流量模式,包括标头、Cookie、查询字符串参数或多个签名的组合。

其他注意事项

  • 锁定对源上的公共 IP 的访问,并将入站流量限制为仅允许从 Azure Front Door 或应用程序网关发往源的流量。 请参阅 有关 Azure Front Door 的指导。 确保应用程序网关的虚拟网络中没有任何公开的 IP 地址。

  • 将 WAF 策略切换到预防模式。 在检测模式下部署策略仅在日志中运行,并且不会阻止流量。 使用生产流量验证和测试 WAF 策略并微调以减少任何误报后,应将策略转为预防模式(阻止/防御模式)。

  • 使用 Azure WAF 日志监视流量是否存在任何异常。 可以创建自定义规则来阻止任何有问题的流量 - 可疑 IP 发送异常大量请求、异常用户代理字符串、异常查询字符串模式等。

  • 可以通过创建匹配自定义规则来绕过 WAF 进行已知合法流量,并执行“允许”作来减少误报。 应将这些规则配置为优先级高(数值低于其他块和速率限制规则)。

  • 至少应该有一个速率限制规则来阻止来自任何单个 IP 地址的高请求速率。 例如,可以将速率限制规则配置为不允许任何客户端 IP 地址 将每个窗口的 XXX 以上的流量发送到站点。 Azure WAF 支持两个窗口来跟踪请求,即 1 分钟和 5 分钟。 建议使用 5 分钟窗口来更好地缓解 HTTP 洪水攻击。 此规则应为最低优先级规则(优先级排序为 1 为最高优先级),以便可以创建更具体的速率限制规则或匹配规则,以便在此规则之前匹配。 如果使用应用程序网关 WAF v2,则可以使用其他速率限制配置通过客户端 IP 以外的方法跟踪和阻止客户端。 有关应用程序网关 WAF 速率限制的详细信息,请参阅 速率限制概述

    以下 Log Analytics 查询有助于确定应用于上一规则的阈值。 对于类似的查询,但对于应用程序网关,请替换为 FrontdoorAccessLogApplicationGatewayAccessLog

    AzureDiagnostics
    | where Category == "FrontdoorAccessLog"
    | summarize count() by bin(TimeGenerated, 5m), clientIp_s
    | summarize max(count_), percentile(count_, 99), percentile(count_, 95)
    
  • 托管规则虽然不是直接针对针对 DDoS 攻击的防御,但可提供针对其他常见攻击的保护。 有关详细信息,请参阅 托管规则(Azure Front Door)托管规则(应用程序网关), 了解有关这些规则可帮助防范的各种攻击类型的详细信息。

WAF 日志分析

可以使用以下查询分析 Log Analytics 中的 WAF 日志。

Azure Front Door

AzureDiagnostics
| where Category == "FrontdoorWebApplicationFirewallLog"

有关详细信息,请参阅 Azure WAF 与 Azure Front Door

Azure 应用程序网关

AzureDiagnostics
| where Category == "ApplicationGatewayFirewallLog"

有关详细信息,请参阅 Azure WAF 与 Azure 应用程序网关