Delen via


Uitsluitingslijsten voor Web Application Firewall configureren

Soms kan Azure Web Application Firewall in Azure Front Door een legitieme aanvraag blokkeren. Als onderdeel van het afstemmen van uw Web Application Firewall (WAF), kunt u de WAF configureren om de aanvraag voor uw toepassing toe te staan. Met WAF-uitsluitingslijsten kunt u specifieke aanvraagkenmerken weglaten uit een WAF-evaluatie. De rest van de aanvraag wordt als normaal geëvalueerd. Voor meer informatie over uitsluitingslijsten raadpleegt u Azure Web Application Firewall met Azure Front Door-uitsluitingslijsten.

Een uitsluitingslijst kan worden geconfigureerd met behulp van Azure PowerShell, de Azure CLI, de REST API, Bicep, Azure Resource Manager-sjablonen en Azure Portal.

Scenario

Stel dat u een API hebt gemaakt. Uw clients verzenden aanvragen naar uw API met headers met namen zoals userid en user-id.

Tijdens het afstemmen van uw WAF ziet u dat sommige legitieme aanvragen zijn geblokkeerd omdat de gebruikersheaders tekenreeksen bevatten die de WAF heeft gedetecteerd als SQL-injectieaanvallen. Regel-id 942230 detecteert met name de aanvraagheaders en blokkeert de aanvragen. Regel 942230 maakt deel uit van de SQLI-regelgroep.

U besluit een uitsluiting te maken om toe te staan dat deze legitieme aanvragen worden doorgegeven zonder dat de WAF ze blokkeert.

Een uitsluiting maken

  1. Open uw Azure Front Door WAF-beleid.

  2. Selecteer Beheerde regels>Uitsluitingen beheren.

    Schermopname van Azure Portal met de pagina Beheerde regels van het WAF-beleid, met de knop Uitsluitingen beheren gemarkeerd.

  3. Selecteer Toevoegen.

    Schermopname van Azure Portal met de knop Toevoegen van de uitsluitingslijst.

  4. Configureer de sectie Van toepassing op de uitsluiting:

    Veld Waarde
    Regelset Microsoft_DefaultRuleSet_2.0
    Regelgroep SQLI
    Regel 942230 Detecteert voorwaardelijke SQL-injectiepogingen
  5. Configureer de voorwaarden voor uitsluitingsovereenkomsten:

    Veld Waarde
    Variabele vergelijken Naam van aanvraagheader
    Operator Begint met
    Selector User
  6. Bekijk de uitsluiting, die eruit moet zien als in de volgende schermopname:

    Schermopname van Azure Portal met de uitsluitingsconfiguratie.

    Deze uitsluiting is van toepassing op eventuele aanvraagheaders die beginnen met het woord user. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus kopteksten die beginnen User , worden ook gedekt door de uitsluiting. Als waf-regel 942230 een risico in deze headerwaarden detecteert, negeert deze de header en gaat verder.

  7. Selecteer Opslaan.

Een uitsluitingskiezer definiëren

Gebruik de cmdlet New-AzFrontDoorWafManagedRuleExclusionObject om een nieuwe uitsluitingskiezer te definiëren.

In het volgende voorbeeld worden aanvraagheaders geïdentificeerd die beginnen met het woord user. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus kopteksten die beginnen User , worden ook gedekt door de uitsluiting.

