Dela via


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

Azure Application Gateway Web Application Firewall (WAF) v2 levereras med en förkonfigurerad, plattformshanterad regeluppsättning som ger skydd mot många olika typer av attacker. Dessa attacker inkluderar skript över flera 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 antingen blockera, tillåta eller logga begärd trafik baserat på matchningskriterier. Om WAF-policyn är inställd på detekteringsläge, och en anpassad blockeringsregel utlöses, loggas förfrågan och ingen blockeringsåtgärd görs.

Med anpassade regler kan du skapa egna regler som utvärderas för varje begäran som passerar genom WAF. Dessa regler 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 vidtas en åtgärd (för att tillåta, blockera eller logga). Om en anpassad regel utlöses och en åtgärd för att tillåta eller blockera vidtas vidtas inga ytterligare åtgärder från anpassade eller hanterade regler. I händelse av att en anpassad regel utlöser en tillåt- eller blockeringsåtgärd kan du fortfarande se vissa logghändelser för regelmatchningar från konfigurerade regeluppsättningar (Core Rule Set/Default 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. Anpassade regler kan aktiveras/inaktiveras 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 aktiverat/inaktiverat 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.

Reguljära uttryck stöds också i anpassade regler, 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

Det maximala antalet anpassade WAF-regler är 100. Mer information om Application Gateway gränser finns i Azure-prenumeration och tjänstbegränsningar, kvoter och begränsningar.

Försiktighet

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

Tillåta kontra blockera

Det är enkelt att tillåta och blockera trafik med anpassade regler. Du kan till exempel blockera all trafik som kommer 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 kontrollerar du att parametern är inställd på -ActionTillåt. Om du vill blockera något kontrollerar du att parametern är inställd på -ActionBlockera.

$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/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 från 1-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/intervall för fjärrdatoranslutningen
  • RequestMethod – Metod för HTTP-begäran
  • QueryString - Variabel i URI
  • PostArgs – Argument som skickas i POST-body. Anpassade regler som använder den här matchningsvariabeln tillämpas endast om rubriken "Content-Type" är inställd på "application/x-www-form-urlencoded" och "multipart/form-data". Ytterligare innehållstypen application/json stöds med CRS version 3.2 eller senare, regeluppsättning för bot-skydd 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 tillämpas endast om rubriken "Content-Type" är inställd på application/x-www-form-urlencoded medietyp. Ytterligare innehållstyper stöds application/soap+xml, application/xml, text/xml med CRS version 3.2 eller senare, regeluppsättning för robotskydd och anpassade regler för geomatchning.
  • 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]

Måste vara någon av följande operatorer:

  • IPMatch – används endast när Match Variable är RemoteAddr och endast stöder IPv4
  • Lika – inmatningen är densamma som 'MatchValue'
  • Alla – Den ska inte ha ett MatchValue. Vi rekommenderar att du matchar variabel med en giltig väljare.
  • Innehåller
  • Mindre än
  • GreaterThan
  • Mindre än eller lika med
  • StörreÄn EllerLika
  • Börjar med
  • Slutar med
  • Regex (regex)
  • Geomatchning

Negera villkor [valfritt]

Negerar det aktuella tillståndet.

Transformera [valfritt]

En lista med strängvärden som anger transformeringar 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]

Lista över värden som ska matchas mot, som kan betraktas som OR'ed. Det kan till exempel vara IP-adresser eller andra strängar. Värdeformatet beror på den tidigare operatorn.

Anmärkning

Om din WAF kör CRS 3.1 (Core Rule Set) eller någon annan tidigare CRS-version tillåter matchningsvärdet endast bokstäver, siffror och skiljetecken. Citattecken ", ' och mellanslag stödjs 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-/skyddsläge).
    • Skyddsläge – Blockerar transaktionen baserat på SecDefaultAction. Precis som åtgärden Allow , när begäran har utvärderats och lagts till i blockeringslistan, stoppas utvärderingen 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

Anpassade regler kan kopieras 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 anpassade regler kopieras 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/region. Mer information finns i Geomatch anpassade regler.

Nästa steg