Anpassade regler för Web Application Firewall v2 på Azure Application Gateway

Gäller för: ✔️ Application Gateway V2

Azure Application Gateway Web Application Firewall (WAF) v2 innehåller en förkonfigurerad, plattformshanterad regeluppsättning som skyddar mot många olika typer av attacker. Dessa attacker omfattar skript mellan webbplatser, SQL-inmatning och andra. Om du är WAF-administratör kanske du vill skriva egna regler för att utöka CRS-reglerna (Core Rule Set). Dina anpassade regler kan blockera, tillåta eller logga begärd trafik baserat på matchande villkor. Om du ställer in WAF-principen på detekteringsläge och en anpassad blockregel utlöses loggas begäran och ingen blockerande åtgärd vidtas.

Använd anpassade regler för att skapa egna regler som WAF utvärderar för varje begäran. De här reglerna har högre prioritet än resten av reglerna i de hanterade regeluppsättningarna. De anpassade reglerna innehåller ett regelnamn, en regelprioritet och en matris med matchande villkor. Om dessa villkor uppfylls vidtar WAF en åtgärd för att tillåta, blockera eller logga. Om en anpassad regel utlöses och WAF vidtar en tillåten eller blockerad åtgärd vidtar WAF inga ytterligare åtgärder från anpassade eller hanterade regler. Om en anpassad regel utlöser en tillåten eller blockerad åtgärd kan du fortfarande se vissa logghändelser för regelmatchningar från konfigurerade regeluppsättningar (Core Rule Set/Standard Rule Set) men dessa regler tillämpas inte. Logghändelserna visas bara på grund av den optimering som framtvingas av WAF-motorn för parallell regelbearbetning och kan ignoreras på ett säkert sätt. Du kan aktivera eller inaktivera anpassade regler på begäran.

Du kan till exempel blockera alla begäranden från en IP-adress i intervallet 192.168.5.0/24. I den här regeln är operatorn IPMatch, matchValues är IP-adressintervallet (192.168.5.0/24) och åtgärden är att blockera trafiken. Du kan också ange regelns namn, prioritet och aktiverade eller inaktiverade tillstånd.

Anpassade regler har stöd för att använda sammansatt logik för att skapa mer avancerade regler som tillgodoser dina säkerhetsbehov. Du kan till exempel använda två anpassade regler för att skapa följande logik ((regel1:Villkor 1 och regel1:Villkor 2) eller regel2:Villkor 3). Den här logiken innebär att om villkor 1 och villkor 2 uppfylls, eller om villkor 3 uppfylls, bör WAF vidta den åtgärd som anges i de anpassade reglerna.

Olika matchningsvillkor inom samma regel sammansätts alltid med hjälp av och. Du kan till exempel blockera trafik från en specifik IP-adress och endast om de använder en viss webbläsare.

Om du vill använda eller mellan två olika villkor måste de två villkoren vara i olika regler. Du kan till exempel blockera trafik från en specifik IP-adress eller blockera trafik om de använder en specifik webbläsare.

Anpassade regler stöder också reguljära uttryck, precis som i CRS-regeluppsättningarna. Exempel finns i exempel 3 och 5 i Skapa och använda anpassade brandväggsregler för webbaserade program.

Anmärkning

Du kan skapa upp till 100 anpassade WAF-regler. Mer information om Application Gateway gränser finns i Azure-prenumeration och tjänstbegränsningar, kvoter och begränsningar.

Försiktighet

Eventuella omdirigeringsregler som du tillämpar på programgatewaynivå kringgår anpassade WAF-regler. Mer information finns i Application Gateway omdirigeringsöversikt.

Tillåta kontra blockera

Du kan enkelt tillåta eller blockera trafik med hjälp av anpassade regler. Du kan till exempel blockera all trafik från ett intervall med IP-adresser. Du kan skapa en annan regel för att tillåta trafik om begäran kommer från en specifik webbläsare.

Om du vill tillåta något anger du parametern -Actiontill Tillåt. Om du vill blockera något anger du parametern -Action till Blockera.

$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

Föregående $BlockRule mappar till följande anpassade regel i 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"
            ]
          }
        ]
      }
    ], 

Den här anpassade regeln innehåller ett namn, en prioritet, en åtgärd och matrisen med matchande villkor som måste uppfyllas för att åtgärden ska utföras. Mer information om dessa fält finns i följande fältbeskrivningar. Exempel på anpassade regler finns i Skapa och använda anpassade brandväggsregler för webbaserade program.

Anmärkning

ANPASSADE WAF-regler stöder inte att tillåta eller blockera begäranden baserat på filnamn eller filtyper.

Fält för anpassade regler

Namn [valfritt]

Namnet på regeln. Det visas i loggarna.

Aktivera regel [valfritt]

Aktivera eller inaktivera den här regeln. Anpassade regler är aktiverade som standard.

Prioritet [obligatoriskt]

  • Bestämmer regelns värderingsordning. Ju lägre värde, desto tidigare utvärdering av regeln. Det tillåtna intervallet är mellan 1 och 100.
  • Måste vara unikt för alla anpassade regler. En regel med prioritet 40 utvärderas före en regel med prioritet 80.

Regeltyp [obligatoriskt]

Måste för närvarande vara MatchRule.

Matcha variabel [obligatoriskt]

