Monitoraggio e registrazione di Web application firewall di Azure
Web application firewall di Azure in Frontdoor di Azure offre dati di telemetria e registrazione estesi per comprendere come viene eseguito il web application firewall (WAF) e le azioni eseguite.
Il log WAF di Frontdoor di Azure è integrato con Monitoraggio di Azure. Monitoraggio di Azure consente di tenere traccia delle informazioni di diagnostica, inclusi avvisi e log waf. È possibile configurare il monitoraggio waf all'interno della risorsa frontdoor di Azure nella portale di Azure nella scheda Diagnostica, tramite l'infrastruttura come approcci al codice o usando direttamente Monitoraggio di Azure.
Metrica
Frontdoor di Azure registra automaticamente le metriche per comprendere il comportamento del WAF.
Per accedere alle metriche di WAF:
- Accedere al portale di Azure e passare al profilo frontdoor di Azure.
- Nel riquadro all'estrema sinistra in Monitoraggio selezionare la scheda Metriche .
- Aggiungere la metrica Conteggio richieste web application firewall per tenere traccia del numero di richieste che corrispondono alle regole WAF.
È possibile creare filtri personalizzati in base ai tipi di azione e ai nomi delle regole. Le metriche includono le richieste con tutte le azioni tranne Log
.
Metriche della verifica JavaScript (anteprima)
Per accedere alle metriche WAF della sfida JavaScript:
- Aggiungere la metrica web application firewall
JS Challenge Request Count
per tenere traccia del numero di richieste che corrispondono alle regole WAF della verifica JavaScript.
I filtri seguenti vengono forniti come parte di questa metrica:
- PolicyName: nome del criterio WAF
- Regola: può essere qualsiasi regola personalizzata o regola bot
- Azione: sono disponibili quattro valori possibili per l'azione JS Challenge
- Rilasciato: JS Challenge viene richiamato la prima volta
- Superato: il calcolo della richiesta JS ha avuto esito positivo e è stata ricevuta una risposta
- Valido: cookie di validità della richiesta JS presente
- Bloccato: il calcolo della richiesta JS non è riuscito
Log e diagnostica
Frontdoor di Azure WAF fornisce report dettagliati su ogni richiesta e ogni minaccia rilevata. La registrazione è integrata con i log e gli avvisi di diagnostica di Azure usando i log di Monitoraggio di Azure.
I log non sono abilitati per impostazione predefinita. È necessario abilitare in modo esplicito i log. È possibile configurare i log nel portale di Azure usando la scheda Impostazioni di diagnostica.
Se la registrazione è abilitata e viene attivata una regola WAF, tutti i modelli di corrispondenza vengono registrati in testo normale per analizzare ed eseguire il debug del comportamento dei criteri WAF. È possibile usare le esclusioni per ottimizzare le regole ed escludere tutti i dati da escludere dai log. Per altre informazioni, vedere Elenchi di esclusione di Web application firewall in Frontdoor di Azure.
È possibile abilitare tre tipi di log di Frontdoor di Azure:
- Log WAF
- Accedere ai log
- Log del probe di integrità
I log attività sono abilitati per impostazione predefinita e offrono visibilità sulle operazioni eseguite sulle risorse di Azure, ad esempio le modifiche di configurazione al profilo frontdoor di Azure.
Log WAF
Il log FrontDoorWebApplicationFirewallLog
include le richieste che corrispondono a una regola WAF.
Il log FrontdoorWebApplicationFirewallLog
include qualsiasi richiesta corrispondente a una regola WAF.
Nella tabella seguente vengono illustrati i valori registrati per ogni richiesta.
Proprietà | Descrizione |
---|---|
Azione | Azione eseguita sulla richiesta. I log includono le richieste con tutte le azioni. Le azioni sono:
|
ClientIP | Indirizzo IP del client che ha eseguito la richiesta. Se nella richiesta è presente un'intestazione X-Forwarded-For , l'indirizzo IP del client viene invece ricavato da tale campo di intestazione. |
ClientPort | Porta IP del client che ha effettuato la richiesta. |
Dettagli | Altri dettagli sulla richiesta, incluse eventuali minacce rilevate. matchVariableName : nome del parametro HTTP della richiesta corrispondente, ad esempio nomi di intestazione (fino a un massimo di 100 caratteri).matchVariableValue : valori che hanno attivato la corrispondenza (fino a 100 caratteri massimo). |
Host | Intestazione Host della richiesta. |
Criteri | Nome del criterio WAF che ha elaborato la richiesta. |
PolicyMode | Modalità operativa dei criteri WAF. I valori possibili sono Prevention e Detection . |
RequestUri | URI completo della richiesta. |
RuleName | Nome della regola WAF corrispondente alla richiesta. |
SocketIP | Indirizzo IP di origine visualizzato da WAF. Questo indirizzo IP si basa sulla sessione TCP e non considera le intestazioni di richiesta. |
TrackingReference | Stringa di riferimento univoca che identifica una richiesta servita da Frontdoor di Azure. Questo valore viene inviato al client nell'intestazione della X-Azure-Ref risposta. Usare questo campo quando si cerca una richiesta specifica nel log. |
La query di esempio seguente mostra le richieste bloccate dal WAF di Frontdoor di Azure:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog"
| where action_s == "Block"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"
Il frammento di codice seguente mostra una voce di log di esempio, incluso il motivo per cui la richiesta è stata bloccata:
{
"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"
}
]
}
}
}
Per altre informazioni sugli altri log di Frontdoor di Azure, vedere Monitorare metriche e log in Frontdoor di Azure.
Passaggi successivi
Altre informazioni su Frontdoor di Azure.