Azure CLI를 사용하여 Web Application Firewall 규칙 사용자 지정

Azure Application Gateway WAF(Web Application Firewall)는 웹 애플리케이션을 보호합니다. 이러한 보호 기능은 OWASP(Open Web Application Security Project) CRS(코어 규칙 세트)을 통해 제공됩니다. 일부 규칙은 거짓 긍정의 원인이 되어 실제 트래픽을 차단할 수도 있습니다. 이러한 이유로 Application Gateway는 규칙 그룹 및 규칙을 사용자 지정하는 기능을 제공합니다. 특정 규칙 그룹 및 규칙에 대한 자세한 내용은 Web Application Firewall 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 엔진

CR 3.x 특정:

  • 인바운드 anomaly score가 임계값을 초과했습니다.

다음 단계

사용하지 않는 규칙을 구성한 후에 WAF 로그를 보는 방법을 알아볼 수 있습니다. 자세한 내용은 Application Gateway 진단을 참조하세요.