Настроить логирование через Smart Web Security
Этот способ дает подробные логи проверки запросов правилами безопасности, WAF и ARL. В профиле можно выбирать типы правил и вердикты для записи. Логирование через Application Load Balancer сохраняет HTTP-запросы балансировщика с результатом проверки Smart Web Security.
Для записи логов Smart Web Security используются сервисы:
- Monium Logs — для логов профилей безопасности. Логи содержат информацию об HTTP-запросах и сработавших правилах, включая WAF и ARL, и сохраняются в проектах Monium.
- Cloud Logging — для логов прокси-серверов и L7-балансировщиков Application Load Balancer. Логи сохраняются в лог-группах.
- Audit Trails — для сбора аудитных событий Smart Web Security. Это записи о событиях безопасности и действиях с ресурсами.
Логи аудита
В Audit Trails есть два типа событий:
- Уровня конфигурации — действия, связанные с конфигурированием ресурсов Yandex Cloud. Например, создание или удаление профиля безопасности.
- Уровня сервисов — действия, которые происходят с ресурсами внутри сервисов Yandex Cloud. Например, срабатывание правила из профиля WAF.
Записывать события можно в бакет Object Storage, проект Monium или поток данных Data Streams.
Логи HTTP-запросов и применения правил
Логи проверки запросов можно записывать через профиль безопасности Smart Web Security в Monium Logs или через L7-балансировщик Application Load Balancer в Cloud Logging. Логирование через профиль безопасности предоставляет больше возможностей для анализа.
Логи профиля безопасности поступают в проект Monium folder__<идентификатор_каталога>, где указан идентификатор каталога с профилем. Логи можно просматривать в интерфейсе Smart Web Security или Monium.
Логи прокси-серверов и L7-балансировщиков поступают в выбранную лог-группу Cloud Logging. Логи прокси-сервера также доступны в интерфейсе Smart Web Security, а балансировщика — в интерфейсе Application Load Balancer.
Анализ логов позволяет настраивать и отслеживать работу Smart Web Security:
- Тестировать работу правил безопасности, WAF и ARL в режиме Только логирование (dry run). В этом режиме запросы пользователей не блокируются, но в логи записывается информация о срабатывании правил.
- Просматривать количество заблокированных и пропущенных запросов, оценивать и корректировать работу правил.
- Просматривать подробную информацию о запросе, выявлять ложноположительные срабатывания.
В некоторых случаях сервис может блокировать трафик при атаках. В логах для таких блокировок будет указана отметка сервисного правила: sws_service_rule.
Работа с логами
Чтобы начать работать с логами Smart Web Security:
Включить логирование
Включить логирование можно при создании профиля безопасности или прокси-сервера, а также при их редактировании.
Примечание
Для настройки логирования в профиле безопасности нужна роль smart-web-security.editor на каталог с профилем. Для просмотра логов в Monium нужна роль с правом чтения логов.
-
В консоли управления
выберите каталог, в котором находится профиль Smart Web Security. -
Перейдите
в сервис Smart Web Security. -
На панели слева выберите Профили безопасности.
-
В строке с нужным профилем нажмите
и выберите Редактировать. -
Включите Запись логов.
-
В поле Записывать логи в выберите Monium.
-
Настройте фильтры логов:
-
В блоке Логировать запросы для правил выберите типы правил:
- Базовые правила.
- Smart Protection.
- Web Application Firewall.
- Advanced Rate Limiter.
-
В блоке Логировать запросы с вердиктом выберите вердикты:
- Разрешено (ALLOW).
- Заблокировано (DENY).
- Направлено на проверку — CAPTCHA или JS-проверка.
-
Для запросов с вердиктом
ALLOWукажите долю пропускаемых логов в поле Сколько не записывать логов с вердиктом ALLOW:0%— записывать все,100%— не записывать.
-
-
Нажмите Сохранить.
-
В консоли управления
выберите каталог с прокси-сервером. -
Перейдите
в сервис Smart Web Security. -
На панели слева выберите Защита доменов.
-
В строке с нужным прокси-сервером нажмите
и выберите Редактировать. -
Включите Логировать запросы.
-
Выберите лог-группу Cloud Logging, в которую будут записываться логи, или создайте новую.
-
(Опционально) Чтобы уменьшить объем логов, создайте правило отбрасывания:
- Нажмите Добавить правило в блоке Правила отбрасывания логов.
- Выберите HTTP-коды или Классы HTTP-кодов, для которых нужно сократить запись логов.
- Укажите Долю отбрасываемых логов от
0%(все логи записываются) до100%(логи не записываются).
Для других HTTP-кодов добавьте отдельные правила.
-
Нажмите Сохранить.
Настройте запись событий Smart Web Security в бакет Object Storage. Перед созданием трейла подготовьте бакет и сервисный аккаунт.
- В консоли управления
выберите каталог, в котором находится профиль Smart Web Security. - Перейдите
в сервис Audit Trails. - Нажмите Создать трейл.
- В поле Приёмник логов выберите Object Storage.
- В поле Бакет выберите подготовленный бакет.
- Отключите Сбор логов с управляющего слоя.
- В блоке Сбор логов со слоя данных очистите список и выберите сервис Smart Web Security.
- В блоке Сервисный аккаунт выберите подготовленный аккаунт с ролями storage.uploader на бакет и audit-trails.viewer на каталог с профилем безопасности.
- В блоке Общая информация введите имя трейла, например
trail-sws. - Нажмите Создать.
Будут записываться все события Smart Web Security уровня сервисов в текущем каталоге. События уровня конфигурации записываться не будут.
Другие способы включения записи событий описаны в разделе Создание трейла для загрузки аудитных логов.
Чтобы Yandex Smart Web Security передавал события в Audit Trails:
-
В консоли управления
выберите каталог, в котором находится профиль Smart Web Security. -
Перейдите
в сервис Smart Web Security. -
На панели слева выберите Профили безопасности.
-
В строке с нужным профилем безопасности нажмите
и выберите Редактировать. -
Включите Запись логов.
-
В поле Записывать логи в выберите Audit Trails.
-
Настройте фильтры логов:
-
В блоке Логировать запросы для правил выберите типы правил:
- Базовые правила.
- Smart Protection.
- Web Application Firewall.
- Advanced Rate Limiter.
-
В блоке Логировать запросы с вердиктом выберите вердикты:
- Разрешено (ALLOW).
- Заблокировано (DENY).
- Направлено на проверку — CAPTCHA или JS-проверка.
-
Для запросов с вердиктом
ALLOWукажите долю пропускаемых логов в поле Сколько не записывать логов с вердиктом ALLOW:0%— записывать все,100%— не записывать.
-
-
Нажмите Сохранить.
Таким образом можно настроить передачу только событий из отдельных профилей безопасности или только по отдельным правилам и вердиктам.
Просмотреть логи
Для профиля безопасности:
-
В консоли управления
выберите каталог с профилем безопасности. -
Перейдите
в сервис Smart Web Security. -
На панели слева выберите
Логи. -
Задайте период поиска логов.
-
В строке запроса выберите поля для фильтрации. Чтобы найти логи конкретного профиля, добавьте условие
security_profile_id = "<идентификатор_профиля>".Для ввода запроса в текстовом режиме нажмите
и используйте язык запросов Monium. Сохраните меткиproject,clusterиservice, выбранные по умолчанию. -
Нажмите Выполнить запрос. Чтобы посмотреть содержимое записи, разверните ее.
Для прокси-сервера:
Нужна роль logging.viewer на лог-группу.
- В консоли управления
выберите каталог с прокси-сервером. - Перейдите
в сервис Smart Web Security. - На панели слева выберите Защита доменов.
- Выберите нужный прокси-сервер.
- Перейдите на вкладку Логи.
Логи прокси-сервера также можно просмотреть в Cloud Logging.
-
На главной странице Monium
слева выберите Обзор → Логи. -
Задайте период поиска логов.
-
В строке запроса укажите
project = "folder__<идентификатор_каталога>"для каталога с профилем безопасности. Выберите значенияclusterиserviceдля логов Smart Web Security из выпадающих списков. -
Чтобы найти логи конкретного профиля, добавьте условие
security_profile_id = "<идентификатор_профиля>".Запрос можно составить из меток в выпадающих списках или ввести на языке запросов Monium. Для ввода запроса нажмите
. -
Нажмите Выполнить запрос. Чтобы посмотреть содержимое записи, разверните ее.
Для просмотра логов нужна роль storage.viewer на бакет.
- В консоли управления
выберите каталог с бакетом. - Перейдите
в сервис Object Storage. - Выберите бакет, указанный в настройках трейла.
- На вкладке Объекты найдите файлы за нужную дату. Путь к файлу содержит идентификатор трейла и дату записи.
- Скачайте нужный JSON-файл и откройте его в текстовом редакторе.
Каждый файл содержит массив событий. Чтобы найти определенное событие Smart Web Security, ищите значение поля event_type в формате yandex.cloud.audit.smartwebsecurity.<имя_события>.
Примеры готовых фильтров для логов
Примеры ниже относятся к логам профиля безопасности и подходят для интерфейсов Smart Web Security и Monium. Логи поставляются в формате JSON: одна запись соответствует одному запросу клиента, обработанному Smart Web Security.
Запросы для фильтрации логов составляются, исходя из взаимосвязи профилей и правил Smart Web Security. Вы можете посмотреть логи активных, работающих правил или правил в режиме Только логирование (dry run).
Добавьте нужные условия из примеров ниже в селектор запроса, сохранив метки project, cluster и service. Поля описаны в разделе Логирование.
Фильтры для активных правил
-
Показать запросы, заблокированные базовыми правилами с определенными условиями. Например, по списку или региону IP:
module_type = "RULE_CONDITION", meta.matched_rule_verdict = "DENY" -
Показать запросы, для которых сработали правила Smart Protection с отправкой на капчу:
module_type = "SMART_PROTECTION", meta.matched_rule_verdict = "CAPTCHA" -
Показать запросы, заблокированные по профилю WAF — правилами WAF из профиля безопасности:
module_type = "WAF", meta.matched_rule_verdict = "DENY" -
Показать запросы, заблокированные правилами профиля ARL:
meta.arl_verdict = "DENY" -
Показать запросы, для которых сработало конкретное правило ARL —
arl-rule-1:meta.arl_verdict = "DENY", meta.arl_applied_quota_name = "arl-rule-1"
Фильтры для правил в режиме логирования
-
Показать запросы, для которых сработали правила Smart Protection с отправкой на капчу:
module_type = "SMART_PROTECTION", meta.dry_run_matched_rule_verdict = "CAPTCHA" -
Показать запросы, для которых было превышение по конкретному правилу ARL —
arl-rule-1:meta.arl_dry_run_exceeded_quota_names = "arl-rule-1"
Таким же образом вы можете добавить в фильтры другие условия и изменять их с учетом особенностей вашего потока трафика.