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:

  1. Jelentkezzen be az Azure Portalra , és nyissa meg az Azure Front Door-profilját.
  2. A Figyelés alatti bal szélső panelen válassza a Metrikák lapot.
  3. 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 Logaz összes műveletet.

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

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.

Screenshot that shows how to enable the WAF logs.

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:
  • Allow és allow: A kérés tovább folytathatta a feldolgozást.
  • Block és block: A kérés megfelelt a kérés letiltására konfigurált WAF-szabálynak. Azt is megteheti, hogy elérte az anomáliadetektáció küszöbértékét , és a kérés le lett tiltva.
  • Log és log: A kérés megfelelt a művelet használatára Log konfigurált WAF-szabálynak.
  • AnomalyScoring és logandscore: A kérelem megfelelt egy WAF-szabálynak. A szabály hozzájárul az anomáliák pontszámához. Előfordulhat, hogy a kérés le van tiltva, vagy nem, attól függően, hogy más szabályok futnak-e ugyanazon a kérésen.
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"
        }
      ]
    }
  }
}

Következő lépések

További információ az Azure Front Doorról.