Dela via


Övervakning och loggning av Azure Web Application Firewall

Azure Web Application Firewall på Azure Front Door tillhandahåller omfattande loggning och telemetri som hjälper dig att förstå hur brandväggen för webbprogram (WAF) fungerar och vilka åtgärder den vidtar.

Azure Front Door WAF-loggen är integrerad med Azure Monitor. Med Azure Monitor kan du spåra diagnostikinformation, inklusive WAF-aviseringar och loggar. Du kan konfigurera WAF-övervakning i Azure Front Door-resursen i Azure-portalen under fliken Diagnostik , via infrastruktur som kodmetoder eller genom att använda Azure Monitor direkt.

Mått

Azure Front Door registrerar automatiskt mått som hjälper dig att förstå waf-beteendet.

Så här kommer du åt waf-måtten:

  1. Logga in på Azure-portalen och gå till din Azure Front Door-profil.
  2. I det vänstra fönstret under Övervakning väljer du fliken Mått.
  3. Lägg till måttet Antal begäranden för webprogrambrandvägg för att spåra antalet begäranden som matchar WAF-regler.

Du kan skapa anpassade filter baserat på åtgärdstyper och regelnamn. Mått inkluderar begäranden med alla åtgärder utom Log.

Skärmbild som visar måtten för en Azure Front Door WAF.

JavaScript-utmaningsmått (förhandsversion)

Så här kommer du åt waf-mått för JavaScript-utmaningen:

  • Lägg till måttet Brandvägg JS Challenge Request Count för webbprogram för att spåra antalet begäranden som matchar WAF-regler för JavaScript-utmaning.

Följande filter tillhandahålls som en del av det här måttet:

  • PolicyName: Det här är WAF-principnamnet
  • Regel: Detta kan vara en anpassad regel eller robotregel
  • Åtgärd: Det finns fyra möjliga värden för JS Challenge-åtgärden
    • Utfärdat: JS Challenge anropas första gången
    • Godkänd: JS Challenge-beräkningen lyckades och ett svar togs emot
    • Giltigt: JS Challenge-giltighetscookie fanns
    • Blockerad: JS Challenge-beräkningen misslyckades

Skärmbild som visar JavaScript-utmaningsmåtten.

Loggar och diagnostik

Azure Front Door WAF innehåller detaljerad rapportering om varje begäran och varje hot som identifieras. Loggning är integrerad med Azures diagnostikloggar och aviseringar med hjälp av Azure Monitor-loggar.

Loggar är inte aktiverade som standard. Du måste uttryckligen aktivera loggar. Du kan konfigurera loggar i Azure-portalen med hjälp av fliken Diagnostikinställningar .

Skärmbild som visar hur du aktiverar WAF-loggarna.

Om loggning är aktiverat och en WAF-regel utlöses loggas matchande mönster i oformaterad text som hjälper dig att analysera och felsöka WAF-principbeteendet. Du kan använda undantag för att finjustera regler och exkludera data som du vill undantas från loggarna. Mer information finns i undantagslistor för brandvägg för webbprogram i Azure Front Door.

Du kan aktivera tre typer av Azure Front Door-loggar:

  • WAF-loggar
  • Åtkomstloggar
  • Hälsoavsökningsloggar

Aktivitetsloggar är aktiverade som standard och ger insyn i de åtgärder som utförs på dina Azure-resurser, till exempel konfigurationsändringar i din Azure Front Door-profil.

WAF-loggar

Loggen FrontDoorWebApplicationFirewallLog innehåller begäranden som matchar en WAF-regel.

Loggen FrontdoorWebApplicationFirewallLog innehåller alla begäranden som matchar en WAF-regel.

I följande tabell visas de värden som loggas för varje begäran.

