Monitorování a protokolování služby Azure Web Application Firewall
Azure Web Application Firewall ve službě Azure Front Door poskytuje rozsáhlé protokolování a telemetrii, které vám pomůžou pochopit, jak firewall webových aplikací (WAF) funguje a jaké akce podniká.
Protokol WAF služby Azure Front Door je integrovaný se službou Azure Monitor. Azure Monitor umožňuje sledovat diagnostické informace, včetně upozornění a protokolů WAF. Monitorování WAF v rámci prostředku Služby Azure Front Door můžete nakonfigurovat na webu Azure Portal na kartě Diagnostika , prostřednictvím infrastruktury jako přístupů ke kódu nebo přímo pomocí služby Azure Monitor.
Metriky
Azure Front Door automaticky zaznamenává metriky, které vám pomůžou porozumět chování waf.
Přístup k metrikám WAF:
- Přihlaste se k webu Azure Portal a přejděte do profilu služby Azure Front Door.
- V levém podokně v části Monitorování vyberte kartu Metriky .
- Přidejte metriku počtu požadavků firewallu webových aplikací pro sledování počtu požadavků, které odpovídají pravidlům WAF.
Můžete vytvořit vlastní filtry založené na typech akcí a názvech pravidel. Metriky zahrnují požadavky se všemi akcemi kromě Log
.
Protokoly a diagnostika
WaF služby Azure Front Door poskytuje podrobné hlášení o jednotlivých žádostech a každé hrozbě, kterou detekuje. Protokolování je integrované s diagnostickými protokoly a upozorněními Azure pomocí protokolů služby Azure Monitor.
Protokoly nejsou ve výchozím nastavení povolené. Musíte explicitně povolit protokoly. Protokoly můžete nakonfigurovat na webu Azure Portal pomocí karty Nastavení diagnostiky.
Pokud je protokolování povolené a aktivuje se pravidlo WAF, zaprotokolují se všechny odpovídající vzory ve formátu prostého textu, které vám pomůžou analyzovat a ladit chování zásad WAF. Vyloučení můžete použít k vyladění pravidel a vyloučení všech dat, která chcete z protokolů vyloučit. Další informace najdete v tématu Seznamy vyloučení firewallu webových aplikací ve službě Azure Front Door.
Azure Front Door poskytuje dva typy protokolů: přístupové protokoly a protokoly WAF.
Protokoly přístupu
Protokol FrontDoorAccessLog
obsahuje všechny požadavky, které procházejí službou Azure Front Door. Další informace o protokolu přístupu ke službě Azure Front Door, včetně schématu protokolu, najdete v tématu Monitorování metrik a protokolů ve službě Azure Front Door.
Protokol FrontdoorAccessLog
obsahuje všechny požadavky, které procházejí službou Azure Front Door. Další informace o protokolu přístupu ke službě Azure Front Door, včetně schématu protokolu, najdete v tématu Monitorování metrik a protokolů ve službě Azure Front Door (Classic).
Následující příklad dotazu vrátí položky protokolu přístupu:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorAccessLog"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorAccessLog"
Následující fragment kódu ukazuje příklad položky protokolu:
{
"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"
}
}
Protokoly WAF
Protokol FrontDoorWebApplicationFirewallLog
obsahuje požadavky, které odpovídají pravidlu WAF.
FrontdoorWebApplicationFirewallLog
Protokol obsahuje všechny požadavky, které odpovídají pravidlu WAF.
Následující tabulka uvádí hodnoty zaprotokolované pro každý požadavek.
Vlastnost | Popis |
---|---|
Akce | Akce přijatá na žádost Protokoly zahrnují požadavky se všemi akcemi. Akce:
|
ClientIP | IP adresa klienta, který požadavek provedl. Pokud v požadavku byla X-Forwarded-For hlavička, ip adresa klienta se místo toho převezme z daného pole hlavičky. |
ClientPort | Port IP klienta, který požadavek provedl. |
Detaily | Další podrobnosti o požadavku, včetně případných zjištěných hrozeb. matchVariableName : Název parametru HTTP požadavku, který odpovídá, například názvy hlaviček (maximálně 100 znaků).matchVariableValue : Hodnoty, které aktivovaly shodu (maximálně 100 znaků). |
Hostitelský počítač | Hlavička Host požadavku. |
Zásady | Název zásady WAF, která žádost zpracovala. |
PolicyMode | Provozní režim zásad WAF. Možné hodnoty jsou Prevention a Detection . |
Requesturi | Úplný identifikátor URI požadavku |
RuleName | Název pravidla WAF, které žádost odpovídala. |
SocketIP | Zdrojová IP adresa, kterou vidí WAF. Tato IP adresa je založená na relaci TCP a nebere v úvahu žádné hlavičky požadavků. |
TrackingReference | Jedinečný referenční řetězec, který identifikuje požadavek obsluhované službou Azure Front Door. Tato hodnota se odešle klientovi v X-Azure-Ref hlavičce odpovědi. Toto pole použijte při hledání konkrétního požadavku v protokolu. |
Následující příklad dotazu ukazuje požadavky, které služba Azure Front Door WAF zablokovala:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog"
| where action_s == "Block"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"
Následující fragment kódu ukazuje příklad položky protokolu, včetně důvodu zablokování požadavku:
{
"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"
}
]
}
}
}
Další kroky
Přečtěte si další informace o službě Azure Front Door.