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.

Snímek obrazovky znázorňující metriky pro WAF služby Azure Front Door

Metriky výzvy JavaScriptu (Preview)

Přístup k metrikám WAF výzvy JavaScriptu:

  • Přidejte metriku firewallu JS Challenge Request Count webových aplikací pro sledování počtu požadavků, které odpovídají pravidlům WAF výzvy JavaScriptu.

V rámci této metriky jsou k dispozici následující filtry:

  • PolicyName: Toto je název zásady WAF.
  • Pravidlo: Toto může být jakékoli vlastní pravidlo nebo pravidlo robota.
  • Akce: Pro akci JS Challenge existují čtyři možné hodnoty.
    • Vydáno: Úloha JS se vyvolá při prvním spuštění
    • Úspěšné: Výpočet výzvy JS byl úspěšný a odpověď byla přijata.
    • Platné: Soubor cookie platnosti výzvy JS byl k dispozici.
    • Blokováno: Výpočet výzvy JS selhal.

Snímek obrazovky znázorňující metriky výzvy JavaScriptu

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.

Snímek obrazovky, který ukazuje, jak povolit protokoly WAF

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.

Můžete povolit tři typy protokolů služby Azure Front Door:

  • Protokoly WAF
  • Protokoly přístupu
  • Protokoly sondy stavu

Protokoly aktivit jsou ve výchozím nastavení povolené a poskytují přehled o operacích prováděných s vašimi prostředky Azure, jako jsou změny konfigurace vašeho profilu služby Azure Front Door.

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.
  • JS Challenge a JSChallengeIssued: Vydáno z důvodu chybějící nebo neplatné clearance výzvy, chybí odpověď.

    Protokol se vytvoří, když klient požádá o přístup k webové aplikaci poprvé a nebyl dříve vyzván. Tento klient obdrží stránku výzvy JS a pokračuje k výpočtu úlohy JS. Po úspěšném výpočtu se klientovi udělí soubor cookie platnosti.
  • JS Challenge a JSChallengePass: Předáno z důvodu platné odpovědi na výzvu.

    Tento protokol se vytvoří, když klient vyřeší výzvu JS a znovu odešle požadavek se správnou odpovědí. V tomto případě Azure WAF ověří soubor cookie a pokračuje ve zpracování zbývajících pravidel, aniž by se vygenerovaly další výzvy JS.
  • JS Challenge a JSChallengeValid: Zaprotokolováno/předávané z důvodu platné výzvy.

    Tento protokol se vytvoří, když klient dříve vyřešil výzvu. V tomto případě Azure WAF protokoluje požadavek a pokračuje ve zpracování zbývajících pravidel.
  • JS Challenge a JSChallengeBlock: Blokováno

    Tento protokol se vytvoří, když selže výpočet úlohy JS.
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.
Identifikátor 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ší informace o dalších protokolech služby Azure Front Door najdete v tématu Monitorování metrik a protokolů ve službě Azure Front Door.

Další kroky

Přečtěte si další informace o službě Azure Front Door.