Azure WAF 包括多种防御机制,可帮助防止分布式拒绝服务(DDoS)攻击。 DDoS 攻击可以同时针对网络层(L3/L4)和应用层(L7)。 Azure DDoS 防护可帮助您抵御大规模网络层流量攻击。 Azure WAF,在第 7 层运行,可保护 Web 应用程序免受 HTTP 洪水等 L7 DDoS 攻击。 这些防御可防止攻击者访问应用程序并影响应用程序的可用性和性能。
如何保护服务?
通过添加Web 应用程序防火墙(WAF)或将 DDoS 防护置于服务前面来筛选出错误请求来缓解这些攻击。 Azure 提供两种 WAF:一种是借助 Azure Front Door 在网络边缘运行的 WAF,另一种是借助应用程序网关在数据中心运行的 WAF。 调整这些步骤以满足应用程序要求。
- 使用 Azure Front Door Premium 或应用程序网关 WAF v2 SKU 部署 Azure Web 应用程序防火墙(WAF), 以防止 L7 应用程序层攻击。
- 增加源实例数量,以确保有足够的冗余容量。
- 在源公共 IP 上启用 Azure DDoS 防护,以保护公共 IP 免受第 3 层(L3)和第 4 层 (L4) 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/L4 DDoS 攻击。 在 Azure Front Door 上启用缓存有助于吸收边缘突然高峰流量,并保护后端源免受攻击。
有关 Azure Front Door 上的功能和 DDoS 保护的详细信息,请参阅 Azure Front Door 上的 DDoS 保护。
将 Azure WAF 与 Azure 应用程序网关配合使用
使用应用程序网关的 WAF v2 SKU(其中包括 L7 DDoS 缓解功能等最新功能),以防御 L7 DDoS 攻击。
可以使用应用程序网关 WAF SKU 来缓解许多 L7 DDoS 攻击:
将应用程序网关设置为自动缩放,并且不要限制最大实例数。
使用机器人保护托管规则集来防范已知的坏机器人。 有关详细信息,请参阅 配置机器人保护。
应用速率限制以防止 IP 地址过于频繁地调用服务。 有关详细信息,请参阅 配置速率限制自定义规则。
阻止标识为恶意的 IP 地址和范围。 有关详细信息,请参阅 “创建和使用 v2 自定义规则”中的示例。
阻止或将来自已定义地理区域之外的任何流量,以及来自已定义区域内但不符合应用程序流量模式的流量,重定向到静态网页。 有关详细信息,请参阅 “创建和使用 v2 自定义规则”中的示例。
创建自定义 WAF 规则,以自动阻止和速率限制具有已知签名的 HTTP 或 HTTPS 攻击。 签名包括特定的用户代理或特定流量模式,其中包括标头、Cookie、查询字符串参数或多个签名的组合。
其他注意事项
锁定对源站上公共 IP 地址的访问,并将入站流量限制为仅允许来自 Azure Front Door 或 Application Gateway 且发往源站的流量。 请参阅 有关 Azure Front Door 的指导。 确保应用程序网关的虚拟网络中没有任何公开的 IP 地址。
将 WAF 策略切换到预防模式。 在检测模式下部署策略仅在日志中运行,并且不会阻止流量。 使用生产流量验证和测试 WAF 策略并微调以减少任何误报后,将策略转为预防模式(阻止/防御模式)。
使用 Azure WAF 日志监视流量是否存在任何异常。 可以创建自定义规则来阻止任何有问题的流量 - 可疑 IP 发送异常大量请求、异常用户代理字符串、异常查询字符串模式等。
您可以创建操作为“允许”的匹配自定义规则,使已知合法流量绕过 WAF,从而减少误报。 将这些规则的优先级设置为高于其他阻止规则和速率限制规则(即数值更低)。
至少具有速率限制规则,阻止来自任何单个 IP 地址的高请求速率。 例如,可以将速率限制规则配置为不允许任何客户端 IP 地址 将每个窗口的 XXX 以上的流量发送到站点。 Azure WAF 支持两个用于跟踪请求的时间窗口:1 分钟和 5 分钟。 使用五分钟窗口可以更好地缓解 HTTP 洪水攻击。 此规则应为最低优先级规则(优先级排序为 1 为最高优先级),以便可以创建更具体的速率限制规则或匹配规则,以便在此规则之前匹配。 如果使用应用程序网关 WAF v2,则可以使用其他速率限制配置通过客户端 IP 以外的方法跟踪和阻止客户端。 有关应用程序网关 WAF 速率限制的详细信息,请参阅 速率限制概述。
以下 Log Analytics 查询有助于确定应用于上一规则的阈值。 对于类似的查询,但针对应用程序网关,请将
FrontdoorAccessLog替换为ApplicationGatewayAccessLog。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 应用程序网关。
相关内容
- 为 Azure Front Door 创建 WAF 策略。
- 使用 Web 应用程序防火墙创建应用程序网关 。
- 了解 Azure Front Door 如何帮助 防范 DDoS 攻击。
- 使用 Azure DDoS 网络保护保护应用程序网关。
- 详细了解 Azure DDoS 防护。