Az Azure Web Application Firewall monitorozása és naplózása
Az Azure Web Application Firewall az Azure Front Doorban széles körű naplózást és telemetriát biztosít, amely segít megérteni a webalkalmazási tűzfal (WAF) működését és a szükséges műveleteket.
Az Azure Front Door WAF-naplója integrálva van az Azure Monitorral. Az Azure Monitor lehetővé teszi a diagnosztikai adatok nyomon követését, beleértve a WAF-riasztásokat és a naplókat. A WAF-monitorozást az Azure Portal Azure Front Door-erőforrásában, a Diagnosztika lapon, az infrastruktúrán keresztül, kód megközelítéseként vagy közvetlenül az Azure Monitor használatával konfigurálhatja.
Metrics
Az Azure Front Door automatikusan rögzíti a metrikákat, hogy segítsen megérteni a WAF viselkedését.
A WAF metrikáinak elérése:
- Jelentkezzen be az Azure Portalra , és nyissa meg az Azure Front Door-profilját.
- A Figyelés alatti bal szélső panelen válassza a Metrikák lapot.
- Adja hozzá a webalkalmazási tűzfal kéréseinek száma metrikát a WAF-szabályoknak megfelelő kérések számának nyomon követéséhez.
Egyéni szűrőket művelettípusok és szabálynevek alapján hozhat létre. A metrikák a kéréseket tartalmazzák, kivéve Log
az összes műveletet.
Naplók és diagnosztikák
Az Azure Front Door WAF részletes jelentést nyújt az egyes kérésekről és az általa észlelt fenyegetésekről. A naplózás integrálva van az Azure diagnosztikai naplóival és riasztásaival az Azure Monitor-naplók használatával.
A naplók alapértelmezés szerint nincsenek engedélyezve. Explicit módon engedélyeznie kell a naplókat. A naplókat a Diagnosztikai beállítások lapon konfigurálhatja az Azure Portalon.
Ha a naplózás engedélyezve van, és egy WAF-szabály aktiválódik, a rendszer egyszerű szövegben naplózza az egyező mintákat a WAF-házirend viselkedésének elemzéséhez és hibakereséséhez. A kizárásokkal finomhangolhatja a szabályokat, és kizárhat minden olyan adatot, amelyet ki szeretne zárni a naplókból. További információ: Webalkalmazási tűzfalkizárási listák az Azure Front Doorban.
Az Azure Front Door kétféle naplót biztosít: hozzáférési naplókat és WAF-naplókat.
Hozzáférési naplók
A napló FrontDoorAccessLog
tartalmazza az Azure Front Dooron áthaladó összes kérést. További információ az Azure Front Door hozzáférési naplóról, beleértve a naplós sémát is, lásd : Metrikák és naplók monitorozása az Azure Front Doorban.
A napló FrontdoorAccessLog
tartalmazza az Azure Front Dooron áthaladó összes kérést. További információ az Azure Front Door hozzáférési naplóról, beleértve a naplós sémát is, lásd a metrikák és naplók monitorozása az Azure Front Doorban (klasszikus) című témakört.
Az alábbi példa lekérdezés a hozzáférési napló bejegyzéseit adja vissza:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorAccessLog"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorAccessLog"
Az alábbi kódrészlet egy példanapló-bejegyzést mutat be:
{
"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-naplók
A napló FrontDoorWebApplicationFirewallLog
waf-szabálynak megfelelő kéréseket tartalmaz.
A napló FrontdoorWebApplicationFirewallLog
tartalmazza a WAF-szabálynak megfelelő kéréseket.
Az alábbi táblázat az egyes kérésekhez naplózott értékeket mutatja.
Property | Leírás |
---|---|
Művelet | A kérésen végrehajtott művelet. A naplók az összes művelettel rendelkező kéréseket tartalmazzák. A műveletek a következők:
|
ClientIP | A kérést küldő ügyfél IP-címe. Ha a kérelemben volt egy X-Forwarded-For fejléc, az ügyfél IP-címét a rendszer az adott fejlécmezőből veszi át. |
ClientPort | A kérést küldő ügyfél IP-portja. |
Részletek | További részletek a kérésről, beleértve az észlelt fenyegetéseket is. matchVariableName : A kérelem HTTP-paraméterneve megfelelt, például fejlécnevek (legfeljebb 100 karakterig).matchVariableValue : Az egyezést aktiváló értékek (legfeljebb 100 karakterig). |
Gazdagép | A Host kérés fejléce. |
Policy | A kérést feldolgozó WAF-szabályzat neve. |
PolicyMode | A WAF-szabályzat műveleti módja. A lehetséges értékek a következők: Prevention és Detection . |
RequestUri | A kérelem teljes URI-ja. |
RuleName | Annak a WAF-szabálynak a neve, amelyet a kérés megfelelt. |
SocketIP | A WAF által látott forrás IP-cím. Ez az IP-cím a TCP-munkameneten alapul, és nem veszi figyelembe a kérésfejléceket. |
TrackingReference | Az Azure Front Door által kiszolgált kérést azonosító egyedi referenciasztring. Ezt az értéket a rendszer elküldi az ügyfélnek a X-Azure-Ref válaszfejlécen. Ezt a mezőt akkor használja, ha egy adott kérést keres a naplóban. |
Az alábbi példa lekérdezés azOkat a kéréseket mutatja be, amelyeket az Azure Front Door WAF blokkolt:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog"
| where action_s == "Block"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"
Az alábbi kódrészlet egy példanapló-bejegyzést mutat be, beleértve a kérés letiltésének okát is:
{
"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"
}
]
}
}
}