Brandvägg för webbprogram med Azure Front Door-undantagslistor
Ibland kan Azure Web Application Firewall i Azure Front Door blockera en legitim begäran. Som en del av justeringen av brandväggen för webbprogram (WAF) kan du konfigurera WAF för att tillåta begäran för ditt program. Med WAF-undantagslistor kan du utelämna specifika begärandeattribut från en WAF-utvärdering. Resten av begäran utvärderas som vanligt.
Till exempel tillhandahåller Microsoft Entra-ID token som används för autentisering. När dessa token används i ett begärandehuvud kan de innehålla specialtecken som kan utlösa en falsk positiv identifiering av en eller flera WAF-regler. Du kan lägga till huvudet i en undantagslista, vilket talar om för WAF att ignorera huvudet. WAF inspekterar fortfarande resten av begäran om misstänkt innehåll.
Undantagsomfång
Du kan skapa undantag i följande omfång:
- Regeluppsättning: Dessa undantag gäller för alla regler i en regeluppsättning.
- Regelgrupp: Dessa undantag gäller för alla regler för en viss kategori i en regeluppsättning. Du kan till exempel konfigurera ett undantag som gäller för alla SQL-inmatningsregler.
- Regel: Dessa undantag gäller för en enda regel.
Exkluderingsväljare
Exkluderingsväljare identifierar de delar av begäranden som undantaget gäller för. WAF ignorerar alla identifieringar som hittas i de angivna delarna av begäran. Du kan ange flera undantagsväljare i ett enda undantag.
Varje exkluderingsväljare angav en matchningsvariabel, en operator och en väljare.
Matcha variabler
Du kan lägga till följande begärandeattribut i ett undantag:
- Namn på begärandehuvud
- Namn på begärandecookie
- Frågesträngens args-namn
- Post args-namn för begärandetext
- JSON args-namn för begärandetext (stöds på DRS 2.0 eller senare)
Värdena för de fält som du använder utvärderas inte mot WAF-regler, men deras namn utvärderas. Undantagslistorna inaktiverar kontrollen av fältets värde. Fältnamnen utvärderas dock fortfarande. Mer information finns i Exkludera andra begärandeattribut.
Operatorer
Du kan ange ett exakt attribut för begäranderubrik, brödtext, cookie eller frågesträng som ska matchas. Du kan också ange partiella matchningar. Följande operatorer stöds för matchningsvillkor:
- Lika med: Matcha alla begärandefält som exakt matchar det angivna väljarens värde. Om du till exempel vill välja en rubrik med namnet bearerToken använder du operatorn
Equals
med väljaren inställd på bearerToken. - Börjar med: Matcha alla begärandefält som börjar med det angivna väljarevärdet.
- Slutar med: Matcha alla begärandefält som slutar med det angivna väljarevärdet.
- Innehåller: Matcha alla begärandefält som innehåller det angivna väljarevärdet.
- Är lika med alla: Matcha alla fält för begäran. När du använder operatorn
Equals any
anges väljarens värde automatiskt till*
. Du kan till exempel använda operatornEquals any
för att konfigurera ett undantag som gäller för alla begärandehuvuden.
Skiftlägeskänslig
Rubrik- och cookienamn är skiftlägesokänsliga. Frågesträngar, POST-argument och JSON-argument är skiftlägeskänsliga.
Inspektion av brödtextinnehåll
Vissa av de hanterade reglerna utvärderar den råa nyttolasten för begärandetexten innan den parsas i POST-argument eller JSON-argument. Så i vissa situationer kan du se loggposter med värdet matchVariableName
InitialBodyContents
eller DecodedInitialBodyContents
.
Anta till exempel att du skapar ett undantag med en matchningsvariabel för Request body POST args
och en väljare för att identifiera och ignorera POST-argument med namnet FOO
. Du ser inte längre några loggposter med värdet matchVariableName
PostParamValue:FOO
. Men om ett POST-argument med namnet FOO
innehåller text som utlöser en regel kan loggen visa identifieringen i det ursprungliga brödtextinnehållet. Du kan för närvarande inte skapa undantag för det ursprungliga brödtextinnehållet.
Definiera undantagsregler baserat på Azure Web Application Firewall-loggar
Du kan använda loggar för att visa information om en blockerad begäran, inklusive de delar av begäran som utlöste regeln. Mer information finns i Övervakning och loggning av Azure Web Application Firewall.
Ibland skapar en specifik WAF-regel falska positiva identifieringar från värdena som ingår i ett begärandehuvud, cookie, POST-argument, frågesträngsargument eller JSON-fält i en begärandetext. Om dessa falska positiva identifieringar inträffar kan du konfigurera regeln så att den utesluter den relevanta delen av begäran från utvärderingen.
I följande tabell visas exempelvärden från WAF-loggar och motsvarande exkluderingsväljare som du kan skapa.
matchVariableName från WAF-loggar | Regelundantag i portalen |
---|---|
CookieValue:SOME_NAME | Begäran om cookienamn är lika med SOME_NAME |
HeaderValue:SOME_NAME | Namn på begärandehuvud är lika med SOME_NAME |
PostParamValue:SOME_NAME | Post args-namn för begärandetext är lika med SOME_NAME |
QueryParamValue:SOME_NAME | Frågesträngens args-namn är lika med SOME_NAME |
JsonValue:SOME_NAME | JSON args-namn för begärandetext är lika med SOME_NAME |
Undantag för JSON-begärandeorgan
Från DRS version 2.0 inspekteras JSON-begärandeorganen av WAF. Tänk till exempel på den här JSON-begärandetexten:
{
"posts": [
{
"id": 1,
"comment": ""
},
{
"id": 2,
"comment": "\"1=1\""
}
]
}
Begäran innehåller en SQL-kommentarsteckensekvens som WAF identifierar som en potentiell SQL-inmatningsattack.
Om du anser att begäran är legitim kan du skapa ett undantag med en matchningsvariabel för Request body JSON args name
, en operator för Equals
och en väljare för posts.comment
.
Exkludera andra begärandeattribut
Om waf-loggposten visar ett matchVariableName
värde som inte finns i föregående tabell kan du inte skapa ett undantag. Du kan till exempel för närvarande inte skapa undantag för cookienamn, rubriknamn, POST-parameternamn eller frågeparameternamn.
Överväg i stället att vidta någon av följande åtgärder:
- Inaktivera de regler som ger falska positiva identifieringar.
- Skapa en anpassad regel som uttryckligen tillåter dessa begäranden. Begäranden kringgår all WAF-inspektion.
Särskilt när matchVariableName
värdet är CookieName
, HeaderName
, PostParamName
eller QueryParamName
, betyder det att namnet på fältet i stället för dess värde har utlöst regeln. Regelundantag har för närvarande inget stöd för dessa matchVariableName
värden.
Nästa steg
- Konfigurera undantagslistor i Azure Front Door WAF.
- När du har konfigurerat WAF-inställningarna får du lära dig hur du visar dina WAF-loggar. Mer information finns i Azure Front Door-diagnostik.