Udostępnij za pośrednictwem


Konfigurowanie list wykluczeń zapory aplikacji internetowej

Czasami usługa Azure Web Application Firewall w usłudze Azure Front Door może blokować uzasadnione żądanie. W ramach dostrajania zapory aplikacji internetowej (WAF) można skonfigurować zaporę aplikacji internetowej, aby zezwolić na żądanie aplikacji. Listy wykluczeń zapory aplikacji internetowej umożliwiają pominięcie określonych atrybutów żądania z oceny zapory aplikacji internetowej. Pozostała część żądania jest oceniana normalnie. Aby uzyskać więcej informacji na temat list wykluczeń, zobacz Zapora Azure Web Application Firewall z listami wykluczeń usługi Azure Front Door.

Listę wykluczeń można skonfigurować przy użyciu programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure, interfejsu API REST, szablonów Bicep, usługi Azure Resource Manager i witryny Azure Portal.

Scenariusz

Załóżmy, że utworzono interfejs API. Klienci wysyłają żądania do interfejsu API zawierające nagłówki z nazwami takimi jak userid i user-id.

Podczas dostrajania zapory aplikacji internetowej zauważysz, że niektóre uzasadnione żądania zostały zablokowane, ponieważ nagłówki użytkownika zawierały sekwencje znaków wykryte przez zaporę aplikacji internetowej podczas ataków polegających na wstrzyknięciu kodu SQL. W szczególności identyfikator reguły 942230 wykrywa nagłówki żądań i blokuje żądania. Reguła 942230 jest częścią grupy reguł SQLI.

Decydujesz się utworzyć wykluczenie, aby zezwolić na przekazywanie tych uzasadnionych żądań bez blokowania ich przez zaporę aplikacji internetowej.

Tworzenie wykluczenia

  1. Otwórz zasady zapory aplikacji internetowej usługi Azure Front Door.

  2. Wybierz pozycję Reguły>zarządzane Zarządzaj wykluczeniami.

    Zrzut ekranu przedstawiający stronę Zarządzane reguły zapory aplikacji internetowej w witrynie Azure Portal z wyróżnionym przyciskiem Zarządzaj wykluczeniami.

  3. Wybierz Dodaj.

    Zrzut ekranu przedstawiający witrynę Azure Portal z przyciskiem Dodaj listę wykluczeń.

  4. Skonfiguruj sekcję Dotyczy wykluczenia:

    Pole Wartość
    Zestaw reguł Microsoft_DefaultRuleSet_2.0
    Grupa reguł SQLI
    Reguła 942230 Wykrywa próby wstrzyknięcia warunkowego KODU SQL
  5. Skonfiguruj warunki dopasowania wykluczenia:

    Pole Wartość
    Dopasuj zmienną Nazwa nagłówka żądania
    Operator Rozpoczyna się od
    Selektor User
  6. Przejrzyj wykluczenie, które powinno wyglądać podobnie do poniższego zrzutu ekranu:

    Zrzut ekranu przedstawiający witrynę Azure Portal z wyświetloną konfiguracją wykluczenia.

    To wykluczenie dotyczy wszystkich nagłówków żądań rozpoczynających się od słowa user. Warunek dopasowania jest niewrażliwy na wielkość liter, więc nagłówki rozpoczynające się od User są również objęte wykluczeniem. Jeśli reguła zapory aplikacji internetowej 942230 wykryje ryzyko w tych wartościach nagłówka, ignoruje nagłówek i przechodzi dalej.

  7. Wybierz pozycję Zapisz.

Definiowanie selektora wykluczeń

Użyj polecenia cmdlet New-AzFrontDoorWafManagedRuleExclusionObject, aby zdefiniować nowy selektor wykluczeń.

Poniższy przykład identyfikuje nagłówki żądań rozpoczynające się od słowa user. Warunek dopasowania jest niewrażliwy na wielkość liter, więc nagłówki rozpoczynające się od User są również objęte wykluczeniem.

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

Definiowanie wykluczenia na regułę

Użyj polecenia cmdlet New-AzFrontDoorWafManagedRuleOverrideObject, aby zdefiniować nowe wykluczenie poszczególnych reguł, które obejmuje selektor utworzony w poprzednim kroku.

Poniższy przykład tworzy wykluczenie dla identyfikatora reguły 942230.

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

Stosowanie wykluczenia do grupy reguł

Użyj polecenia cmdlet New-AzFrontDoorWafRuleGroupOverrideObject, aby utworzyć zastąpienie grupy reguł, które stosuje wykluczenie do odpowiedniej grupy reguł.

W poniższym przykładzie użyto grupy reguł SQLI, ponieważ ta grupa zawiera identyfikator reguły 942230.

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

Konfigurowanie zarządzanego zestawu reguł

Użyj polecenia cmdlet New-AzFrontDoorWafManagedRuleObject, aby skonfigurować zarządzany zestaw reguł, w tym zastąpienie grupy reguł utworzone w poprzednim kroku.

W poniższym przykładzie skonfigurowaliśmy zestaw reguł DRS 2.0 z zastąpieniem grupy reguł i jego wykluczeniem.

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

Stosowanie konfiguracji zestawu reguł zarządzanych do profilu zapory aplikacji internetowej

Użyj polecenia cmdlet Update-AzFrontDoorWafPolicy, aby zaktualizować zasady zapory aplikacji internetowej w celu uwzględnienia utworzonej konfiguracji. Upewnij się, że używasz poprawnej nazwy grupy zasobów i nazwy zasad zapory aplikacji internetowej dla własnego środowiska.

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

Tworzenie wykluczenia

az network front-door waf-policy managed-rules exclusion add Użyj polecenia , aby zaktualizować zasady zapory aplikacji internetowej, aby dodać nowe wykluczenie.

Wykluczenie identyfikuje nagłówki żądań rozpoczynające się od słowa user. Warunek dopasowania jest niewrażliwy na wielkość liter, więc nagłówki rozpoczynające się od User są również objęte wykluczeniem.

Upewnij się, że używasz poprawnej nazwy grupy zasobów i nazwy zasad zapory aplikacji internetowej dla własnego środowiska.

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

Przykładowy plik Bicep

Poniższy przykładowy plik Bicep pokazuje, jak:

  • Tworzenie zasad zapory aplikacji internetowej usługi Azure Front Door.
  • Włącz zestaw reguł DRS 2.0.
  • Skonfiguruj wykluczenie dla reguły 942230, która istnieje w grupie reguł SQLI. To wykluczenie dotyczy wszystkich nagłówków żądań rozpoczynających się od słowa user. Warunek dopasowania jest niewrażliwy na wielkość liter, więc nagłówki rozpoczynające się od User są również objęte wykluczeniem. Jeśli reguła zapory aplikacji internetowej 942230 wykryje ryzyko w tych wartościach nagłówka, ignoruje nagłówek i przechodzi dalej.
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'
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  }
}

Następne kroki

Dowiedz się więcej o usłudze Azure Front Door.