Azure Web 应用程序防火墙(WAF)为 Web 应用程序提供集中保护,防止常见的攻击和漏洞,例如 SQL 注入、跨站点脚本和其他 OWASP 前 10 个攻击。 作为位于应用程序和潜在威胁之间的关键安全组件,必须正确保护 WAF 部署,以最大限度地提高其有效性并保持整体安全态势。
本文提供有关如何最好地保护 Azure Web 应用程序防火墙部署的指导。
网络安全
Azure Web 应用程序防火墙的网络安全性侧重于通过适当的流量管理保护应用程序、阻止恶意 IP 地址以及适当配置 WAF 模式。 这些控制有助于确保只有合法流量到达应用程序,同时保持针对基于 Web 的攻击的全面保护。
在基线期过后在预防模式下配置 WAF:从检测模式开始,了解流量模式并识别误报,然后切换到“预防”模式以主动阻止攻击。 防护模式阻止规则检测到的入侵和攻击,从而向攻击者发送“403 未经授权的访问”异常。 请参阅 Front Door 上的应用程序网关上的 WAF 模式 和 WAF 模式。
使用自定义规则阻止恶意 IP 地址:创建自定义规则,以允许和阻止基于 IP 地址、范围或地理位置的流量。 这可以精细控制谁可以访问应用程序,并帮助防止来自已知不良参与者的攻击。 请参阅 Web 应用程序防火墙 CRS 规则组和规则。
自定义 WAF 规则以减少误报:应用特定于站点的 WAF 策略并自定义规则和规则组以满足 Web 应用程序要求。 这有助于消除误报,同时保持防范真正的威胁。 为每个站点关联唯一的 Azure WAF 策略,以允许站点特定的配置。
启用全面的日志记录和监视:在检测模式下运行时启用诊断和 WAF 日志以监视和记录所有威胁警报。 这让您能够清楚地看到 WAF 正在评估、匹配和阻止的内容。 请参阅 日志记录概述。
使用标记进行有组织的网络安全管理:将标记应用于与 Azure 应用程序网关子网和相关网络安全资源中的 WAF 关联的网络安全组。 使用单个 NSG 规则的“说明”字段指定业务需求和持续时间。 请参阅 如何创建和使用标记。
监视网络资源配置:使用 Azure 活动日志监视网络资源配置,并检测与 WAF 部署相关的网络设置和资源更改。 在 Azure Monitor 中创建警报,在发生对关键网络设置的更改时触发。 请参阅 如何查看和检索 Azure 活动日志事件。
实现速率限制以防止 DDoS 攻击:配置速率限制规则来控制指定时间段内每个客户端 IP 地址允许的请求数。 设置足够高的速率限制阈值,以避免阻止合法流量,同时防止重试风暴和 DDoS 攻击。 请参阅 Azure Front Door 的速率限制是什么?
启用机器人保护以阻止恶意机器人:使用机器人保护托管规则集来识别和阻止坏机器人,同时允许合法机器人(如搜索引擎爬网程序)。 机器人保护规则将机器人分类为好、坏或未知,并可以自动阻止恶意机器人流量。 请参阅 配置 Web 应用程序防火墙的机器人保护。
为区域应用程序实施地理筛选:如果应用程序为来自特定地理区域的用户提供服务,请配置地理筛选以阻止来自预期国家或地区的请求。 包括未知(ZZ)位置,以避免阻止来自未映射 IP 地址的有效请求。 请参阅 Azure Front Door 的域上的地理筛选是什么?
使用最新的托管规则集版本:定期更新到最新的 Azure 托管规则集版本,以防止当前威胁。 Microsoft根据威胁形势和 OWASP 前 10 种攻击类型定期更新托管规则。 请参阅 Azure Web 应用程序防火墙 DRS 规则组和规则。
标识管理
Azure Web 应用程序防火墙的标识管理可确保对 WAF 资源的管理访问权限得到适当的控制和监视。 这包括维护管理帐户的清单、使用集中式标识系统,并为管理 WAF 部署的任何人实施强身份验证机制。
使用 Azure Active Directory 进行集中式身份验证:使用 Azure AD 作为中央身份验证和授权系统来管理 WAF 资源。 Azure AD 使用强加密保护数据,并在 Azure 环境中提供一致的标识管理。 请参阅 如何创建和配置 Azure AD 实例。
维护管理帐户的清单:使用可查询且必须显式分配的 Azure AD 内置角色。 使用 Azure AD PowerShell 模块执行查询,并发现有权访问 WAF 资源的管理组成员的帐户。 请参阅 如何使用 PowerShell 在 Azure AD 中获取目录角色。
为管理访问权限启用多重身份验证:要求对具有 WAF 资源管理访问权限的所有用户进行 MFA。 这增加了一个关键的附加安全层,即使密码遭到入侵。 遵循 Microsoft Defender for Cloud 的标识和访问管理建议。 请参阅 如何在 Azure 中启用多重身份验证。
通过标准程序使用专用管理帐户:针对有权访问 Azure WAF 实例的专用管理帐户,创建标准操作过程。 使用 Microsoft Defender for Cloud 的标识和访问管理功能监视管理帐户数。
仅管理来自已批准位置的访问:使用命名位置配置条件访问策略以限制对 WAF 资源的访问。 创建 IP 地址范围或国家和地区的逻辑分组,并限制对已配置命名位置的敏感资源的访问。 请参阅 Azure Active Directory 条件访问中的位置条件是什么。
特权访问
Azure Web 应用程序防火墙的特权访问控制侧重于限制和监视对 WAF 资源的管理访问权限。 这些措施有助于防止对安全配置进行未经授权的更改,并确保正确跟踪和审核特权作。
使用 Azure RBAC 控制资源访问:使用 Azure 基于角色的访问控制控制对 Azure WAF 资源的访问。 仅向用户和服务分配最低必要权限来应用最低特权原则。 请参阅 如何在 Azure 中配置 Azure RBAC。
使用特权访问工作站执行管理任务:使用专用的强化工作站,其中配置了多重身份验证,用于登录和配置 Azure WAF 和相关资源。 这样可以降低通过标准用户工作站进行的管理权限泄露的风险。 请查看 特权访问工作站的相关信息。
定期评审和协调用户访问:使用 Azure 标识访问评审有效管理组成员身份、对企业应用程序的访问权限以及 WAF 资源的角色分配。 定期查看用户访问权限,确保只有活动用户才能继续访问。 请参阅 如何使用 Azure 标识访问评审。
监视对已停用凭据的访问:将 Azure AD 登录活动、审核和风险事件日志源与 Microsoft Sentinel 或其他 SIEM 工具集成。 为 Azure AD 用户帐户创建诊断设置,并将审核和登录日志发送到 Log Analytics 工作区进行监视。 请参阅 如何将 Azure 活动日志集成到 Azure Monitor。
日志记录和威胁检测
全面的日志记录和威胁检测对于保持 Web 应用程序防火墙的安全状况的可见性至关重要。 这些功能通过收集和分析 WAF 部署中的安全事件来帮助检测威胁、调查事件和维护合规性。
使用 Microsoft Sentinel 启用集中式日志管理:配置要发送到 Microsoft Sentinel 或第三方 SIEM 的 Azure WAF 日志。 这包括 Azure 活动、诊断和实时 WAF 日志,用于深入了解 WAF 正在评估、匹配和阻止的数据。
启用全面的审核日志记录:为 Azure WAF 资源启用日志记录,以捕获审核、安全性和诊断日志。 Azure WAF 通过配置的诊断日志(包括事件源、日期、用户、时间戳和地址)提供有关每个检测到的威胁的详细报告。 请参阅 日志记录概述。
配置日志存储保留策略:将 Azure WAF 日志发送到自定义存储帐户,并根据组织的符合性要求定义保留策略。 使用 Azure Monitor 适当地设置 Log Analytics 工作区保留期。 请参阅 配置存储帐户的监视。
定期监视和查看日志:查看 WAF 日志,这些日志提供有关每个检测到的威胁的详细报告。 使用 Microsoft Defender for Cloud 的建议来检测未受保护的 Web 应用程序并保护易受攻击的资源。 利用Microsoft Sentinel 的内置 WAF 工作簿进行安全事件概述。 请参阅 如何为 Azure 应用程序网关启用诊断设置。
为异常活动创建警报:启用 Azure 活动日志诊断设置和 WAF 诊断设置,将日志发送到 Log Analytics 工作区。 根据 WAF 指标为异常活动创建警报,例如当阻止的请求超出定义的阈值时。 请参阅 如何在 Azure 中创建警报。
使用批准的时间同步源:为 Azure WAF 创建网络规则,以允许使用适当的端口和协议(例如通过 UDP 的端口 123)访问 NTP 服务器,确保日志和事件中的准确时间戳。
使用日志清理启用敏感数据保护:配置日志清理规则以从 WAF 日志中删除敏感信息,例如密码、IP 地址和个人数据。 这样可以保护客户数据,同时保持安全可见性。 请参阅 什么是 Azure Web 应用程序防火墙敏感数据保护? 和 Azure Web 应用程序防火墙敏感数据保护。
为全面的日志记录配置诊断设置:在 WAF 资源上启用诊断设置,将日志保存到 Log Analytics、存储帐户或事件中心。 定期日志评审有助于优化 WAF 策略并了解针对应用程序的攻击模式。 请参阅 Azure Web 应用程序防火墙监视和日志记录。
数据保护
Azure Web 应用程序防火墙的数据保护涉及保护 WAF 处理的敏感信息、实现适当的加密和维护适当的访问控制。 这些措施有助于保护应用程序及其处理的数据免受未经授权的访问和泄露。
标记处理敏感信息的资源:使用标记来标识和跟踪 Azure WAF 以及存储或处理敏感信息的相关资源。 这有助于报告合规性并确保应用适当的安全控制。 请参阅 如何创建和使用标记。
实现环境隔离:为不同的安全域(例如开发、测试和生产环境)使用单独的订阅和管理组。 这可以防止跨环境数据泄露,并允许环境特定的安全控制。 请参阅 如何创建其他 Azure 订阅。
确保传输中的加密:验证连接到 Azure WAF 实例和相关资源的客户端是否可以协商 TLS 1.2 或更高版本。 请遵循 Microsoft Defender for Cloud 的建议,确保在静态和传输过程中进行加密,以确保数据安全。 请参阅 了解使用 Azure 传输中的加密。
对 WAF 资源使用静态加密:对所有 Azure 资源(包括 Azure WAF 和相关资源)应用静态加密。 Microsoft建议允许 Azure 管理加密密钥,但当存在特定要求时,可以管理自己的密钥。 请参阅 了解 Azure 中的静态加密。
监视对关键资源的更改:在建立基线后将 Azure WAF 配置为在阻止模式下运行,并使用 Azure Monitor 在关键 WAF 资源或配置发生更改时创建警报。 请参阅 应用程序网关上的 WAF 模式。
启用请求正文检查:配置 WAF 策略以检查 HTTP 请求正文,而不仅仅是标头、Cookie 和 URI。 这允许 WAF 检测 POST 数据和 JSON 有效负载中隐藏的威胁。 请参阅 Azure Web 应用程序防火墙和 Azure Policy。
使用客户管理的密钥进行增强加密:请考虑使用存储在 Azure Key Vault 中的客户管理的密钥,以满足超过平台管理的密钥的加密要求。 这为加密密钥生命周期和访问提供了额外的控制。 请参阅 如何配置客户管理的加密密钥。
资产管理
有效的资产管理有助于保持对 Web 应用程序防火墙资源的可见性和控制。 这包括自动发现、适当的标记、定期库存对帐和策略强制实施,以确保 WAF 部署保持安全且合规。
使用自动化资产发现:使用 Azure Resource Graph 查询和发现所有与 WAF 相关的资源,包括订阅中的计算、存储、网络、端口和协议。 确保具有适当的读取权限,并可以枚举所有 Azure 订阅和资源。 请参阅 如何使用 Azure Resource Graph 创建查询。
使用标记维护资产元数据:将标记应用于 Azure WAF 策略和相关资源,以逻辑方式组织访问和管理。 标记可以与资源相关联,并应用于组织对订阅中这些资源的访问。 请参阅 如何创建和使用标记。
系统地组织和跟踪资源:使用标记、管理组和单独的订阅来组织和跟踪 Azure WAF 和相关资源。 定期协调清单,并确保及时从订阅中删除未经授权的资源。 请参阅 如何创建管理组。
定义和维护已批准的资源清单:根据组织需求创建已批准资源的清单,包括其配置。 使用 Azure Policy 限制可在订阅中创建的资源类型,并确保批准所有现有资源。 请参阅 如何配置和管理 Azure Policy。
监视未经批准的资源:使用 Azure Policy 对资源类型施加限制,并监视订阅中未经批准的 Azure WAF 资源。 使用 Azure Resource Graph 查询和发现资源,以确保您环境中的所有 Azure WAF 和相关资源已获得批准。 请参阅 如何使用 Azure Graph 创建查询。
限制 Azure 资源管理器访问:使用 Azure 条件访问通过为“Azure 管理”应用配置“阻止访问”来限制用户与 Azure 资源管理器交互的能力。 这有助于防止对 WAF 资源进行未经授权的更改。 请参阅 如何配置条件访问以阻止对 Azure 资源管理器的访问。
策略符合性和治理
策略合规性和治理可确保 Web 应用程序防火墙部署符合组织标准和法规要求。 这些控制有助于在整个环境中维护一致的安全配置,并提供自动化的合规性监视和强制实施。
使用 Azure Policy 强制实施 WAF 部署:实施 Azure Policy 定义,要求在 Azure Front Door 和应用程序网关资源上进行 WAF 部署。 配置策略以审核、拒绝或自动修正不符合的资源。 请参阅 Azure Web 应用程序防火墙和 Azure Policy。
强制实施 WAF 模式符合性:在初始优化后,使用 Azure Policy 强制所有 WAF 策略在预防模式下运行。 这可确保在整个环境中提供一致的保护,并防止在仅检测模式下意外部署 WAF。 请参阅 Azure Web 应用程序防火墙和 Azure Policy。
要求资源日志记录符合性:实施策略,以强制在所有已启用 WAF 的服务上启用资源日志和指标。 这可确保在整个组织中实现安全监视和符合性要求的一致日志记录。 请参阅 Azure Web 应用程序防火墙和 Azure Policy。
强制使用高级层以提高安全性:使用 Azure Policy 要求对所有配置文件使用 Azure Front Door 高级层,确保访问高级 WAF 功能,例如托管规则集、机器人保护和专用链接功能。 请参阅 Azure Web 应用程序防火墙和 Azure Policy。
将 WAF 配置定义为代码:使用 ARM 模板、Bicep 或 Terraform 实现基础结构作为代码做法,以跨环境保持一致的 WAF 配置。 此方法简化了规则排除管理并减少配置偏移。 请参阅 Azure Front Door 中 Azure Web 应用程序防火墙的最佳做法。
实现自动化合规性监视:使用 Microsoft Defender for Cloud 和 Azure Policy 持续监视 WAF 符合性,并接收针对未受保护的 Web 应用程序的建议。 为策略冲突和合规性偏差配置自动警报。 请参阅 Azure Web 应用程序防火墙和 Azure Policy。