Aangepaste regels voor Web Application Firewall v2 op Azure Application Gateway

De Azure-toepassing Gateway Web Application Firewall (WAF) v2 wordt geleverd met een vooraf geconfigureerde, platformbeheerde regelset die bescherming biedt tegen veel verschillende soorten aanvallen. Deze aanvallen omvatten scripting op meerdere sites, SQL-injectie en andere. Als u een WAF-beheerder bent, kunt u uw eigen regels schrijven om de CRS-regels (Core Rule Set) te verbeteren. Uw aangepaste regels kunnen aangevraagd verkeer blokkeren, toestaan of vastleggen op basis van overeenkomende criteria. Als het WAF-beleid is ingesteld op de detectiemodus en er een aangepaste blokregel wordt geactiveerd, wordt de aanvraag geregistreerd en wordt er geen blokkeringsactie uitgevoerd.

Met aangepaste regels kunt u uw eigen regels maken die worden geëvalueerd voor elke aanvraag die via de WAF wordt doorgegeven. Deze regels hebben een hogere prioriteit dan de rest van de regels in de beheerde regelsets. De aangepaste regels bevatten een regelnaam, regelprioriteit en een matrix met overeenkomende voorwaarden. Als aan deze voorwaarden wordt voldaan, wordt een actie ondernomen (om toe te staan, te blokkeren of te registreren). Als een aangepaste regel wordt geactiveerd en er een actie voor toestaan of blokkeren wordt uitgevoerd, worden er geen verdere aangepaste of beheerde regels geëvalueerd. Aangepaste regels kunnen op aanvraag worden ingeschakeld/uitgeschakeld.

U kunt bijvoorbeeld alle aanvragen van een IP-adres in het bereik 192.168.5.0/24 blokkeren. In deze regel is de operator IPMatch, de matchValues is het IP-adresbereik (192.168.5.0/24) en de actie is om het verkeer te blokkeren. U stelt ook de naam, prioriteit en ingeschakeld/uitgeschakelde status van de regel in.

Aangepaste regels ondersteunen het gebruik van samengestelde logica om geavanceerdere regels te maken die voldoen aan uw beveiligingsbehoeften. U kunt bijvoorbeeld twee aangepaste regels gebruiken om de volgende logica te maken ((rule1:Condition 1 en rule1:Condition 2) of rule2:Condition 3). Deze logica betekent dat als aan voorwaarde 1 en voorwaarde 2 wordt voldaan, of als aan voorwaarde 3 wordt voldaan, de WAF de actie moet uitvoeren die is opgegeven in de aangepaste regels.

Verschillende overeenkomende voorwaarden binnen dezelfde regel worden altijd samengesteld met behulp van en. U kunt bijvoorbeeld verkeer van een specifiek IP-adres blokkeren en alleen als ze een bepaalde browser gebruiken.

Als u of tussen twee verschillende voorwaarden wilt gebruiken, moeten de twee voorwaarden in verschillende regels staan. U kunt bijvoorbeeld verkeer van een specifiek IP-adres blokkeren of verkeer blokkeren als ze een specifieke browser gebruiken.

Reguliere expressies worden ook ondersteund in aangepaste regels, net zoals in de CRS-regelsets. Zie voorbeelden 3 en 5 in Aangepaste webtoepassingsfirewallregels maken en gebruiken.

Notitie

Het maximum aantal aangepaste WAF-regels is 100. Zie Azure-abonnements- en servicelimieten, quota en beperkingen voor meer informatie over Application Gateway-limieten.

Let op

Omleidingsregels die op toepassingsgatewayniveau worden toegepast, worden aangepaste WAF-regels overgeslagen. Zie het overzicht van Application Gateway-omleiding voor meer informatie over omleidingsregels.

Toestaan versus blokkeren

Verkeer toestaan en blokkeren is eenvoudig met aangepaste regels. U kunt bijvoorbeeld al het verkeer blokkeren dat afkomstig is van een bereik van IP-adressen. U kunt een andere regel maken om verkeer toe te staan als de aanvraag afkomstig is van een specifieke browser.

