Monitoraggio e registrazione di Web application firewall di Azure
Web application firewall di Azure in Frontdoor di Azure offre dati di telemetria e registrazione dettagliati per comprendere come viene eseguito il web application firewall (WAF) e come si svolgono le azioni.
Il log WAF di Frontdoor di Azure è integrato con Monitoraggio di Azure. Monitoraggio di Azure consente di tenere traccia delle informazioni diagnostiche, inclusi i log e gli avvisi di WAF. È possibile configurare il monitoraggio WAF all'interno della risorsa Frontdoor di Azure nel 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 tutto a sinistra, sotto 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 verifica JavaScript:
- Aggiungere la metrica
JS Challenge Request Count
web application firewall 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 Test JS
- Rilasciato: Test JS viene richiamato la prima volta
- Superato: il calcolo del Test JS ha avuto esito positivo ed è stata ricevuta una risposta
- Valido: cookie di validità del Test JS presente
- Bloccato: il calcolo del Test JS non è riuscito
Log e diagnostica
WAF Frontdoor di Azure 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.
Questi 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 che si desidera escludere dai log. Per maggiori informazioni, vedere Elenchi di esclusione di Web application firewall in Frontdoor di Azure.
Si possono 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, come 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 | La porta IP del client che ha eseguito 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 un massimo di 100 caratteri). |
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 | Si tratta di una stringa di riferimento univoca che identifica una richiesta servita da Frontdoor di Azure. Questo valore viene inviato al client nell'intestazione della rispostaX-Azure-Ref . 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 maggiori 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.