使用 Azure CLI 自定义 Web 应用程序防火墙规则

Azure 应用程序网关 Web 应用程序防火墙 (WAF) 可为 Web 应用程序提供保护。 这些保护通过打开 Web 应用程序安全性项目 (OWASP) 核心规则集 (CRS) 来提供。 某些规则可能会导致误报,并会阻止实际流量。 出于此原因,应用程序网关提供了自定义规则组和规则的功能。 若要详细了解特定的规则组和规则,请参阅 Web 应用程序防火墙 CRS 规则组和规则列表

查看规则组和规则

以下代码示例演示了如何查看可配置的规则和规则组。

查看规则组

以下示例演示了如何查看规则组:

az network application-gateway waf-config list-rule-sets --type OWASP

以下输出截取自前一示例的响应:

[
  {
    "id": "/subscriptions//resourceGroups//providers/Microsoft.Network/applicationGatewayAvailableWafRuleSets/",
    "location": null,
    "name": "OWASP_3.0",
    "provisioningState": "Succeeded",
    "resourceGroup": "",
    "ruleGroups": [
      {
        "description": "",
        "ruleGroupName": "REQUEST-910-IP-REPUTATION",
        "rules": null
      },
      ...
    ],
    "ruleSetType": "OWASP",
    "ruleSetVersion": "3.0",
    "tags": null,
    "type": "Microsoft.Network/applicationGatewayAvailableWafRuleSets"
  },
  {
    "id": "/subscriptions//resourceGroups//providers/Microsoft.Network/applicationGatewayAvailableWafRuleSets/",
    "location": null,
    "name": "OWASP_2.2.9",
    "provisioningState": "Succeeded",
    "resourceGroup": "",
   "ruleGroups": [
      {
        "description": "",
        "ruleGroupName": "crs_20_protocol_violations",
        "rules": null
      },
      ...
    ],
    "ruleSetType": "OWASP",
    "ruleSetVersion": "2.2.9",
    "tags": null,
    "type": "Microsoft.Network/applicationGatewayAvailableWafRuleSets"
  }
]

查看规则组中的规则

以下示例演示如何查看指定的规则组中的规则:

az network application-gateway waf-config list-rule-sets --group "REQUEST-910-IP-REPUTATION"

以下输出截取自前一示例的响应:

[
  {
    "id": "/subscriptions//resourceGroups//providers/Microsoft.Network/applicationGatewayAvailableWafRuleSets/",
    "location": null,
    "name": "OWASP_3.0",
    "provisioningState": "Succeeded",
    "resourceGroup": "",
    "ruleGroups": [
      {
        "description": "",
        "ruleGroupName": "REQUEST-910-IP-REPUTATION",
        "rules": [
          {
            "description": "Rule 910011",
            "ruleId": 910011
          },
          ...
        ]
      }
    ],
    "ruleSetType": "OWASP",
    "ruleSetVersion": "3.0",
    "tags": null,
    "type": "Microsoft.Network/applicationGatewayAvailableWafRuleSets"
  }
]

禁用规则

以下示例在应用程序网关上禁用了规则 910018910017

az network application-gateway waf-config set --resource-group AdatumAppGatewayRG --gateway-name AdatumAppGateway --enabled true --rule-set-version 3.0 --disabled-rules 910018 910017

强制性规则

以下列表包含导致 WAF 在防护模式下阻止请求的条件(在检测模式下,它们会被记录为异常)。 这些条件无法配置或禁用:

  • 除非关闭正文检查(XML、JSON、表单数据),否则无法分析请求正文会导致请求被阻止
  • 请求正文(不带文件)数据长度大于配置的限制
  • 请求正文(包括文件)大于限制
  • WAF 引擎发生内部错误

CRS 3.x 特定:

  • 入站 anomaly score 超出阈值

后续步骤

配置你禁用的规则后,可以了解如何查看 WAF 日志。 有关详细信息,请参阅应用程序网关诊断