Bewaking en logboekregistratie van Azure Web Application Firewall

Azure Web Application Firewall in Azure Front Door biedt uitgebreide logboekregistratie en telemetrie om u te helpen begrijpen hoe uw Web Application Firewall (WAF) presteert en welke acties er worden uitgevoerd.

Het Azure Front Door WAF-logboek is geïntegreerd met Azure Monitor. Met Azure Monitor kunt u diagnostische gegevens bijhouden, waaronder WAF-waarschuwingen en logboeken. U kunt WAF-bewaking configureren in de Azure Front Door-resource in Azure Portal op het tabblad Diagnostische gegevens, via infrastructuur als codebenaderingen of door Azure Monitor rechtstreeks te gebruiken.

Metrische gegevens

Azure Front Door registreert automatisch metrische gegevens om inzicht te verkrijgen in het gedrag van uw WAF.

Ga als volgt te werk om toegang te krijgen tot de metrische gegevens van uw WAF:

  1. Meld u aan bij Azure Portal en ga naar uw Azure Front Door-profiel.
  2. Selecteer in het meest linkse deelvenster onder Bewaking het tabblad Metrische gegevens .
  3. Voeg de meetwaarde Web Application Firewall-aanvraagaantal toe om het aantal aanvragen bij te houden dat overeenkomt met WAF-regels.

U kunt aangepaste filters maken op basis van actietypen en regelnamen. Metrische gegevens omvatten aanvragen met alle acties, behalve Log.

Screenshot that shows the metrics for an Azure Front Door WAF.

Logboeken en diagnostische gegevens

De Azure Front Door WAF biedt gedetailleerde rapportage over elke aanvraag en elke bedreiging die wordt gedetecteerd. Logboekregistratie is geïntegreerd met diagnostische logboeken en waarschuwingen van Azure met behulp van Azure Monitor-logboeken.

Logboeken zijn niet standaard ingeschakeld. U moet logboeken expliciet inschakelen. U kunt logboeken configureren in Azure Portal met behulp van het tabblad Diagnostische instellingen .

Screenshot that shows how to enable the WAF logs.

Als logboekregistratie is ingeschakeld en er een WAF-regel wordt geactiveerd, worden overeenkomende patronen vastgelegd in tekst zonder opmaak om u te helpen bij het analyseren en opsporen van fouten in het WAF-beleid. U kunt uitsluitingen gebruiken om regels af te stemmen en gegevens uit te sluiten die u wilt uitsluiten van de logboeken. Zie uitsluitingslijsten van Web Application Firewall in Azure Front Door voor meer informatie.

Azure Front Door biedt twee soorten logboeken: toegang tot logboeken en WAF-logboeken.

Toegangslogboeken

Het logboek FrontDoorAccessLog bevat alle aanvragen die via Azure Front Door worden verzonden. Zie Metrische gegevens en logboeken bewaken in Azure Front Door voor meer informatie over het Toegangslogboek van Azure Front Door, inclusief het logboekschema.

Het logboek FrontdoorAccessLog bevat alle aanvragen die via Azure Front Door worden verzonden. Zie Metrische gegevens en logboeken bewaken in Azure Front Door (klassiek) voor meer informatie over het Azure Front Door-toegangslogboek, inclusief het logboekschema.

De volgende voorbeeldquery retourneert de vermeldingen in het toegangslogboek:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorAccessLog"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorAccessLog"

In het volgende fragment ziet u een voorbeeld van een logboekvermelding:

