Мониторинг и ведение журнала для Брандмауэра веб-приложений 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.
Настраиваемые фильтры можно создавать на основе типов действий и имен правил. Метрики включают запросы с конечными действиями, такими Block
как и Allow
запросы, в которых 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.