Überwachung und Protokollierung von Azure Web Application Firewall
Azure Web Application Firewall in Azure Front Door bietet umfangreiche Protokollierungs- und Telemetriefunktionen, die Ihnen helfen, die Leistung Ihrer Web Application Firewall (WAF) und die von ihr durchgeführten Aktionen nachzuvollziehen.
Das WAF-Protokoll von Azure Front Door ist in Azure Monitor integriert. Mit Azure Monitor können Sie Diagnoseinformationen wie WAF-Warnungen und -Protokolle nachverfolgen. Sie können die WAF-Protokollierung in der Azure Front Door-Ressource im Azure-Portal auf der Registerkarte Diagnose, mit einem Infrastructure-as-Code-Ansatz oder durch direkte Verwendung von Azure Monitor konfigurieren.
Metriken
Azure Front Door zeichnet automatisch Metriken auf, damit Sie das Verhalten Ihrer WAF besser verstehen können.
So greifen Sie auf die Metriken Ihrer WAF zu
- Melden Sie sich beim Azure-Portal an, und navigieren Sie zu Ihrem Azure Front Door-Profil.
- Wählen Sie im linken Bereich unter Überwachung die Registerkarte Metriken aus.
- Fügen Sie die Metrik Web Application Firewall-Anforderungsanzahl hinzu, um die Anzahl der Anforderungen nachzuverfolgen, die mit WAF-Regeln übereinstimmen.
Sie können benutzerdefinierte Filter basierend auf Aktionstypen und Regelnamen erstellen. Metriken enthalten Anforderungen mit allen Aktionen außer Log
.
Metriken der JavaScript-Überprüfung (Vorschau)
So greifen Sie auf die WAF-Metriken der JavaScript-Überprüfung zu
- Fügen Sie die Metrik
JS Challenge Request Count
von Web Application Firewall hinzu, um die Anzahl der Anforderungen nachzuverfolgen, die mit den WAF-Regeln der JavaScript-Überprüfung übereinstimmen.
Im Rahmen dieser Metrik werden die folgenden Filter bereitgestellt:
- PolicyName: Dies ist der Name der WAF-Richtlinie.
- Regel: Dies kann eine beliebige benutzerdefinierte Regel oder eine Botregel sein.
- Aktion: Es gibt vier mögliche Werte für die Aktion für die JS-Überprüfung.
- Ausgestellt: Die JS-Überprüfung wird zum ersten Mal aufgerufen.
- Bestanden: Die Berechnung der JS-Überprüfung war erfolgreich, und es wurde eine Antwort empfangen.
- Gültig: Ein Gültigkeitscookie für die JS-Überprüfung war vorhanden.
- Blockiert: Bei der Berechnung der JS-Überprüfung ist ein Fehler aufgetreten.
Protokolle und Diagnose
Die WAF-Instanz in Azure Front Door bietet detaillierte Berichterstellung für jede Anforderung und jede ermittelte Bedrohung. Die Protokollierung ist dank der Azure Monitor-Protokolle in die Diagnoseprotokolle und Warnungen von Azure integriert.
Protokolle sind standardmäßig nicht aktiviert. Sie müssen Protokolle explizit aktivieren. Sie können Protokolle im Azure-Portal über die Registerkarte Diagnoseeinstellungen konfigurieren.
Wenn die Protokollierung aktiviert ist und eine WAF-Regel ausgelöst wird, werden alle übereinstimmenden Muster im Klartext protokolliert, damit Sie das Verhalten der WAF-Richtlinie analysieren und debuggen können. Mithilfe von Ausschlüssen können Sie Regeln optimieren, indem Sie alle Daten ausschließen, die nicht in die Protokolle einfließen sollen. Weitere Informationen finden Sie unter Web Application Firewall (WAF) mit Ausschlusslisten in Azure Front Door.
Sie können drei verschiedene Azure Front Door-Protokolle aktivieren:
- WAF-Protokolle
- Zugriffsprotokolle
- Integritätstestprotokolle
Aktivitätsprotokolle sind standardmäßig aktiviert und bieten Einblick in die Vorgänge, die für Ihre Azure-Ressourcen ausgeführt werden, etwa Konfigurationsänderungen an Ihrem Azure Front Door-Profil.
WAF-Protokolle
Das Protokoll FrontDoorWebApplicationFirewallLog
enthält Anforderungen, die einer WAF-Regel entsprechen.
Das Protokoll FrontdoorWebApplicationFirewallLog
enthält alle Anforderungen, die einer WAF-Regel entsprechen.
Die folgende Tabelle zeigt die für die einzelnen Anforderungen protokollierten Werte.
Eigenschaft | BESCHREIBUNG |
---|---|
Aktion | Aktion, die für die Anforderung durchgeführt wird. Protokolle enthalten Anforderungen mit allen Aktionen. Aktionen sind:
|
ClientIP | Die IP-Adresse des Clients, der die Anforderung gestellt hat. Wenn die Anforderung einen X-Forwarded-For -Header enthielt, wird die Client-IP-Adresse stattdessen aus diesem Headerfeld übernommen. |
ClientPort | Der IP-Port des Clients, der die Anforderung gestellt hat. |
Details | Weitere Details zur Anforderung, einschließlich aller erkannten Bedrohungen. matchVariableName : HTTP-Parametername der übereinstimmenden Anforderung, z. B. Headernamen (maximal 100 Zeichen).matchVariableValue : Werte, die die Übereinstimmung ausgelöst haben (maximal 100 Zeichen). |
Host | Der Host -Header der Anforderung. |
Richtlinie | Der Name der WAF-Richtlinie, die diese Anforderung verarbeitet hat. |
PolicyMode | Der Betriebsmodus der WAF-Richtlinie. Mögliche Werte sind Prevention und Detection . |
RequestUri | Der vollständige URI der Anforderung. |
RuleName | Der Name der WAF-Regel, mit der die Anforderung übereinstimmt |
SocketIP | Die für WAF angegebene IP-Quelladresse. Diese IP-Adresse basiert auf der TCP-Sitzung und ignoriert Anforderungsheader. |
TrackingReference | Die eindeutige Verweiszeichenfolge, die eine von Azure Front Door verarbeitete Anforderung identifiziert. Dieser Wert wird im X-Azure-Ref -Antwortheader an den Client gesendet. Verwenden Sie dieses Feld, wenn Sie im Protokoll nach einer bestimmten Anforderung suchen. |
Die folgende Beispielabfrage zeigt die Anforderungen, die von der WAF-Instanz in Azure Front Door blockiert wurden:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog"
| where action_s == "Block"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"
Der folgende Codeschnipsel zeigt einen Protokolleintrag sowie den Grund, aus dem die Anforderung blockiert wurde:
{
"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"
}
]
}
}
}
Weitere Informationen zu den anderen Azure Front Door-Protokollen finden Sie unter Überwachen von Metriken und Protokollen in Azure Front Door.
Nächste Schritte
Erfahren Sie mehr zu Azure Front Door.