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:

  1. Přihlaste se k webu Azure Portal a přejděte do profilu služby Azure Front Door.
  2. V levém podokně v části Monitorování vyberte kartu Metriky .
  3. 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.

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

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.

Screenshot that shows how to enable the WAF logs.

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:
  • Allow a allow: Žádost byla oprávněna pokračovat ve zpracování.
  • Block and block: Požadavek odpovídal pravidlu WAF nakonfigurovaného tak, aby žádost zablokovala. Případně byla dosažena prahová hodnota bodování anomálií a požadavek byl zablokovaný.
  • Log and log: Požadavek odpovídal pravidlu WAF nakonfigurovaného pro použití Log akce.
  • AnomalyScoring and logandscore: Požadavek odpovídal pravidlu WAF. Pravidlo přispívá k skóre anomálií. Požadavek může nebo nemusí být blokovaný v závislosti na jiných pravidlech, která běží na stejném požadavku.
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.