Web Application Firewall met uitsluitingslijsten van Azure Front Door

Soms kan Azure Web Application Firewall in Azure Front Door een legitieme aanvraag blokkeren. Als onderdeel van het afstemmen van uw Web Application Firewall (WAF), kunt u de WAF configureren om de aanvraag voor uw toepassing toe te staan. Met WAF-uitsluitingslijsten kunt u specifieke aanvraagkenmerken weglaten uit een WAF-evaluatie. De rest van de aanvraag wordt als normaal geëvalueerd.

Microsoft Entra-id biedt bijvoorbeeld tokens die worden gebruikt voor verificatie. Wanneer deze tokens worden gebruikt in een aanvraagheader, kunnen ze speciale tekens bevatten die een fout-positieve detectie kunnen activeren door een of meer WAF-regels. U kunt de header toevoegen aan een uitsluitingslijst, waarmee de WAF de header moet negeren. De WAF inspecteert nog steeds de rest van de aanvraag voor verdachte inhoud.

Uitsluitingsbereiken

U kunt uitsluitingen maken op de volgende bereiken:

  • Regelset: Deze uitsluitingen zijn van toepassing op alle regels binnen een regelset.
  • Regelgroep: Deze uitsluitingen zijn van toepassing op alle regels van een bepaalde categorie binnen een regelset. U kunt bijvoorbeeld een uitsluiting configureren die van toepassing is op alle SQL-injectieregels.
  • Regel: Deze uitsluitingen zijn van toepassing op één regel.

Uitsluitingskiezers

Uitsluitingskiezers identificeren de onderdelen van aanvragen waarop de uitsluiting van toepassing is. De WAF negeert alle detecties die worden gevonden in de opgegeven onderdelen van de aanvraag. U kunt meerdere uitsluitingskiezers opgeven in één uitsluiting.

Elke uitsluitingskiezer heeft een overeenkomstvariabele, een operator en een selector opgegeven.

Variabelen vergelijken

U kunt de volgende aanvraagkenmerken toevoegen aan een uitsluiting:

  • Naam van aanvraagheader
  • Naam van cookie aanvragen
  • Naam van queryreeks args
  • Naam van aanvraagtekst POST-argumenten
  • JSON-naam van aanvraagbody (ondersteund op DRS 2.0 of hoger)

De waarden van de velden die u gebruikt, worden niet geëvalueerd op basis van WAF-regels, maar hun namen worden geëvalueerd. In de uitsluitingslijsten wordt de inspectie van de waarde van het veld uitgeschakeld. De veldnamen worden echter nog steeds geëvalueerd. Zie Andere aanvraagkenmerken uitsluiten voor meer informatie.

Operators

U kunt een exacte aanvraagheader, hoofdtekst, cookie of querytekenreekskenmerk opgeven dat overeenkomt. U kunt desgewenst gedeeltelijke overeenkomsten opgeven. De volgende operators worden ondersteund voor criteria voor overeenkomst:

  • Komt overeen met alle aanvraagvelden die exact overeenkomen met de opgegeven selectorwaarde. Als u bijvoorbeeld een header met de naam bearerToken wilt selecteren, gebruikt u de Equals operator met de selector die is ingesteld op bearerToken.
  • Begint met: Alle aanvraagvelden vergelijken die beginnen met de opgegeven selectorwaarde.
  • Eindigt met: Alle aanvraagvelden die eindigen op de opgegeven selectorwaarde.
  • Bevat: Komt overeen met alle aanvraagvelden die de opgegeven selectorwaarde bevatten.
  • Komt overeen met alle aanvraagvelden. Wanneer u de Equals any operator gebruikt, wordt de selectorwaarde automatisch ingesteld op *. U kunt bijvoorbeeld de Equals any operator gebruiken om een uitsluiting te configureren die van toepassing is op alle aanvraagheaders.

Hoofdlettergevoelig

Header- en cookienamen zijn niet hoofdlettergevoelig. Queryreeksen, POST-argumenten en JSON-argumenten zijn hoofdlettergevoelig.