{
  "time": "2020-06-09T22:32:17.8383427Z",
  "category": "FrontDoorAccessLog",
  "operationName": "Microsoft.Cdn/Profiles/AccessLog/Write",
  "properties": {
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "httpMethod": "GET",
    "httpVersion": "2.0",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "requestBytes": "715",
    "responseBytes": "380",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4157.0 Safari/537.36 Edg/85.0.531.1",
    "clientIp": "xxx.xxx.xxx.xxx",
    "socketIp": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "timeTaken": "0.003",
    "securityProtocol": "TLS 1.2",
    "routingRuleName": "WAFdemoWebAppRouting",
    "rulesEngineMatchNames": [],
    "backendHostname": "wafdemowebappuscentral.azurewebsites.net:443",
    "sentToOriginShield": false,
    "httpStatusCode": "403",
    "httpStatusDetails": "403",
    "pop": "SJC",
    "cacheStatus": "CONFIG_NOCACHE"
  }
}
{
  "time": "2020-06-09T22:32:17.8383427Z",
  "category": "FrontdoorAccessLog",
  "operationName": "Microsoft.Network/FrontDoor/AccessLog/Write",
  "properties": {
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "httpMethod": "GET",
    "httpVersion": "2.0",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "requestBytes": "715",
    "responseBytes": "380",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4157.0 Safari/537.36 Edg/85.0.531.1",
    "clientIp": "xxx.xxx.xxx.xxx",
    "socketIp": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "timeTaken": "0.003",
    "securityProtocol": "TLS 1.2",
    "routingRuleName": "WAFdemoWebAppRouting",
    "rulesEngineMatchNames": [],
    "backendHostname": "wafdemowebappuscentral.azurewebsites.net:443",
    "sentToOriginShield": false,
    "httpStatusCode": "403",
    "httpStatusDetails": "403",
    "pop": "SJC",
    "cacheStatus": "CONFIG_NOCACHE"
  }
}

WAF-logboeken

Het logboek FrontDoorWebApplicationFirewallLog bevat aanvragen die overeenkomen met een WAF-regel.

Het logboek FrontdoorWebApplicationFirewallLog bevat een aanvraag die overeenkomt met een WAF-regel.

In de volgende tabel ziet u de waarden die voor elke aanvraag zijn geregistreerd.

Eigenschappen Beschrijving
Actie Actie ondernomen op het verzoek. Logboeken bevatten aanvragen met alle acties. Acties zijn:
  • Allow en allow: De aanvraag is toegestaan om de verwerking voort te zetten.
  • Block en block: de aanvraag heeft een WAF-regel gevonden die is geconfigureerd om de aanvraag te blokkeren. U kunt ook de drempelwaarde voor anomaliescores bereiken en de aanvraag is geblokkeerd.
  • Log en log: de aanvraag heeft een WAF-regel gevonden die is geconfigureerd voor het gebruik van de Log actie.
  • AnomalyScoring en logandscore: de aanvraag heeft een WAF-regel gevonden. De regel draagt bij aan de anomaliescore. De aanvraag kan al dan niet worden geblokkeerd, afhankelijk van andere regels die op dezelfde aanvraag worden uitgevoerd.
ClientIP Het IP-adres van de client die de aanvraag heeft ingediend. Als de aanvraag een X-Forwarded-For header bevat, wordt het IP-adres van de client uit dat headerveld gehaald.
ClientPort De IP-poort van de client die de aanvraag heeft ingediend.
Details Meer informatie over de aanvraag, inclusief eventuele bedreigingen die zijn gedetecteerd.
matchVariableName: HTTP-parameternaam van de aanvraag die overeenkomt, bijvoorbeeld headernamen (maximaal 100 tekens).
matchVariableValue: Waarden die de overeenkomst hebben geactiveerd (maximaal 100 tekens).
Host De Host header van de aanvraag.
Beleid De naam van het WAF-beleid dat de aanvraag heeft verwerkt.
PolicyMode Bewerkingsmodus van het WAF-beleid. Mogelijke waarden zijn Prevention en Detection.
RequestUri Volledige URI van de aanvraag.
RuleName De naam van de WAF-regel die overeenkomt met de aanvraag.
SocketIP Het bron-IP-adres dat door WAF wordt gezien. Dit IP-adres is gebaseerd op de TCP-sessie en beschouwt geen aanvraagheaders.
TrackingReference De unieke referentietekenreeks die een aanvraag identificeert die wordt geleverd door Azure Front Door. Deze waarde wordt verzonden naar de client in de X-Azure-Ref antwoordheader. Gebruik dit veld wanneer u zoekt naar een specifieke aanvraag in het logboek.

In de volgende voorbeeldquery ziet u de aanvragen die door azure Front Door WAF zijn geblokkeerd:

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

In het volgende fragment ziet u een voorbeeld van een logboekvermelding, met inbegrip van de reden dat de aanvraag is geblokkeerd:

{
  "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"
        }
      ]
    }
  }
}

Volgende stappen

Meer informatie over Azure Front Door.