应用网关 WAF 的 零信任 建议

应用程序网关上的Azure Web 应用程序防火墙可保护 Web 应用程序免受常见攻击和漏洞的影响。 以下建议可帮助你验证 WAF 是否已正确配置和监视。

有关所有Azure网络安全零信任建议的摘要,请参阅Azure网络安全零信任建议

建议

应用程序网关 WAF 在防护模式下启用

Azure 应用程序网关 Web 应用程序防火墙(WAF)可保护区域性 Web 应用程序免受常见攻击和漏洞的侵害,例如 SQL 注入、跨站脚本攻击以及其他开放式 Web 应用程序安全项目(OWASP)十大威胁。 在检测模式下,WAF会记录规则匹配,但仍会将请求转发到后端池。 只有防止模式阻止违反WAF规则的请求。 应用网关WAF处于检测模式,会记录对后端服务器的攻击,但无法阻止它们。

修正操作

应用程序网关 WAF 中启用了请求正文检查

Azure 应用程序网关 Web 应用程序防火墙(WAF)会在流量到达区域后端池之前,对 HTTP POST、PUT 和 PATCH 请求正文进行检查,以检测 SQL 注入、跨站点脚本和命令注入负载。 如果你关闭请求正体检查,WAF只评估请求头和URI。 因此,隐藏在表单帖子、API调用和文件上传中的负载会未被检查地到达后端服务器。 受管理的规则集,包括开放全球应用安全Project(OWASP)核心规则集和Microsoft机器人管理器规则集,无法对它们从未见过的内容采取行动。

修正操作

在应用程序网关 WAF 中启用默认规则集

Azure 应用程序网关 Web 应用程序防火墙(WAF)通过托管规则集进行保护:Microsoft默认规则集和开放全球应用安全Project(OWASP)核心规则集。 Microsoft会持续更新这两套规则集,并配备已知攻击模式的检测签名,因此你不需要内部安全专家来配置它们。 没有分配管理规则集的WAF策略不检查任何东西,并将所有请求转交给后端池。 自动化工具包持续扫描处于此状态的应用,并利用已有充分文档的SQL注入、跨站脚本和命令注入漏洞攻击后端服务器。

修正操作

在应用程序网关 WAF 中启用和分配机器人保护规则集

Azure 应用程序网关 Web 应用程序防火墙(WAF)通过Microsoft机器人管理器规则集提供机器人保护,该规则集根据行为模式、机器人签名和IP声誉将自动化流量分类为已知良好、已知错误或未知。 如果不启用规则集,凭证填充、内容抓取、库存囤积和应用层拒绝服务流量会与合法请求混在一起,消耗后端容量。 此类攻击通常来自分布式僵尸网络,它们会轮换IP地址以规避速率限制,因此需要基于签名的分类,而非仅仅限速。

修正操作

应用程序网关 WAF 中启用了 HTTP DDoS 保护规则集

Azure 应用程序网关 Web 应用程序防火墙(WAF)通过Microsoft HTTP DDoS 规则集提供 HTTP 分布式拒绝服务(DDoS)保护,该规则集检测和缓解应用程序层中基于批量 HTTP 的攻击。 与以带宽为目标的网络层 DDoS 攻击不同,基于 HTTP 的 DDoS 攻击通过将看似合法的 HTTP 请求发送到大量服务器资源、数据库连接和应用程序线程来利用应用程序层。 如果没有启用 HTTP DDoS 防护,攻击者可以发动 HTTP 洪水攻击,使后端服务器不堪重负,执行慢速攻击(slowloris),通过保持连接开启来耗尽连接池,并采用高速请求模式来触发资源密集型操作。 HTTP DDoS 规则集包含规则组,这些规则组根据可配置的敏感度级别检测异常请求速率,并且可以在影响后端应用程序服务器之前阻止、记录或重定向恶意流量。

修正操作

应用程序网关 WAF 中启用了速率限制

Azure 应用程序网关 Web 应用程序防火墙(WAF)支持通过自定义规则限制客户端可以在指定时间范围内发出的请求数的速率限制。 速率限制可保护应用程序免受暴力攻击、凭据填充、API 滥用和应用程序层拒绝服务攻击,这些攻击将终结点充斥过多的请求。 如果不配置速率限制,威胁参与者可以针对身份验证终结点尝试每分钟数千个密码组合,大规模测试被盗凭据,提取大量数据,并压倒服务器容量。 速率限制规则允许管理员根据每分钟的请求计数定义阈值,并按 IP 地址跟踪各个客户端。 当客户端超出配置的阈值时,WAF 可以阻止后续请求、记录冲突或重定向到自定义页面。

修正操作

应用程序网关 WAF 中启用了 JavaScript 挑战

Azure 应用程序网关 Web 应用程序防火墙(WAF)支持 JavaScript 挑战(当前处于预览阶段),用于防御自动化机器人和无头浏览器。 当请求触发质询时,WAF 会提供客户端浏览器必须执行的 JavaScript 代码片段来获取有效的质询 Cookie,证明请求源自真实浏览器,而不是简单的 HTTP 客户端或机器人。 成功通过质询的客户端会继续正常运行,直到 Cookie 过期,而无法执行 JavaScript 的机器人和自动化工具会被阻挡。 此机制能够有效抵御不使用 JavaScript 引擎的简单 HTTP 库的凭据填充机器人、Web 抓取器以及应用程序层的分布式拒绝服务(DDoS)机器人。 JavaScript 挑战提供了在允许所有流量和直接阻止可疑机器人之间的折衷方案,无需用户交互(如 CAPTCHA)即可用来验证浏览器功能。

修正操作

在应用程序网关 WAF 中启用诊断日志记录

Azure 应用程序网关 Web 应用程序防火墙(WAF)保护 Web 应用程序免受常见的攻击,包括 SQL 注入、跨站点脚本和 Open Worldwide Application Security Project (OWASP) 前 10 个威胁。 如果未启用诊断日志记录,安全团队将无法访问受阻的攻击、规则匹配、访问模式和防火墙事件。 如果不记录,攻击不会发现,事件响应程序无法将 WAF 事件与其他遥测数据关联或构造攻击时间线。 应用程序网关 WAF 提供多个日志类别,包括访问日志、性能日志和防火墙日志,这些日志必须路由到Log Analytics、存储帐户或事件中心进行安全监视。

修正操作