Bewaking en logboekregistratie van Azure Web Application Firewall

Bewaking en logboekregistratie van Azure Web Application Firewall (WAF) worden geleverd via logboekregistratie en integratie met Azure Monitor- en Azure Monitor-logboeken.

Azure Monitor

Het WAF-logboek van Front Door 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 Front Door-resource in de portal op het tabblad Diagnostische gegevens, via infrastructuur als codebenaderingen of door de Azure Monitor-service rechtstreeks te gebruiken.

Ga vanuit Azure Portal naar het resourcetype Front Door. Vanaf het tabblad Metrische/bewaking aan de linkerkant kunt u WebApplicationFirewallRequestCount toevoegen om het aantal aanvragen bij te houden dat overeenkomt met WAF-regels. Aangepaste filters kunnen worden gemaakt op basis van actietypen en regelnamen.

WAFMetrics

Logboeken en diagnostische gegevens

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

WAFDiag

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.

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

Toegangslogboeken

FrontDoorAccessLog bevat alle aanvragen die via Front Door gaan. Zie Azure Front Door-logboeken voor meer informatie over het toegangslogboek van Front Door, inclusief het logboekschema.

FrontdoorAccessLog bevat alle aanvragen die via Front Door gaan. Zie Metrische gegevens en logboeken bewaken in Azure Front Door (klassiek) voor meer informatie over het 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"

Hieronder 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

FrontDoorWebApplicationFirewallLog bevat aanvragen die overeenkomen met een WAF-regel.

FrontdoorWebApplicationFirewallLog bevat elke aanvraag die overeenkomt met een WAF-regel.

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

Eigenschap Beschrijving
Actie Actie uitgevoerd op het verzoek. Logboeken bevatten aanvragen met alle acties. Metrische gegevens omvatten aanvragen met alle acties, behalve logboek.
ClientIP Het IP-adres van de client die de aanvraag heeft ingediend. Als er een X-Forwarded-For header in de aanvraag is opgetreden, wordt het IP-adres van de client uit dat headerveld gehaald.
ClientPort De IP-poort van de client die de aanvraag heeft ingediend.
Details Aanvullende informatie over de aanvraag, inclusief eventuele bedreigingen die zijn gedetecteerd.
matchVariableName: HTTP-parameternaam van de aanvraag die overeenkomt, bijvoorbeeld headernamen (maximaal 100 tekens maximum).
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 wordt gezien door WAF. Dit IP-adres is gebaseerd op de TCP-sessie en overweegt geen aanvraagheaders.
TrackingReference De unieke referentietekenreeks die een aanvraag identificeert die wordt geleverd door Front Door. Deze waarde wordt verzonden naar de client in de X-Azure-Ref antwoordheader. Gebruik dit veld bij het zoeken naar een specifieke aanvraag in het logboek.

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

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

Hieronder 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