Egyéni szabályok az Azure Web Application Firewallhoz az Azure Front Dooron

Az Azure Web Application Firewall az Azure Front Dooron lehetővé teszi a webalkalmazások hozzáférésének szabályozását a megadott feltételek alapján. Az egyéni webalkalmazási tűzfalszabály (WAF) egy prioritási számot, szabálytípust, egyezési feltételeket és egy műveletet tartalmaz.

Kétféle egyéni szabály létezik: egyezés a szabályokkal és a sebességkorlátozási szabályokkal. Az egyezési szabály egyező feltételek alapján szabályozza a hozzáférést. A sebességkorlátozási szabály az egyező feltételek és a bejövő kérések aránya alapján szabályozza a hozzáférést. Letilthat egy egyéni szabályt, hogy megakadályozza annak kiértékelését, de megtartsa a konfigurációt.

További információ a sebességkorlátozásról: Mi az Azure Front Door sebességkorlátozása?

Prioritás, művelettípusok és egyezés feltételei

A hozzáférést egy egyéni WAF-szabvánnyal szabályozhatja, amely meghatároz egy prioritási számot, egy szabálytípust, egy egyezési feltételek tömbét és egy műveletet.

  • Priority (Prioritás)

    A WAF-szabályok kiértékelési sorrendjét leíró egyedi egész szám. Az alacsonyabb prioritású értékeket tartalmazó szabályok kiértékelése a magasabb értékeket tartalmazó szabályok előtt történik. A szabály kiértékelése a Napló kivételével bármely szabályműveletnél leáll. A prioritási számoknak egyedinek kell lenniük az összes egyéni szabály között.

  • Művelet

    Meghatározza, hogyan irányíthat egy kérést, ha egy WAF-szabály megfeleltetve van. Az alábbi műveletek közül választhat, ha egy kérelem egyezik egy egyéni szabálysal.

    • Engedélyezés: A WAF lehetővé teszi a kérés feldolgozását, a WAF-naplókban lévő bejegyzés naplózását és a kilépéseket.
    • Blokk: A kérés le van tiltva. A WAF választ küld az ügyfélnek anélkül, hogy tovább továbbítanák a kérést. A WAF naplóz egy bejegyzést a WAF-naplókban és a kilépésekben.
    • Napló: A WAF naplóz egy bejegyzést a WAF-naplókban, és továbbra is kiértékeli a következő szabályt a prioritási sorrendben.
    • Átirányítás: A WAF átirányítja a kérést egy megadott URI-ba, naplóz egy bejegyzést a WAF-naplókban, és kilép.
  • Feltétel egyeztetése

    Egyezésváltozót, operátort és egyezésértéket határoz meg. Minden szabály több egyezési feltételt is tartalmazhat. Az egyezés feltétele lehet földrajzi hely, ügyfél IP-címe (CIDR), méret vagy sztringegyeztetés. A sztringegyezés egyezés változók listájában szerepelhet.

    • Változó egyeztetése

      • RequestMethod
      • Querystring
      • PostArgs
      • RequestUri
      • RequestHeader
      • RequestBody
      • Cookie-k
    • Operátor

      • Bármely: Gyakran használják az alapértelmezett művelet meghatározására, ha nincsenek egyező szabályok. Bármelyik egyezik az összes operátorral.
      • Equal
      • Tartalmazza
      • LessThan: Méretkorlátozás
      • GreaterThan: Méretkorlátozás
      • LessThanOrEqual: Méretkorlátozás
      • GreaterThanOrEqual: Méretkorlátozás
      • BeginsWith
      • EndsWith
      • Regex
    • Regex

      Nem támogatja a következő műveleteket:

      • Háttérrendszerek és a részexpressziók rögzítése
      • Tetszőleges nulla szélességű állítások
      • Subroutine-hivatkozások és rekurzív minták
      • Feltételes minták
      • Visszakövetés vezérlőinek parancsai
      • A \C egy bájtos irányelv
      • Az \R újvonalas egyezés direktíva
      • A \K kezdetű egyezés alaphelyzetbe állításáról szóló irányelv
      • Ábrafeliratok és beágyazott kód
      • Atomi csoportosítás és birtokos kvantitátorok
    • Negate [nem kötelező]

      A feltételt igaz értékre állíthatjanegate, ha egy feltétel eredményét el kell tagadni.

    • Átalakítás [nem kötelező]

      Azoknak a sztringeknek a listája, amelyen az átalakítások neve szerepel, mielőtt a rendszer megkísérelné az egyeztetést. Ezek lehetnek a következő átalakítások:

      • Nagybetűs
      • Kisbetűs
      • Berendezés
      • RemoveNulls
      • UrlDecode
      • UrlEncode
    • Érték egyeztetése

      Támogatott HTTP-kérési metódusértékek a következők:

      • KAP
      • POST
      • PUT
      • HEAD
      • Törlés...
      • ZÁR
      • KINYIT
      • PROFIL
      • BEÁLLÍTÁSOK
      • PROPFIND
      • PROPPATCH
      • MKCOL
      • MÁSOL
      • MOZGATNI
      • JAVÍTÁS
      • CSATLAKOZÁS

