Monitoramento e registro em log do Firewall de Aplicativo Web do Azure
O Firewall de Aplicativo Web do Azure na Porta da Frente do Azure fornece registro em log e telemetria abrangentes para ajudá-lo a entender como o firewall de aplicativo Web (WAF) está sendo executado e as ações que ele toma.
O log WAF do Azure Front Door é integrado ao Azure Monitor. O Azure Monitor permite rastrear informações de diagnóstico, incluindo alertas e logs do WAF. Você pode configurar o monitoramento WAF dentro do recurso Azure Front Door no portal do Azure na guia Diagnóstico, por meio da infraestrutura como abordagens de código ou usando o Azure Monitor diretamente.
Métricas
O Azure Front Door registra automaticamente métricas para ajudá-lo a entender o comportamento do seu WAF.
Para acessar as métricas do seu WAF:
- Entre no portal do Azure e vá para seu perfil do Azure Front Door.
- No painel mais à esquerda, em Monitoramento, selecione a guia Métricas .
- Adicione a métrica Contagem de Solicitações do Web Application Firewall para controlar o número de solicitações que correspondem às regras do WAF.
Você pode criar filtros personalizados com base em tipos de ação e nomes de regras. As métricas incluem solicitações com todas as ações, exceto Log
.
Métricas de desafio JavaScript (visualização)
Para acessar suas métricas WAF de desafio JavaScript:
- Adicione a métrica Web Application Firewall
JS Challenge Request Count
para controlar o número de solicitações que correspondem às regras WAF de desafio JavaScript.
Os seguintes filtros são fornecidos como parte dessa métrica:
- PolicyName: Este é o nome da política WAF
- Regra: pode ser qualquer regra personalizada ou regra de bot
- Ação: Há quatro valores possíveis para a ação JS Challenge
- Emitido: JS Challenge é invocado pela primeira vez
- Aprovado: A computação do JS Challenge foi bem-sucedida e uma resposta foi recebida
- Validade: O cookie de validade JS Challenge esteve presente
- Bloqueado: Falha na computação do JS Challenge
Logs e diagnósticos
O WAF da Porta da Frente do Azure fornece relatórios detalhados sobre cada solicitação e cada ameaça que deteta. O registro em log é integrado aos logs e alertas de diagnóstico do Azure usando os logs do Azure Monitor.
Os logs não são habilitados por padrão. Você deve habilitar explicitamente os logs. Você pode configurar logs no portal do Azure usando a guia Configurações de diagnóstico .
Se o registro em log estiver habilitado e uma regra WAF for acionada, todos os padrões correspondentes serão registrados em texto sem formatação para ajudá-lo a analisar e depurar o comportamento da política WAF. Você pode usar exclusões para ajustar regras e excluir quaisquer dados que você deseja excluir dos logs. Para obter mais informações, consulte Listas de exclusão de firewall de aplicativo Web no Azure Front Door.
Você pode habilitar três tipos de logs do Azure Front Door:
- Logs WAF
- Registos de acesso
- Logs da sonda de integridade
Os logs de atividade são habilitados por padrão e fornecem visibilidade sobre as operações executadas em seus recursos do Azure, como alterações de configuração no seu perfil do Azure Front Door.
Logs WAF
O log FrontDoorWebApplicationFirewallLog
inclui solicitações que correspondem a uma regra WAF.
O log FrontdoorWebApplicationFirewallLog
inclui qualquer solicitação que corresponda a uma regra WAF.
A tabela a seguir mostra os valores registrados para cada solicitação.
Property | Description |
---|---|
Ação | Seguimento dado ao pedido. Os logs incluem solicitações com todas as ações. As ações são:
|
ClientIP | O endereço IP do cliente que fez a solicitação. Se houver um X-Forwarded-For cabeçalho na solicitação, o endereço IP do cliente será retirado desse campo de cabeçalho. |
ClientPort | A porta IP do cliente que fez a solicitação. |
Detalhes | Mais detalhes sobre o pedido, incluindo quaisquer ameaças que foram detetadas. matchVariableName : Nome do parâmetro HTTP da solicitação correspondido, por exemplo, nomes de cabeçalho (até 100 caracteres no máximo).matchVariableValue : Valores que acionaram a correspondência (até 100 caracteres no máximo). |
Host | O Host cabeçalho da solicitação. |
Política | O nome da política WAF que processou a solicitação. |
Modo de Política | Modo de operações da política WAF. Os valores possíveis são Prevention e Detection . |
RequestUri | URI completo da solicitação. |
RuleName | O nome da regra WAF que a solicitação correspondeu. |
SocketIP | O endereço IP de origem visto pelo WAF. Este endereço IP baseia-se na sessão TCP e não considera quaisquer cabeçalhos de pedido. |
TrackingReference | A cadeia de referência única que identifica um pedido servido pelo Azure Front Door. Esse valor é enviado ao cliente no cabeçalho da X-Azure-Ref resposta. Utilize este campo quando procurar um pedido específico no registo. |
A consulta de exemplo a seguir mostra as solicitações que o WAF da Porta da Frente do Azure bloqueou:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog"
| where action_s == "Block"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"
O trecho a seguir mostra uma entrada de log de exemplo, incluindo o motivo pelo qual a solicitação foi bloqueada:
{
"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"
}
]
}
}
}
Para obter mais informações sobre os outros logs do Azure Front Door, consulte Monitorar métricas e logs no Azure Front Door.
Próximos passos
Saiba mais sobre o Azure Front Door.