Monitoramento e registro em log do Firewall de Aplicativo Web do Azure
O Firewall do Aplicativo Web do Azure no Azure Front Door fornece registro em log extensivo e telemetria para ajudá-lo a entender como o WAF (firewall do aplicativo Web) está sendo executado e as ações executadas.
O log do WAF do Azure Front Door é integrado ao Azure Monitor. O Azure Monitor permite o controle das informações de diagnóstico, incluindo logs e alertas do WAF. Você pode configurar o monitoramento do WAF dentro do recurso do Front Door no portal do Azure na guia Diagnóstico, por meio de abordagens de infraestrutura como código ou diretamente por meio do serviço do Azure Monitor.
Métricas
O Azure Front Door registra automaticamente as métricas para ajudá-lo a entender o comportamento de seu WAF.
Para acessar as métricas do WAF:
- Entre no portal do Azure e navegue até o 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 Firewall de Aplicativo Web para acompanhar 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 do desafio JavaScript (visualização)
Para acessar as métricas do WAF do desafio JavaScript:
- Adicione a métrica Web Application Firewall
JS Challenge Request Count
para rastrear o número de solicitações que correspondem às regras do WAF de desafio de JavaScript.
Os seguintes filtros são fornecidos como parte dessa métrica:
- PolicyName: Esse é o nome da política WAF
- Regra: Pode ser qualquer regra personalizada ou regra de bot
- Ação: Existem quatro valores possíveis para a ação do JS Challenge
- Emitido: JS Challenge é invocado pela primeira vez
- Passado: O cálculo do JS Challenge foi bem-sucedido e uma resposta foi recebida
- Válido: O cookie de validade do JS Challenge estava presente
- Bloqueado: Falha no cálculo do Desafio JS
Configurar logs e diagnósticos
O WAF do Azure Front Door fornece relatórios detalhados sobre cada solicitação e cada ameaça detectada. O registro em log é integrado aos logs e alertas de diagnóstico do Azure através do uso dos logs do Azure Monitor.
Esses logs não são habilitados por padrão. Você precisa habilitar os logs explicitamente. Você pode configurar os logs no portal do Azure usando a guia Configurações de diagnóstico.
Se o log estiver habilitado e uma regra de WAF for disparada, todos os padrões correspondentes serão registrados em texto sem formatação para ajudar a analisar e depurar o comportamento da política do WAF. Você pode usar exclusões para ajustar as regras e excluir todos os dados que você deseja que sejam excluídos dos logs. Para obter mais informações, confira Listas de exclusões do Firewall de Aplicativo Web no Azure Front Door.
Você pode habilitar três tipos de logs do Azure Front Door:
- Logs do WAF
- Logs de acesso
- Logs de investigação de integridade
Os logs de atividades são habilitados por padrão e fornecem visibilidade das operações executadas em seus recursos do Azure, como alterações de configuração no perfil do Azure Front Door.
Logs do WAF
O log FrontDoorWebApplicationFirewallLog
inclui solicitações que correspondem a uma regra de WAF.
O log FrontdoorWebApplicationFirewallLog
inclui quaisquer solicitações que correspondem a uma regra de WAF.
A tabela a seguir mostra os valores registrados em log para cada solicitação.
Propriedade | Descrição |
---|---|
Ação | Ação executada na solicitação. Os logs incluem solicitações com todas as ações. As ações são:
|
ClientIP | Endereço IP do cliente que fez a solicitação. Se houver um cabeçalho X-Forwarded-For na solicitação, o endereço IP do cliente será obtido desse campo de cabeçalho. |
ClientPort | Porta IP do cliente que fez a solicitação. |
Detalhes | Detalhes adicionais sobre a solicitação, incluindo quaisquer ameaças detectadas. matchVariableName : nome do parâmetro HTTP da solicitação correspondente, por exemplo, nomes de cabeçalho (máximo de caracteres 100).matchVariableValue : valores que dispararam a correspondência (até 100 caracteres no máximo). |
Host | O cabeçalho Host da solicitação. |
Política | O nome da política do WAF que processou à solicitação. |
PolicyMode | Modo de operações da política do WAF. Os valores possíveis são Prevention e Detection . |
RequestUri | O URI completo da solicitação. |
RuleName | O nome da regra do WAF com a qual a solicitação foi correspondida. |
SocketIP | O endereço IP de origem visto pelo WAF. Esse endereço IP é baseado na sessão TCP e não considera nenhum cabeçalho de solicitação. |
TrackingReference | A cadeia de caracteres de referência exclusiva que identifica uma solicitação atendida pelo Azure Front Door. Esse valor é enviado ao cliente no cabeçalho de resposta X-Azure-Ref . Use esse campo ao pesquisar uma solicitação específica no log. |
A consulta de exemplo a seguir mostra as solicitações que foram bloqueadas pelo WAF do Azure Front Door:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog"
| where action_s == "Block"
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"
Veja a seguir um exemplo de 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óximas etapas
Saiba mais sobre o Azure Front Door.