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