Inspectie van de inhoud van de hoofdtekst

Sommige beheerde regels evalueren de onbewerkte nettolading van de aanvraagbody voordat deze wordt geparseerd in POST-argumenten of JSON-argumenten. In sommige situaties ziet u logboekvermeldingen met een matchVariableName waarde van InitialBodyContents of DecodedInitialBodyContents.

Stel dat u een uitsluiting maakt met een overeenkomstvariabele van Request body POST args en een selector om POST-argumenten met de naam FOOte identificeren en negeren. U ziet geen logboekvermeldingen meer met een matchVariableName waarde van PostParamValue:FOO. Als een POST-argument met de naam FOO echter tekst bevat die een regel activeert, kan het logboek de detectie in de oorspronkelijke hoofdtekst weergeven. U kunt momenteel geen uitsluitingen maken voor de oorspronkelijke inhoud van de hoofdtekst.

Uitsluitingsregels definiëren op basis van Azure Web Application Firewall-logboeken

U kunt logboeken gebruiken om de details van een geblokkeerde aanvraag weer te geven, inclusief de onderdelen van de aanvraag die de regel heeft geactiveerd. Zie Bewaking en logboekregistratie van Azure Web Application Firewall voor meer informatie.

Soms produceert een specifieke WAF-regel fout-positieve detecties van de waarden die zijn opgenomen in een aanvraagheader, cookie, POST-argument, queryreeksargument of JSON-veld in een aanvraagbody. Als deze fout-positieve detecties plaatsvinden, kunt u de regel zo configureren dat het relevante deel van de aanvraag wordt uitgesloten van de evaluatie.

In de volgende tabel ziet u voorbeeldwaarden uit WAF-logboeken en de bijbehorende uitsluitingskiezers die u kunt maken.

matchVariableName uit WAF-logboeken Uitsluiting van regels in portal
CookieValue:SOME_NAME Naam van aanvraag cookie is gelijk aan SOME_NAME
HeaderValue:SOME_NAME Naam van aanvraagheader is gelijk aan SOME_NAME
PostParamValue:SOME_NAME Aanvraagbody POST args name is gelijk aan SOME_NAME
QueryParamValue:SOME_NAME Querytekenreeks args name is gelijk aan SOME_NAME
JsonValue:SOME_NAME JSON-naam van aanvraagbody is gelijk aan SOME_NAME

Uitsluitingen voor JSON-aanvraagbody's

Vanuit DRS versie 2.0 worden JSON-aanvraaginstanties gecontroleerd door de WAF. Denk bijvoorbeeld aan deze hoofdtekst van de JSON-aanvraag:

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

De aanvraag bevat een tekenreeks voor SQL-opmerkingen, die door de WAF wordt gedetecteerd als een mogelijke SQL-injectieaanval.

Als u vaststelt dat de aanvraag legitiem is, kunt u een uitsluiting maken met een overeenkomstvariabele van Request body JSON args name, een operator van Equalsen een selector van posts.comment.

Andere aanvraagkenmerken uitsluiten

Als uw WAF-logboekvermelding een matchVariableName waarde weergeeft die niet in de voorgaande tabel staat, kunt u geen uitsluiting maken. U kunt momenteel bijvoorbeeld geen uitsluitingen maken voor cookienamen, headernamen, POST-parameternamen of queryparameternamen.

Overweeg in plaats daarvan een van de volgende acties uit te voeren:

  • Schakel de regels uit die fout-positieven geven.
  • Maak een aangepaste regel waarmee deze aanvragen expliciet worden toegestaan. De aanvragen omzeilen alle WAF-inspectie.

Met name wanneer de matchVariableName waarde de naam is CookieName, HeaderName, PostParamNameof QueryParamName, betekent dit dat de naam van het veld, in plaats van de waarde, de regel heeft geactiveerd. Uitsluiting van regels biedt momenteel geen ondersteuning voor deze matchVariableName waarden.

Volgende stappen