Als u iets wilt toestaan, moet u ervoor zorgen dat de -Action parameter is ingesteld op Toestaan. Als u iets wilt blokkeren, moet u ervoor zorgen dat de -Action parameter is ingesteld op Blokkeren.

$AllowRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example1 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Allow `
   -State Enabled

$BlockRule = New-AzApplicationGatewayFirewallCustomRule `
   -Name example2 `
   -Priority 2 `
   -RuleType MatchRule `
   -MatchCondition $condition `
   -Action Block `
   -State Enabled

De vorige $BlockRule toewijzing wordt toegewezen aan de volgende aangepaste regel in Azure Resource Manager:

"customRules": [
      {
        "name": "blockEvilBot",
        "priority": 2,
        "ruleType": "MatchRule",
        "action": "Block",
        "state": "Enabled",
        "matchConditions": [
          {
            "matchVariables": [
              {
                "variableName": "RequestHeaders",
                "selector": "User-Agent"
              }
            ],
            "operator": "Contains",
            "negationCondition": false,
            "matchValues": [
              "evilbot"
            ],
            "transforms": [
              "Lowercase"
            ]
          }
        ]
      }
    ], 

Deze aangepaste regel bevat een naam, prioriteit, een actie en de matrix met overeenkomende voorwaarden waaraan moet worden voldaan om de actie te kunnen uitvoeren. Zie de volgende veldbeschrijvingen voor meer uitleg over deze velden. Zie Aangepaste regels voor webtoepassingsfirewallregels maken en gebruiken.

Velden voor aangepaste regels

Naam [optioneel]

De naam van de regel. Deze wordt weergegeven in de logboeken.

Regel inschakelen [optioneel]

Schakel deze regel in/uit. Aangepaste regels zijn standaard ingeschakeld.

Prioriteit [vereist]

  • Bepaalt de regelwaardevolgorde. Hoe lager de waarde, hoe eerder de evaluatie van de regel. Het toegestane bereik is van 1-100.
  • Moet uniek zijn voor alle aangepaste regels. Een regel met prioriteit 40 wordt geëvalueerd vóór een regel met prioriteit 80.

Regeltype [vereist]

Op dit moment moet MatchRule zijn.

Overeenkomstvariabele [vereist]

Moet een van de variabelen zijn:

  • RemoteAddr – IPv4-adres/bereik van de externe computerverbinding
  • RequestMethod – HTTP-aanvraagmethode
  • QueryString : variabele in de URI
  • PostArgs : argumenten die zijn verzonden in de post-hoofdtekst. Aangepaste regels die deze overeenkomstvariabele gebruiken, worden alleen toegepast als de header Content-Type is ingesteld op 'application/x-www-form-urlencoded' en 'multipart/form-data'. Extra inhoudstype wordt application/json ondersteund met CRS versie 3.2 of hoger, regelset voor botbeveiliging en aangepaste regels voor geo-overeenkomst.
  • RequestUri – URI van de aanvraag
  • RequestHeaders – Headers van de aanvraag
  • RequestBody: deze variabele bevat de volledige hoofdtekst van de aanvraag als geheel. Aangepaste regels die deze overeenkomstvariabele gebruiken, worden alleen toegepast als de header Content-Type is ingesteld op application/x-www-form-urlencoded het mediatype. Aanvullende inhoudstypen application/soap+xml, application/xml, text/xml worden ondersteund met CRS-versie 3.2 of hoger, regelset voor botbeveiliging en aangepaste regels voor geo-overeenkomst.
  • RequestCookies – Cookies van de aanvraag

Selector [optioneel]

Beschrijft het veld van de verzameling matchVariable. Als de matchVariable bijvoorbeeld RequestHeaders is, kan de selector zich in de header User-Agent bevindt.

Operator [vereist]

Moet een van de volgende operatoren zijn:

  • IPMatch: alleen gebruikt wanneer Match Variable RemoteAddr is en alleen IPv4 ondersteunt
  • Gelijk aan - invoer is hetzelfde als de MatchValue
  • Alle- Het mag geen MatchValue hebben. Het wordt aanbevolen voor Match Variable met een geldige selector.
  • Bevat
  • LessThan
  • GreaterThan
  • LessThanOrEqual
  • GreaterThanOrEqual
  • BeginsWith
  • EndsWith
  • Reguliere expressie
  • Geomatch

Negate-voorwaarde [optioneel]

Onderhandelt de huidige voorwaarde.

Transformeren [optioneel]

Een lijst met tekenreeksen met namen van transformaties die moeten worden uitgevoerd voordat de overeenkomst wordt geprobeerd. Dit kunnen de volgende transformaties zijn:

  • Kleine letters
  • Hoofdletters
  • Trim
  • UrlDecode
  • UrlEncode
  • RemoveNulls
  • HtmlEntityDecode

Waarden vergelijken [vereist]

Lijst met waarden waarmee moet worden vergeleken, die kunnen worden beschouwd als OR'ed. Dit kunnen bijvoorbeeld IP-adressen of andere tekenreeksen zijn. De waardenotatie is afhankelijk van de vorige operator.

Ondersteunde waarden voor de HTTP-aanvraagmethode zijn onder andere:

  • GET
  • HEAD
  • POSTEN
  • OPTIES
  • PUT
  • DELETE
  • PATCH

Actie [vereist]

Als in de WAF-beleidsdetectiemodus een aangepaste regel wordt geactiveerd, wordt de actie altijd geregistreerd, ongeacht de actiewaarde die is ingesteld op de aangepaste regel.

  • Toestaan: autoriseren van de transactie, waarbij alle andere regels worden overgeslagen. De opgegeven aanvraag wordt toegevoegd aan de acceptatielijst en zodra deze overeenkomt, stopt de aanvraag verdere evaluatie en wordt deze verzonden naar de back-endpool. Regels die op de acceptatielijst staan, worden niet geëvalueerd op verdere aangepaste regels of beheerde regels.
  • Blokkeren : blokkeert of registreert de transactie op basis van SecDefaultAction (detectie-/preventiemodus).
    • Preventiemodus: blokkeert de transactie op basis van SecDefaultAction. Net als bij de Allow actie wordt de aanvraag geëvalueerd en toegevoegd aan de bloklijst, wordt de evaluatie gestopt en wordt de aanvraag geblokkeerd. Elke aanvraag daarna voldoet aan dezelfde voorwaarden wordt niet geëvalueerd en wordt geblokkeerd.
    • Detectiemodus: registreert de transactie op basis van SecDefaultAction waarna de evaluatie is gestopt. Elke aanvraag daarna voldoet aan dezelfde voorwaarden wordt niet geëvalueerd en wordt gewoon geregistreerd.
  • Logboek: hiermee kan de regel naar het logboek worden geschreven, maar kunnen de rest van de regels worden uitgevoerd voor evaluatie. De andere aangepaste regels worden geëvalueerd in volgorde van prioriteit, gevolgd door de beheerde regels.

Aangepaste regels kopiëren en dupliceren

Aangepaste regels kunnen worden gedupliceerd binnen een bepaald beleid. Bij het dupliceren van een regel moet u een unieke naam voor de regel en een unieke prioriteitswaarde opgeven. Daarnaast kunnen aangepaste regels worden gekopieerd van het ene WaF-beleid van Application Gateway naar een ander, zolang het beleid beide in hetzelfde abonnement is. Wanneer u een regel van het ene beleid naar het andere kopieert, moet u het WAF-beleid van Application Gateway selecteren waarnaar u de regel wilt kopiëren. Zodra u het WAF-beleid hebt geselecteerd, moet u de regel een unieke naam geven en een prioriteitsrang toewijzen.

Aangepaste regels voor geografische overeenkomst

Met aangepaste regels kunt u aangepaste regels maken die aansluiten op de exacte behoeften van uw toepassingen en beveiligingsbeleid. U kunt de toegang tot uw webtoepassingen beperken per land/regio. Zie Aangepaste regels voor Geomatch voor meer informatie.

Volgende stappen