Példák

Vegye figyelembe az alábbi példákat.

Egyeztetés HTTP-kérelemparaméterek alapján

Tegyük fel, hogy konfigurálnia kell egy egyéni szabályt az alábbi két feltételnek megfelelő kérések engedélyezéséhez:

  • A Referer fejléc értéke megegyezik egy ismert értékkel.
  • A lekérdezési sztring nem tartalmazza a szót password.

Íme egy példa az egyéni szabály JSON-leírására:

{
  "name": "AllowFromTrustedSites",
  "priority": 1,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestHeader",
      "selector": "Referer",
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "www.mytrustedsites.com/referpage.html"
      ]
    },
    {
      "matchVariable": "QueryString",
      "operator": "Contains",
      "matchValue": [
        "password"
      ],
      "negateCondition": true
    }
  ],
  "action": "Allow"
}

HTTP PUT-kérések letiltása

Tegyük fel, hogy le kell tiltania a HTTP PUT metódust használó kéréseket.

Íme egy példa az egyéni szabály JSON-leírására:

{
  "name": "BlockPUT",
  "priority": 2,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestMethod",
      "selector": null,
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "PUT"
      ]
    }
  ],
  "action": "Block"
}

Méretkorlát

Az Azure Front Door WAF lehetővé teszi olyan egyéni szabályok készítését, amelyek hossz- vagy méretkorlátozást alkalmaznak a bejövő kérések egy részén. Ez a méretkorlát bájtban van megadva.

Tegyük fel, hogy le kell tiltania azokat a kérelmeket, ahol az URL-cím hosszabb 100 karakternél.

Íme egy példa az egyéni szabály JSON-leírására:

{
  "name": "URLOver100",
  "priority": 5,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestUri",
      "selector": null,
      "operator": "GreaterThanOrEqual",
      "negateCondition": false,
      "matchValue": [
        "100"
      ]
    }
  ],
  "action": "Block"
}

Egyéni szabályok másolása és duplikálása

Az egyéni szabályok duplikálhatók egy adott szabályzatban. Egy szabály duplikálásakor meg kell adnia a szabály egyedi nevét és egy egyedi prioritási értéket. Emellett az egyéni szabályok átmásolhatók az egyik Azure Front Door WAF-szabályzatból a másikba, ha a szabályzatok ugyanabban az előfizetésben találhatók. Amikor egy szabályt egy szabályzatból egy másikba másol, ki kell választania azt az Azure Front Door WAF-szabályzatot, amelybe a szabályt át szeretné másolni. Miután kiválasztotta a WAF-szabályzatot, egyedi nevet kell adnia a szabálynak, és prioritási rangot kell hozzárendelnie.

Következő lépések