Webalkalmazási tűzfal az Azure Front Door kizárási listáival

Előfordulhat, hogy az Azure Web Application Firewall az Azure Front Doorban blokkolja a jogos kéréseket. A webalkalmazási tűzfal (WAF) finomhangolása során konfigurálhatja a WAF-ot az alkalmazás kérésének engedélyezéséhez. A WAF-kizárási listák lehetővé teszik, hogy bizonyos kérésattribútumokat kihagyjon egy WAF-értékelésből. A többi kérelem kiértékelése a szokásos módon történik.

A Microsoft Entra ID például a hitelesítéshez használt jogkivonatokat biztosítja. Ha ezeket a jogkivonatokat egy kérelemfejlécben használják, olyan speciális karaktereket tartalmazhatnak, amelyek egy vagy több WAF-szabály hamis pozitív észlelését válthatják ki. Hozzáadhatja a fejlécet egy kizárási listához, amely arra utasítja a WAF-t, hogy hagyja figyelmen kívül a fejlécet. A WAF továbbra is vizsgálja a gyanús tartalmakra vonatkozó kérés többi részét.

Kizárási hatókörök

Kizárásokat a következő hatókörökben hozhat létre:

  • Szabálykészlet: Ezek a kizárások a szabálykészleten belüli összes szabályra vonatkoznak.
  • Szabálycsoport: Ezek a kizárások egy adott kategória összes szabályára vonatkoznak egy szabálykészleten belül. Konfigurálhat például egy kizárást, amely az összes SQL-injektálási szabályra vonatkozik.
  • Szabály: Ezek a kizárások egyetlen szabályra vonatkoznak.

Kizárási választók

A kizárásválasztók azonosítják a kérelmek azon részeit, amelyekre a kizárás vonatkozik. A WAF figyelmen kívül hagyja a kérés megadott részeiben talált észleléseket. Egyetlen kizárásban több kizárási választót is megadhat.

Minden kizárási választó megadott egyezésváltozót, egy operátort és egy választót.

Változók egyeztetése

A kizáráshoz a következő kérelemattribútumokat adhatja hozzá:

  • Kérelem fejlécének neve
  • Cookie nevének kérése
  • Lekérdezési sztring args neve
  • Kérelem törzsÉNEK POST args neve
  • Kérelem törzsének JSON args-neve (a DRS 2.0-s vagy újabb verziójában támogatott)

A használt mezők értékeit a rendszer nem WAF-szabályok szerint értékeli ki, hanem a nevüket. A kizárási listák letiltják a mező értékének ellenőrzését. A mezőnevek azonban továbbra is kiértékelésre kerülnek. További információ: Egyéb kérelemattribútumok kizárása.

Operátorok

Megadhat egy pontos kérésfejlécet, törzset, cookie-t vagy lekérdezési sztringattribútumot. Vagy megadhat részleges egyezéseket is. A következő operátorok támogatottak a feltételeknek való megfeleltetéshez:

  • Egyenlő: Egyezik az összes olyan kérelemmezővel, amely pontosan megfelel a megadott választóértéknek. Ha például egy bearerToken nevű fejlécet szeretne kijelölni, használja az Equals operátort a bearerToken választóval.
  • A következővel kezdődik: Egyezzen az összes olyan kérelemmezővel, amely a megadott választóértékkel kezdődik.
  • Ezzel végződik: Egyezzen az összes olyan kérelemmezővel, amely a megadott választó értékkel végződik.
  • Tartalmazza: Egyezik a megadott választóértéket tartalmazó összes kérelemmezővel.
  • Bármelyikkel egyenlő: Egyezik az összes kérelemmezővel. Az operátor használatakor a Equals any választó értéke automatikusan a következőre *van állítva: . Az operátor használatával Equals any például konfigurálhat egy kizárást, amely az összes kérelemfejlécre vonatkozik.

Kis- és nagybetűk érzékenysége

A fejléc- és cookie-nevek nem érzéketlenek. A lekérdezési sztringek, a POST argumentumok és a JSON-argumentumok megkülönböztetik a kis- és nagybetűket.

Törzstartalmak vizsgálata