$exclusionSelector = New-AzFrontDoorWafManagedRuleExclusionObject `
  -Variable RequestHeaderNames `
  -Operator StartsWith `
  -Selector 'user'

Een uitsluiting per regel definiëren

Gebruik de cmdlet New-AzFrontDoorWafManagedRuleOverrideObject om een nieuwe uitsluiting per regel te definiëren, waaronder de selector die u in de vorige stap hebt gemaakt.

In het volgende voorbeeld wordt een uitsluiting gemaakt voor regel-id 942230.

$exclusion = New-AzFrontDoorWafManagedRuleOverrideObject `
  -RuleId '942230' `
  -Exclusion $exclusionSelector

De uitsluiting toepassen op de regelgroep

Gebruik de cmdlet New-AzFrontDoorWafRuleGroupOverrideObject om een regelgroep te maken die de uitsluiting toepast op de juiste regelgroep.

In het volgende voorbeeld wordt de SQLI-regelgroep gebruikt omdat die groep regel-id 942230 bevat.

$ruleGroupOverride = New-AzFrontDoorWafRuleGroupOverrideObject `
  -RuleGroupName 'SQLI' `
  -ManagedRuleOverride $exclusion

De beheerde regelset configureren

Gebruik de cmdlet New-AzFrontDoorWafManagedRuleObject om de beheerde regelset te configureren, inclusief de regelgroep die u in de vorige stap hebt gemaakt.

In het volgende voorbeeld wordt de DRS 2.0-regelset geconfigureerd met de onderdrukking en uitsluiting van de regelgroep.

$managedRuleSet = New-AzFrontDoorWafManagedRuleObject `
  -Type 'Microsoft_DefaultRuleSet' `
  -Version '2.0' `
  -Action Block `
  -RuleGroupOverride $ruleGroupOverride

De configuratie van de beheerde regelset toepassen op het WAF-profiel

Gebruik de cmdlet Update-AzFrontDoorWafPolicy om uw WAF-beleid bij te werken om de configuratie op te nemen die u hebt gemaakt. Zorg ervoor dat u de juiste naam van de resourcegroep en de naam van het WAF-beleid voor uw eigen omgeving gebruikt.

Update-AzFrontDoorWafPolicy `
  -ResourceGroupName 'FrontDoorWafPolicy' `
  -Name 'WafPolicy'
  -ManagedRule $managedRuleSet

Een uitsluiting maken

Gebruik de az network front-door waf-policy managed-rules exclusion add opdracht om uw WAF-beleid bij te werken om een nieuwe uitsluiting toe te voegen.

De uitsluiting identificeert aanvraagheaders die beginnen met het woord user. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus kopteksten die beginnen User , worden ook gedekt door de uitsluiting.

Zorg ervoor dat u de juiste naam van de resourcegroep en de naam van het WAF-beleid voor uw eigen omgeving gebruikt.

az network front-door waf-policy managed-rules exclusion add \
  --resource-group FrontDoorWafPolicy \
  --policy-name WafPolicy \
  --type Microsoft_DefaultRuleSet \
  --rule-group-id SQLI \
  --rule-id 942230 \
  --match-variable RequestHeaderNames \
  --operator StartsWith \
  --value user

Voorbeeld van Bicep-bestand

In het volgende voorbeeld van bicep-bestand ziet u hoe u:

  • Een Azure Front Door WAF-beleid maken.
  • Schakel de REGELSet DRS 2.0 in.
  • Configureer een uitsluiting voor regel 942230, die zich in de SQLI-regelgroep bevindt. Deze uitsluiting is van toepassing op eventuele aanvraagheaders die beginnen met het woord user. De overeenkomstvoorwaarde is niet hoofdlettergevoelig, dus kopteksten die beginnen User , worden ook gedekt door de uitsluiting. Als waf-regel 942230 een risico in deze headerwaarden detecteert, negeert deze de header en gaat verder.
param wafPolicyName string = 'WafPolicy'

@description('The mode that the WAF should be deployed using. In "Prevention" mode, the WAF will block requests it detects as malicious. In "Detection" mode, the WAF will not block requests and will simply log the request.')
@allowed([
  'Detection'
  'Prevention'
])
param wafMode string = 'Prevention'

resource wafPolicy 'Microsoft.Network/frontDoorWebApplicationFirewallPolicies@2022-05-01' = {
  name: wafPolicyName
  location: 'Global'
  sku: {
    name: 'Premium_AzureFrontDoor'
  }
  properties: {
    policySettings: {
      enabledState: 'Enabled'
      mode: wafMode
    }
    managedRules: {
      managedRuleSets: [
        {
          ruleSetType: 'Microsoft_DefaultRuleSet'
          ruleSetVersion: '2.0'
          ruleSetAction: 'Block'
          ruleGroupOverrides: [
            {
              ruleGroupName: 'SQLI'
              rules: [
                {
                  ruleId: '942230'
                  enabledState: 'Enabled'
                  action: 'AnomalyScoring'
                  exclusions: [
                    {
                      matchVariable: 'RequestHeaderNames'
                      selectorMatchOperator: 'StartsWith'
                      selector: 'user'
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  }
}

Volgende stappen

Meer informatie over Azure Front Door.