Måste vara en av variablerna:

  • RemoteAddr – IPv4-adress eller intervall för fjärrdatoranslutningen
  • RequestMethod – HTTP-begärandemetod
  • QueryString - Variabel i URI
  • PostArgs – Argument som skickas i POST-body. Anpassade regler som använder den här matchningsvariabeln gäller endast om rubriken "Innehållstyp" är inställd på "application/x-www-form-urlencoded" eller "multipart/form-data". CRS version 3.2 eller senare stöder ytterligare en innehållstyp av application/json, tillsammans med regeluppsättningar för robotskydd och anpassade regler för geo-matchning.
  • RequestUri – URI för begäran
  • RequestHeaders – Rubriker för begäran
  • RequestBody – Den här variabeln innehåller hela begärandetexten som helhet. Anpassade regler som använder den här matchningsvariabeln gäller endast om rubriken "Innehållstyp" är inställd på application/x-www-form-urlencoded medietyp. CRS version 3.2 eller senare stöder ytterligare innehållstyper av application/soap+xml, application/xml, text/xml, tillsammans med regeluppsättningar för robotskydd och anpassade regler för geo-matchning.
  • RequestCookies – Cookies för begärningar

Väljare [valfritt]

Beskriver fältet i matchVariable-samlingen. Om matchVariable till exempel är RequestHeaders kan väljaren vara på User-Agent huvud.

Operatör [krävs]

Använd någon av följande operatorer:

  • IPMatch – Använd endast när matchningsvariabeln är RemoteAddr och endast stöder IPv4.
  • Equal – Använd när indata är samma som MatchValue.
  • Any - Använd när det inte finns någon MatchValue. Vi rekommenderar att du matchar variabel med en giltig väljare.
  • Contains – Använd när MatchValue endast är ett explicit värde. Stöd för wildcard och regex saknas.
  • LessThan
  • GreaterThan
  • Mindre än eller lika med
  • StörreÄn EllerLika
  • Börjar med
  • EndsWith
  • Regex
  • Geomatch

Negera villkor [valfritt]

Negerar det aktuella tillståndet.

Transformera [valfritt]

En lista med strängvärden som anger omvandlingar som ska tillämpas innan du försöker matcha. De tillgängliga omvandlingarna är:

  • Gemener
  • Versaler
  • Trimma
  • UrlDecode (på engelska)
  • UrlEncode (på engelska)
  • Ta bort null-värden
  • HtmlEntityDecode (på engelska)

Matchningsvärden [obligatoriskt]

En lista med värden som ska matchas mot, som du kan se som OR'ed. Listan kan till exempel innehålla IP-adresser eller andra strängar. Värdeformatet beror på den tidigare operatorn.

Anmärkning

Om din WAF kör Core Rule Set (CRS) 3.1 eller någon annan tidigare CRS-version accepterar matchningsvärdet endast bokstäver, siffror och skiljetecken. Citattecken ", 'och blanksteg stöds inte.

Värden för HTTP-begärandemetoden som stöds är:

  • Hämta
  • HUVUD
  • Posten
  • ALTERNATIV
  • LÄGG
  • TA BORT
  • Patch

Åtgärd [krävs]

Om en anpassad regel utlöses i WAF-principidentifieringsläge loggas åtgärden alltid oavsett vilket åtgärdsvärde som angetts för den anpassade regeln.

  • Tillåt – Auktoriserar transaktionen och hoppar över alla andra regler. Den angivna begäran läggs till i listan över tillåtna och när den matchas stoppar begäran ytterligare utvärdering och skickas till serverdelspoolen. Regler som finns på listan över tillåtna utvärderas inte för ytterligare anpassade regler eller hanterade regler.
  • Blockera – Blockerar eller loggar transaktionen baserat på SecDefaultAction (identifierings- eller förebyggande läge). – Förebyggande läge – Blockerar transaktionen baserat på SecDefaultAction. Precis som åtgärden Allow stoppas utvärderingen när begäran utvärderas och läggs till i blocklistan och begäran blockeras. Begäranden som kommer efteråt och uppfyller samma villkor utvärderas inte och blockeras.
    • Identifieringsläge – Loggar transaktionen baserat på SecDefaultAction varefter utvärderingen stoppas. Alla begäranden efter detta som uppfyller samma villkor utvärderas inte men loggas.
  • Logg – Låter regeln skriva till loggen, men låter resten av reglerna köras för utvärdering. De andra anpassade reglerna utvärderas i prioritetsordning, följt av de hanterade reglerna.

Kopiera och duplicera anpassade regler

Du kan duplicera anpassade regler inom en viss policy. När du duplicerar en regel måste du ange ett unikt namn för regeln och ett unikt prioritetsvärde. Dessutom kan du kopiera anpassade regler från en Application Gateway WAF-princip till en annan så länge principerna finns i samma prenumeration. När du kopierar en regel från en princip till en annan måste du välja den Application Gateway WAF-princip som du vill kopiera regeln till. När du har valt WAF-principen måste du ge regeln ett unikt namn och tilldela en prioritetsrankning.

Geomatch anpassade regler

Med anpassade regler kan du skapa skräddarsydda regler som passar de exakta behoven för dina program och säkerhetsprinciper. Du kan begränsa åtkomsten till dina webbprogram efter land eller region. Mer information finns i Geomatch anpassade regler.

Nästa steg