Néhány felügyelt szabály kiértékeli a kérelem törzsének nyers hasznos adatait, mielőtt POST vagy JSON argumentumokká elemeznénk. Így bizonyos helyzetekben megjelenhetnek olyan naplóbejegyzések, amelyek matchVariableName értéke vagy DecodedInitialBodyContentsértéke InitialBodyContents .

Tegyük fel például, hogy létrehoz egy kizárást egy egyező változóval Request body POST args és egy választóval a post argumentumok azonosításához FOOés figyelmen kívül hagyásához. Többé nem jelennek meg olyan naplóbejegyzések, amelynek matchVariableName értéke PostParamValue:FOO. Ha azonban egy post argumentum neve FOO olyan szöveget tartalmaz, amely elindít egy szabályt, a napló megjelenítheti az észlelést a törzs kezdeti tartalmában. A kezdeti törzstartalmakhoz jelenleg nem hozhat létre kivételeket.

Kizárási szabályok definiálása az Azure Web Application Firewall naplói alapján

Naplókkal megtekintheti a letiltott kérések részleteit, beleértve a szabályt kiváltó kérés részeit is. További információ: Azure Web Application Firewall monitorozás és naplózás.

Előfordulhat, hogy egy adott WAF-szabály hamis pozitív észlelést hoz létre a kérelemfejlécben, a cookie-ban, a POST argumentumban, a lekérdezési sztring argumentumában vagy a kérelemtörzs JSON-mezőjében szereplő értékekből. Ha ezek a hamis pozitív észlelések történnek, konfigurálhatja a szabályt úgy, hogy kizárja a kérelem megfelelő részét a kiértékelésből.

Az alábbi táblázat a WAF-naplókból származó példaértékeket és a létrehozható kizárási választókat mutatja be.

matchVariableName a WAF-naplókból Szabálykizárás a portálon
CookieValue:SOME_NAME Cookie nevének kérése egyenlő SOME_NAME
HeaderValue:SOME_NAME Kérelem fejlécének neve egyenlő SOME_NAME
PostParamValue:SOME_NAME Kérelem törzse POST args neve Egyenlő SOME_NAME
QueryParamValue:SOME_NAME Lekérdezési sztring args neve Egyenlő SOME_NAME
JsonValue:SOME_NAME Kérelem törzsének JSON args neve Egyenlő SOME_NAME

A JSON-kérelmek szerveire vonatkozó kizárások

A DRS 2.0-s verziójában a JSON-kérelemtesteket a WAF vizsgálja meg. Vegyük például ezt a JSON-kérelem törzsét:

{
  "posts": [
    {
      "id": 1,
      "comment": ""
    },
    {
      "id": 2,
      "comment": "\"1=1\""
    }
  ]
}

A kérelem tartalmaz egy SQL-megjegyzés karaktersorozatot, amelyet a WAF potenciális SQL-injektálási támadásként észlel.

Ha úgy ítéli meg, hogy a kérés jogos, létrehozhat egy kizárást a következő egyezés változójával Request body JSON args name, egy operátorával Equalsés egy választójával posts.comment.

Egyéb kérésattribútumok kizárása

Ha a WAF-naplóbejegyzés olyan értéket jelenít meg matchVariableName , amely nem szerepel az előző táblában, nem hozhat létre kizárást. Például jelenleg nem hozhat létre kivételeket a cookie-nevekhez, a fejlécnevekhez, a POST paraméternevekhez vagy a lekérdezési paraméternevekhez.

Ehelyett fontolja meg az alábbi műveletek egyikét:

  • Tiltsa le azokat a szabályokat, amelyek hamis pozitív eredményt adnak.
  • Hozzon létre egy egyéni szabályt, amely explicit módon engedélyezi ezeket a kéréseket. A kérések megkerülik az összes WAF-ellenőrzést.

Különösen akkor, ha az matchVariableName érték CookieName, HeaderNamePostParamNamevagy QueryParamNamea mező neve, és nem annak értéke, aktiválta a szabályt. A szabálykizárás jelenleg nem támogatja ezeket matchVariableName az értékeket.

Következő lépések