Property beskrivning
Åtgärd Åtgärd som vidtagits på begäran. Loggar inkluderar begäranden med alla åtgärder. Åtgärderna är:
  • Allow och allow: Begäran tilläts fortsätta bearbetningen.
  • Block och block: Begäran matchade en WAF-regel som konfigurerats för att blockera begäran. Alternativt uppnåddes tröskelvärdet för avvikelsebedömning och begäran blockerades.
  • Log och log: Begäran matchade en WAF-regel som konfigurerats för att använda åtgärden Log .
  • AnomalyScoring och logandscore: Begäran matchade en WAF-regel. Regeln bidrar till avvikelsepoängen. Begäran kan eller kanske inte blockeras beroende på andra regler som körs på samma begäran.
  • JS Challenge och JSChallengeIssued: Utfärdad på grund av saknat/ogiltigt utmaningsgodkännande, saknat svar.

    Loggen skapas när en klient begär åtkomst till ett webbprogram för första gången och inte har ifrågasatts tidigare. Den här klienten tar emot JS-utmaningssidan och fortsätter att beräkna JS-utmaningen. Vid lyckad beräkning beviljas klienten giltighetscookien.
  • JS Challenge och JSChallengePass: Godkänd på grund av ett giltigt utmaningssvar.

    Den här loggen skapas när en klient löser JS-utmaningen och skickar begäran på nytt med rätt svar. I det här fallet validerar Azure WAF cookien och fortsätter att bearbeta de återstående reglerna utan att generera någon annan JS-utmaning.
  • JS Challenge och JSChallengeValid: Loggad/genomströmning på grund av giltig utmaning.

    Den här loggen skapas när en klient tidigare har löst en utmaning. I det här fallet loggar Azure WAF begäran och fortsätter att bearbeta de återstående reglerna.
  • JS Challenge och JSChallengeBlock: Blockerad

    Den här loggen skapas när en JS-utmaningsberäkning misslyckas.
ClientIP IP-adressen för klienten som gjorde begäran. Om det fanns ett X-Forwarded-For huvud i begäran hämtas klientens IP-adress från det rubrikfältet i stället.
ClientPort IP-porten för klienten som gjorde begäran.
Details Mer information om begäran, inklusive eventuella hot som har identifierats.
matchVariableName: HTTP-parameternamnet för begäran matchade, till exempel rubriknamn (högst 100 tecken).
matchVariableValue: Värden som utlöste matchningen (högst 100 tecken).
Host Rubriken Host för begäran.
Policy Namnet på WAF-principen som bearbetade begäran.
PolicyMode Driftläge för WAF-principen. Möjliga värden är Prevention och Detection.
RequestUri Fullständig URI för begäran.
RuleName Namnet på WAF-regeln som begäran matchade.
SocketIP Käll-IP-adressen som waf ser. Den här IP-adressen baseras på TCP-sessionen och tar inte hänsyn till några begärandehuvuden.
TrackingReference Den unika referenssträngen som identifierar en begäran som hanteras av Azure Front Door. Det här värdet skickas till klienten i svarshuvudet X-Azure-Ref . Använd det här fältet när du söker efter en specifik begäran i loggen.

Följande exempelfråga visar de begäranden som Azure Front Door WAF blockerade:

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog" 
| where action_s == "Block" 
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"

Följande kodfragment visar en exempelloggpost, inklusive orsaken till att begäran blockerades:

{
  "time": "2020-06-09T22:32:17.8376810Z",
  "category": "FrontdoorWebApplicationFirewallLog",
  "operationName": "Microsoft.Cdn/Profiles/Write",
  "properties": {
    "clientIP": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "socketIP": "xxx.xxx.xxx.xxx",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "ruleName": "Microsoft_DefaultRuleSet-1.1-SQLI-942100",
    "policy": "WafDemoCustomPolicy",
    "action": "Block",
    "host": "wafdemofrontdoorwebapp.azurefd.net",
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "policyMode": "prevention",
    "details": {
      "matches": [
        {
          "matchVariableName": "QueryParamValue:q",
          "matchVariableValue": "' or 1=1"
        }
      ]
    }
  }
}
{
  "time": "2020-06-09T22:32:17.8376810Z",
  "category": "FrontdoorWebApplicationFirewallLog",
  "operationName": "Microsoft.Network/FrontDoorWebApplicationFirewallLog/Write",
  "properties": {
    "clientIP": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "socketIP": "xxx.xxx.xxx.xxx",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "ruleName": "Microsoft_DefaultRuleSet-1.1-SQLI-942100",
    "policy": "WafDemoCustomPolicy",
    "action": "Block",
    "host": "wafdemofrontdoorwebapp.azurefd.net",
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "policyMode": "prevention",
    "details": {
      "matches": [
        {
          "matchVariableName": "QueryParamValue:q",
          "matchVariableValue": "' or 1=1"
        }
      ]
    }
  }
}

Mer information om de andra Azure Front Door-loggarna finns i Övervaka mått och loggar i Azure Front Door.

Nästa steg

Läs mer om Azure Front Door.