Azure 应用程序网关上的 Azure Web 应用程序防火墙(WAF) 最佳做法

本文总结了使用 Azure 应用程序网关上的 Azure Web 应用程序防火墙 (WAF) 的最佳做法。

一般最佳实践

启用 WAF

对于面向 Internet 的应用程序,建议启用 Web 应用程序防火墙 (WAF),并将其配置为使用托管规则。 使用 WAF 和 Microsoft 托管规则时,应用程序可以免受各种攻击。

使用 WAF 策略

WAF 策略是用于管理应用程序网关 WAF 的一种新的资源类型。 如果有使用 WAF 配置资源的较旧 WAF,则应迁移到 WAF 策略以利用最新功能。

有关详细信息,请参阅以下资源:

优化 WAF

WAF 中的规则应针对工作负载进行优化。 如果不优化 WAF,它可能会意外阻止应允许的请求。 优化可能包括创建规则排除项以减少误报检测。

优化 WAF 时,请考虑使用检测模式,该模式记录 WAF 通常会执行的请求和操作,但实际上不会阻止任何流量。

有关详细信息,请参阅排查 Azure 应用程序网关的 Web 应用程序防火墙 (WAF) 问题

使用防护模式

优化 WAF 后,应将其配置为防护模式下运行。 通过在防护模式下运行,可确保 WAF 实际阻止它检测到为恶意的请求。 在检测模式下运行对于在优化和配置 WAF 时实现测试目的很有用,但它不提供保护。 它记录流量,但不采取任何操作,例如允许拒绝

将 WAF 配置定义为代码

为应用程序工作负荷优化 WAF 时,通常需创建一组规则排除项以减少假正检测数。 如果使用 Azure 门户手动配置这些排除项,则升级 WAF 以使用较新的规则集版本时,需要针对新规则集版本重新配置相同的异常。 此过程可能非常耗时且容易出错。

请改为考虑将 WAF 规则排除项和其他配置定义为代码(例如,使用 Azure CLI、Azure PowerShell、Bicep 或 Terraform)。 然后,当你需要更新 WAF 规则集版本时,就可轻松地重复使用相同的排除项。

托管规则集最佳做法

启用核心规则集

Microsoft 的核心规则集旨在通过检测和阻止常见攻击来保护应用程序。 这些规则基于各种源,包括 OWASP 十大攻击类型和来自 Microsoft 威胁情报的信息。

有关详细信息,请参阅 Web 应用程序防火墙 CRS 规则组和规则

启用机器人管理规则

机器人负责大量流向 Web 应用程序的流量。 WAF 的机器人防护规则集根据机器人是好、坏还是未知对机器人进行分类。 然后可以阻止坏机器人,并允许好的机器人(例如搜索引擎爬网程序等)通过应用程序。

有关详细信息,请参阅 Azure 应用程序网关上的 Azure Web 应用程序防火墙机器人防护概述

使用最新的规则集版本

Microsoft 会定期更新托管规则,以考虑当前的威胁情况。 确保定期检查 Azure 托管规则集的更新。

有关详细信息,请参阅 Web 应用程序防火墙 CRS 规则组和规则

异地筛选最佳做法

异地筛选流量

许多 Web 应用程序专为特定地理区域中的用户设计。 如果这种情况适用于应用程序,请考虑实现地区筛选,以阻止来自预期接收流量的国家/地区以外的请求。

有关详细信息,请参阅 Geomatch 自定义规则

日志记录

添加诊断设置以保存 WAF 的日志

应用程序网关的 WAF 与 Azure Monitor 集成。 启用诊断设置并将 WAF 日志保存到 Log Analytics 等目标中非常重要。 应定期查看 WAF 日志。 查看日志有助于优化 WAF 策略以减少误报检测并了解应用程序是否受到攻击。

有关详细信息,请参阅 Azure Web 应用程序防火墙监视和日志记录

后续步骤

了解如何在应用程序网关上启用 WAF