[Документация Yandex Cloud](../../index.md) > [Yandex Smart Web Security](../index.md) > [Пошаговые инструкции](index.md) > Профили WAF > Мониторинг и корректировка защиты ML WAF

# Мониторинг и корректировка защиты ML WAF

В разделе описано, как отслеживать работу [ML WAF (Yandex Malicious Score)](../concepts/waf.md#yandex-ml-ruleset) после обновления модели и корректировать настройки защиты. Модель регулярно дообучается, поэтому значение `score` для одного и того же запроса может измениться. Если `score` достигнет или превысит заданный [порог аномальности](../concepts/waf.md#anomaly), вердикт по запросу может измениться. Ревизия модели не отображается в логах, но изменения `score` и вердиктов позволяют заметить изменение ее поведения. При пороге `90` гарантируется стабильность вердиктов. Начните с этого значения, отслеживайте срабатывания и при необходимости корректируйте настройки.

Чтобы ваша инфраструктура всегда была под защитой:

1. [Включите расширенное логирование](#enable-logging).
1. [Зафиксируйте базовые показатели защиты](#fix-baseline).
1. [Локализуйте область изменения](#handle-false-positives).
1. [Скорректируйте минимально возможную область защиты](#change-one-parameter).
1. [Проверьте эффект по показателям безопасности и доступности](#verify-after-change).
1. [Когда обращаться в поддержку](#contact-support).

## Включите расширенное логирование {#enable-logging}

[Настройте логирование](configure-logging.md) через Smart Web Security и включите запись:

* Запросов с вердиктами `DENY` и `CAPTCHA`.
* Доли запросов с действием `ALLOW`. Для разрешенного трафика доступна выборка от `1` до `100` процентов. Чем выше доля, тем больше информации, но и больше объем логов.

Для анализа срабатываний ML WAF используйте [поля логов](../concepts/logging.md#log-contents):

* `action` и `dry_run_matched_rule_verdict` — итоговый и тестовый вердикт по запросу;
* `waf_applied_rule_set_id` — набор правил, который принял решение;
* `waf_matched_rules` и `dry_run_waf_matched_rules` — сработавшие правила WAF, включая тестовый режим;
* `rule_id`, `rule_set_id`, `rule_group_id` — идентификаторы правила, набора и группы правил;
* `score` — значение [аномальности](../concepts/waf.md#anomaly), полученное при проверке запроса;
* `matched_data_variable`, `matched_data_key`, `matched_data_value` — часть запроса, в которой обнаружена аномалия;
* `waf_matched_exclusion_rules` — сработавшие правила-исключения.

## Зафиксируйте базовые показатели защиты {#fix-baseline}

Перед тем как менять настройки ML WAF, зафиксируйте отдельно по каждой группе атак:

* количество и долю запросов с вердиктами `ALLOW`, `DENY` и `CAPTCHA`;
* распределение значений `score`;
* топ маршрутов, параметров запроса и частей запроса, на которых срабатывают правила;
* долю ответов `4xx` и `5xx`, доступность сервиса и бизнес-метрики критичных сценариев;
* текущую конфигурацию профиля WAF, включая идентификатор и версию набора правил.

Базовые показатели помогают отличить эффект от обновления модели от сезонных колебаний трафика, изменения его состава или собственных изменений конфигурации.

## Локализуйте область изменения {#handle-false-positives}

При выявлении ложного срабатывания:

1. Подтвердите по логам приложения, что запрос легитимен.
1. Определите конкретную группу атак в ML WAF, правило, маршрут и часть запроса, на которой сработало правило.
1. Временно повысьте порог аномальности проблемной группы или верните правило в режим **Только логирование**.
1. После подтверждения создайте [правило-исключение](../concepts/waf.md#exclusion-rules).
1. Включите логирование исключения и проверьте по логам, что оно применяется только к ожидаемому трафику.

{% note warning %}

Не отключайте весь профиль WAF и не исключайте запрос целиком, если ложное срабатывание можно локализовать до одного правила, маршрута или поля запроса. Широкое исключение создает неконтролируемый обход защиты.

{% endnote %}

Сужайте правило-исключение одновременно по нескольким признакам:

* конкретное правило WAF;
* маршрут, хост или HTTP-метод;
* конкретная часть запроса — тело HTTP-запроса, Cookie, HTTP-заголовок или параметры строки запроса;
* конкретный параметр или заголовок, если он известен.

## Скорректируйте минимально возможную область защиты {#change-one-parameter}

Начинайте с рекомендуемого порога аномальности `90` и включайте группы атак по одной.

Не совмещайте в одном изменении:

* включение новой группы атак;
* снижение порога аномальности;
* расширение области действия профиля.

При снижении порога аномальности учитывайте риск ложных срабатываний: чем ниже порог, тем выше чувствительность защиты.

## Проверьте эффект по показателям безопасности и доступности {#verify-after-change}

После каждого изменения контролируйте показатели безопасности и доступности.

Показатели безопасности:
* количество и структура срабатываний ML WAF;
* распределение значений `score`;
* подозрительный трафик и инциденты;
* изменение покрытия по группам атак.

Показатели доступности и бизнеса:
* доля ответов `4xx` и `5xx`;
* ошибки авторизации и платежей;
* успешность выполнения запросов API и интеграций;
* обращения пользователей в поддержку;
* конверсия критичных пользовательских сценариев.

Снижение доли заблокированных запросов не всегда означает улучшение защиты. Оно может быть связано как с устранением ложных срабатываний, так и с пропуском атак.

## Когда обращаться в поддержку {#contact-support}

Обратитесь в [службу поддержки](https://kz.center.yandex.cloud/support) Yandex Cloud в следующих ситуациях:

* Массовое изменение вердиктов началось без изменений конфигурации с вашей стороны.
* Проблема одновременно проявилась на несвязанных между собой маршрутах.
* Срабатывания нельзя локализовать до одного правила или одного поля запроса.
* Безопасная компенсация требует широкого исключения или отключения ML WAF.
* Изменилась бизнес-метрика, но логов недостаточно, чтобы связать ее с конкретным правилом или запросом.
* Изменение по времени совпало с обновлением модели ML WAF или набора правил.

К обращению приложите:

* время начала изменения и часовой пояс;
* идентификаторы `security_profile_id` и `waf_profile_id`;
* идентификатор и версию набора правил (`ruleSet.id`, `ruleSet.version`);
* проблемные `rule_id` и `rule_group_id`;
* несколько значений `alb_request_id` или `unique_key` из логов;
* агрегированное сравнение показателей до и после изменения;
* описание уже предпринятых действий.

#### Полезные ссылки {#see-also}

* [Профили WAF](../concepts/waf.md)
* [Настроить наборы правил WAF](configure-set-rules.md)
* [Добавить правило-исключение WAF](exclusion-rule-add.md)
* [Настроить логирование через Smart Web Security](configure-logging.md)
* [Мониторинг в Smart Web Security](monitoring.md)