使用 PowerShell 自定义 Web 应用程序防火墙规则
Azure 应用程序网关 Web 应用程序防火墙 (WAF) 可为 Web 应用程序提供保护。 这些保护通过打开 Web 应用程序安全性项目 (OWASP) 核心规则集 (CRS) 来提供。 某些规则可能会导致误报,并会阻止实际流量。 出于此原因,应用程序网关提供了自定义规则组和规则的功能。 有关特定规则组和规则的详细信息,请参阅 Web 应用程序防火墙 CRS 规则组和规则列表。
查看规则组和规则
以下代码示例演示了如何查看可在启用了 WAF 的应用程序网关上配置的规则和规则组。
查看规则组
以下示例演示了如何查看规则组:
Get-AzApplicationGatewayAvailableWafRuleSets
以下输出截取自前一示例的响应:
OWASP (Ver. 3.0):
General:
Description:
Rules:
RuleId Description
------ -----------
200004 Possible Multipart Unmatched Boundary.
REQUEST-911-METHOD-ENFORCEMENT:
Description:
Rules:
RuleId Description
------ -----------
911011 Rule 911011
911012 Rule 911012
911100 Method is not allowed by policy
911013 Rule 911013
911014 Rule 911014
911015 Rule 911015
911016 Rule 911016
911017 Rule 911017
911018 Rule 911018
REQUEST-913-SCANNER-DETECTION:
Description:
Rules:
RuleId Description
------ -----------
913011 Rule 913011
913012 Rule 913012
913100 Found User-Agent associated with security scanner
913110 Found request header associated with security scanner
913120 Found request filename/argument associated with security scanner
913013 Rule 913013
913014 Rule 913014
913101 Found User-Agent associated with scripting/generic HTTP client
913102 Found User-Agent associated with web crawler/bot
913015 Rule 913015
913016 Rule 913016
913017 Rule 913017
913018 Rule 913018
... ...
禁用规则
以下示例在应用程序网关上禁用了规则 911011
和 911012
:
$disabledrules=New-AzApplicationGatewayFirewallDisabledRuleGroupConfig -RuleGroupName REQUEST-911-METHOD-ENFORCEMENT -Rules 911011,911012
Set-AzApplicationGatewayWebApplicationFirewallConfiguration -ApplicationGateway $gw -Enabled $true -FirewallMode Detection -RuleSetVersion 3.0 -RuleSetType OWASP -DisabledRuleGroups $disabledrules
Set-AzApplicationGateway -ApplicationGateway $gw
强制性规则
以下列表包含导致 WAF 在防护模式下阻止请求的条件(在检测模式下,它们作为异常记录)。 无法配置或禁用这些规则:
- 除非关闭正文检查(XML、JSON、表单数据),否则无法分析请求正文会导致请求被阻止
- 请求正文(不带文件)数据长度大于配置的限制
- 请求正文(包括文件)大于限制
- WAF 引擎发生内部错误
CRS 3.x 特定:
- 入站异常分数超出阈值
后续步骤
配置你禁用的规则后,可以了解如何查看 WAF 日志。 有关详细信息,请参阅应用程序网关诊断。