Мониторинг и ведение журнала для Брандмауэра веб-приложений Azure
Azure Брандмауэр веб-приложений в Azure Front Door предоставляет широкие возможности ведения журнала и телеметрии, чтобы понять, как выполняется брандмауэр веб-приложений (WAF) и необходимые действия.
Журнал WAF Azure Front Door интегрирован с Azure Monitor. Azure Monitor позволяет отслеживать диагностические сведения, включая оповещения и журналы WAF. Вы можете настроить мониторинг WAF в ресурсе Azure Front Door в портал Azure на вкладке "Диагностика", с помощью инфраструктуры в качестве подходов к коду или с помощью Azure Monitor напрямую.
Метрики
Azure Front Door автоматически записывает метрики, помогающие понять поведение WAF.
Чтобы получить доступ к метрикам WAF, выполните приведенные ниже действия.
- Войдите в портал Azure и перейдите в профиль Azure Front Door.
- На левой панели в разделе "Мониторинг" выберите вкладку "Метрики ".
- Добавьте метрику счетчика запросов Брандмауэр веб-приложений для отслеживания количества запросов, соответствующих правилам WAF.
Настраиваемые фильтры можно создавать на основе типов действий и имен правил. Метрики включают запросы со всеми действиями, кроме Log
.
Метрики вызовов JavaScript (предварительная версия)
Чтобы получить доступ к метрикам WAF для вызовов JavaScript, выполните следующие действия.
- Добавьте метрику Брандмауэр веб-приложений
JS Challenge Request Count
для отслеживания количества запросов, соответствующих правилам WAF для JavaScript.
Следующие фильтры предоставляются в рамках этой метрики:
- PolicyName: это имя политики WAF
- Правило. Это может быть любое пользовательское правило или правило бота
- Действие. Существует четыре возможных значения для действия JS Challenge
- Выдано: Вызов JS вызывается при первом вызове
- Передано: вычисление JS Challenge успешно выполнено, и был получен ответ
- Допустимо: файл cookie для проверки подлинности JS Challenge присутствовал
- Заблокировано: сбой вычислений JS Challenge
Журналы и диагностика
WAF Azure Front Door предоставляет подробные отчеты по каждому запросу и каждой обнаруженной угрозе. Ведение журнала интегрировано с диагностика журналами и оповещениями Azure с помощью журналов Azure Monitor.
Журналы по умолчанию не включены. Необходимо явно включить журналы. Журналы можно настроить в портал Azure с помощью вкладки параметров диагностики.
Если ведение журнала включено и запускается правило WAF, все соответствующие шаблоны регистрируются в виде обычного текста, чтобы помочь вам проанализировать и отладить поведение политики WAF. Вы можете использовать исключения для точной настройки правил и исключения любых данных, которые необходимо исключить из журналов. Дополнительные сведения см. в списках исключений брандмауэра веб-приложений в Azure Front Door.
Вы можете включить три типа журналов Azure Front Door:
- Журналы WAF
- Журналы доступа
- Журналы проб работоспособности
Журналы действий включены по умолчанию и предоставляют видимость операций, выполняемых в ресурсах Azure, таких как изменения конфигурации профиля Azure Front Door.
Журналы WAF
FrontDoorWebApplicationFirewallLog
Журнал содержит запросы, соответствующие правилу WAF.
FrontdoorWebApplicationFirewallLog
Журнал содержит любой запрос, соответствующий правилу WAF.
В следующей таблице показаны значения, зарегистрированные для каждого запроса.
Свойство | Description |
---|---|
Действие | Действие, выполняемое с запросом. Журналы включают запросы со всеми действиями. Действия:
|
ClientIP | IP-адрес отправившего запрос клиента. Если в запросе был указан заголовок X-Forwarded-For , то IP-адрес клиента вместо этого выбирается из поля заголовка. |
ClientPort | IP-порт клиента, отправившего запрос. |
Сведения | Дополнительные сведения о запросе, включая обнаруженные угрозы. matchVariableName : http-имя параметра соответствующего запроса, например имена заголовков (не более 100 символов).matchVariableValue : значения, активировающие совпадение (не более 100 символов). |
Хост | Заголовок запроса Host . |
Политика | Имя политики WAF, которая обработала запрос. |
PolicyMode | Режим работы политики WAF. Возможные значения: Prevention и Detection . |
RequestUri | Полный универсальный код ресурса (URI) запроса. |
RuleName | Имя правила WAF, которому соответствует запрос. |
SocketIP | Исходный IP-адрес, видимый WAF. Этот IP-адрес основан на сеансе TCP и не учитывает заголовки запросов. |
TrackingReference | Уникальная строка ссылки, которая идентифицирует запрос, обслуженный Azure Front Door. Это значение отправляется клиенту в заголовке ответа X-Azure-Ref . Используйте это поле при поиске определенного запроса в журнале. |
В следующем примере запроса показаны запросы, заблокированные WAF 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"
В следующем фрагменте кода показан пример записи журнала, включая причину блокировки запроса:
{
"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"
}
]
}
}
}
Дополнительные сведения о других журналах Azure Front Door см. в разделе "Мониторинг метрик и журналов" в Azure Front Door.
Следующие шаги
Узнайте больше о Azure Front Door.