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ávalEquals 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
, HeaderName
PostParamName
vagy QueryParamName
a 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
- Kizárási listák konfigurálása az Azure Front Door WAF-ben.
- A WAF-beállítások konfigurálása után megtudhatja, hogyan tekintheti meg a WAF-naplókat. További információkért tekintse meg az Azure Front Door diagnosztikát.