Базовая настройка защиты в Smart Web Security
- Порядок работы
- Необходимые платные ресурсы
- Подготовьте облако к работе
- Создайте защищаемый ресурс
- Настройте защиту от DDoS и ботов
- Создайте профиль безопасности
- Настройте фильтрацию по спискам адресов
- Настройте фильтрацию по регионам
- Настройте разрешающее правило для капчи
- Проверьте порядок выполнения правил
- Подключите профиль безопасности к ресурсам
- Проверьте профиль безопасности в режиме логирования
- Проверьте профиль безопасности в реальном режиме
- Настройте ограничение нагрузки
- Настройте Web Application Firewall
- Дальнейшая настройка политик безопасности
Smart Web Security (SWS) защищает веб-ресурсы от интернет-угроз, фильтруя вредоносный трафик.
Для индивидуальной настройки можно подключить несколько инструментов Smart Web Security:
- базовые правила для простой фильтрации;
- правила Smart Protection для защиты от DDoS;
- SmartCaptcha для защиты от ботов;
- Web Application Firewall (WAF) — от эксплуатации уязвимостей;
- Advanced Rate Limiter (ARL) для ограничения трафика.
Каждый инструмент настраивается по этапам: добавление правил, проверка в реальных условиях и корректировка. Рекомендуется настраивать инструменты последовательно, начиная с базовых правил и Smart Protection. Это позволит быстро включить защиту и облегчить отслеживание и корректировку правил.
В этом руководстве вы настроите защиту веб-ресурса с помощью инструментов SWS, которые будут подключаться к профилю безопасности — центральному элементу SWS. Настройка профиля безопасности включает калибровку правил на основе реального трафика веб-приложения. Поэтому предполагается, что у вас уже есть настроенный веб-ресурс в Yandex Cloud или в другой инфраструктуре.
Порядок работы
-
Подключение ресурсов к Yandex Cloud:
-
Настройте защиту от DDoS и ботов:
- Создайте профиль безопасности
- Настройте фильтрацию по спискам адресов
- (Опционально) Настройте фильтрацию по регионам
- Настройте разрешающее правило для капчи
- Проверьте порядок выполнения правил
- Подключите профиль безопасности к ресурсам
- Проверьте профиль безопасности в режиме логирования
- Проверьте профиль безопасности в реальном режиме
-
(Опционально) Настройте Web Application Firewall
Необходимые платные ресурсы
- Плата за количество запросов в сервис Smart Web Security.
- Плата за инфраструктуру Application Load Balancer или API Gateway при ее использовании. Инфраструктура доменов не тарифицируется.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Создайте защищаемый ресурс
Профиль безопасности можно подключить к разным типам ресурсов:
- Виртуальный хост или Ingress-контроллер для защиты ресурсов, использующих Yandex Application Load Balancer.
- API-шлюз API Gateway для защиты API ваших приложений.
- Домен для защиты вашего сайта или веб-приложения, расположенного в Yandex Cloud, в вашей внутренней инфраструктуре или на других хостингах.
Руководство предполагает, что у вас уже есть настроенный веб-ресурс. Если ресурс находится вне Yandex Cloud или вы не используете Application Load Balancer и API Gateway, создайте домен по инструкции ниже. Также можно ознакомиться с документацией других сервисов, которые работают с Smart Web Security, и настроить соответствующую инфраструктуру.
Application Load Balancer равномерно распределяет входящий трафик между узлами, что позволяет избежать перегрузки и повысить отказоустойчивость.
API-шлюз — единая точка входа для API различных сервисов, которая позволяет управлять запросами, маршрутизацией, аутентификацией и так далее.
Домен — сервер, сайт, приложение, которое обрабатывает внешние запросы по веб-адресу. Для защиты домена Smart Web Security предоставляет прокси-сервер с балансировкой нагрузки, анализом и маршрутизацией запросов, а также базовой защитой от DDoS.
На прокси-сервере установлено ограничение MTU для всех пакетов — 1450 байт.
Примечание
Функциональность защиты доменов находится на стадии Preview.
Подготовьте данные о ресурсе
- Адрес домена, на котором работает веб-приложение. У вас должен быть доступ к кабинету управления доменом, чтобы изменить A-запись.
- IP-адрес сервера, порт и протокол, на котором работает веб-приложение.
- Действительный приватный ключ и TLS-сертификат для этого домена в PEM
-encoded формате. Поддерживаются сертификаты с ключами RSA-2048 и RSA-4096.
Создайте прокси-сервер
-
В консоли управления
выберите каталог. -
В списке сервисов выберите Smart Web Security.
-
На панели слева выберите
Защита доменов. -
Нажмите кнопку Создать прокси-сервер.
-
Введите произвольное имя для прокси-сервера, например,
test-proxy
. -
Включите опцию Логировать запросы.
-
Выберите существующую лог-группу или создайте новую.
-
Нажмите кнопку Создать сервер.
Для работы с прокси-сервером будет создан сервисный аккаунт с ролями
monitoring.editor
,smart-web-security.admin
,certificate-manager.admin
,logging.writer
.Создание прокси-сервера может занять несколько минут. Дождитесь, когда сервер перейдет в статус
Active
. После этого можно добавить домен.
Добавьте домен
-
В меню слева перейдите на вкладку
Домены и нажмите кнопку Добавить домен. -
Введите адрес домена, на котором находится ваше веб-приложение, например,
example.com
. -
Нажмите Продолжить.
-
Выберите тип соединения, которое используется в вашем приложении. Рекомендуем выбрать защищенный протокол HTTPS.
-
Если вы используете сервис Certificate Manager и добавляли в него сертификат вашего домена, выберите его из списка.
-
Если вы не используете Certificate Manager, нажмите кнопку Создать → Пользовательский сертификат.
- Введите произвольное имя сертификата.
- Скопируйте или загрузите файлом приватный ключ, сертификат и цепочку промежуточных сертификатов в формате PEM.
- Нажмите кнопку Создать сертификат.
-
Нажмите Продолжить.
-
В блоке Целевые ресурсы задайте настройки целевых ресурсов:
- IP-адрес и порт, на котором работает ваше веб-приложение.
- (Опционально) Разверните блок Подключение к целевым ресурсам, чтобы выбрать протокол, на котором работает ваше веб-приложение.
-
Нажмите кнопку Добавить домен.
После создания домена откроется страница обзора параметров домена. В разделе Как активировать защиту? скопируйте IP-адрес прокси-сервера, он потребуется на следующем шаге.
Настройте вашу инфраструктуру
-
Добавьте ресурсную А-запись в публичную DNS-зону вашего домена, указав в ней значения:
Имя записи
— адрес вашего домена, заканчивающийся на точку. Например:example.com.
илиmy.first.example.com.
.Значение
— полученный на предыдущем шаге IPv4-адрес прокси-сервера.
Эта запись перенаправляет запросы, которые поступают на ваш домен, на IP-адрес прокси-сервера.
Примечание
Если ваш домен делегирован Yandex Cloud DNS, создайте ресурсную запись по инструкции. В остальных случаях воспользуйтесь личным кабинетом вашего регистратора доменных имен. Если нужна помощь, обратитесь к документации регистратора или в его поддержку.
-
В настройках вашего сервера запретите все соединения и разрешите только соединения для IP-адресов Yandex Cloud.
Проверьте статус вашего ресурса
-
В разделе
Защита доменов выберите созданный прокси-сервер. -
В меню слева перейдите на вкладку
Домены и выберите созданный домен. -
В блоке Целевые ресурсы убедитесь, что ваш ресурс находится в статусе Доступен.
Если это не так, прокси-сервер не может соединиться с вашим ресурсом. Проверьте адрес вашего веб-сервера и настройки сети. Убедитесь, что к веб-серверу разрешен доступ с IP-адресов Yandex Cloud.
-
На панели слева убедитесь, что ваш домен находится в статусе Доступен.
Если это не так, проверьте адрес домена и А-запись, а также валидность сертификата.
Настройте защиту от DDoS и ботов
Создайте профиль безопасности
Профиль безопасности настраивается в соответствии с моделью угроз — описанием возможных рисков, атакующих сторон и уязвимостей с учетом особенностей вашего сервиса. Если вы настраиваете защиту без участия специалистов по информационной безопасности, рекомендуется использовать готовый шаблон профиля, настроенный экспертами Yandex Cloud. Это обеспечит базовый уровень защиты и поможет сократить вероятность ошибок при настройке.
В этом руководстве при настройке используется готовый шаблон профиля безопасности.
-
В консоли управления
выберите каталог, в котором находятся защищаемые ресурсы. -
В списке сервисов выберите Smart Web Security.
-
На панели слева выберите
Профили безопасности. -
Нажмите Создать профиль и выберите По преднастроенному шаблону.
Преднастроенный профиль содержит:
- базовое правило по умолчанию, включенное для всего трафика с типом действия
Запретить
; - правило Smart Protection
sp-rule-1
, включенное для всего трафика, с типом действияПолная защита
.
- базовое правило по умолчанию, включенное для всего трафика с типом действия
-
Введите имя профиля, например
site-protection
. -
Включите тестовый режим для правила Smart Protection
sp-rule-1
:- Для опции Действие для базового правила по умолчанию выберите
Разрешить
. - Напротив правила
sp-rule-1
нажмите и выберите Редактировать. - Включите опцию Только логирование.
- Нажмите Сохранить изменения.
Примечание
Правила в профиле безопасности применяются по принципу первого сработавшего правила в порядке приоритета. Правила, которые находятся в режиме Только логирование, фактически не срабатывают. В логи записывается информация только о возможном срабатывании правил. Поэтому первым сработавшим правилом будет базовое правило по умолчанию с типом действия
Запретить
. Это заблокирует весь трафик к вашему ресурсу. Чтобы этого не случилось, переведите базовое правило по умолчанию в режимРазрешить
.Трафик, обработанный правилами в режиме Только логирование, тарифицируется. Подробнее см. раздел Правила тарификации для Yandex Smart Web Security.
- Для опции Действие для базового правила по умолчанию выберите
-
(Опционально) Настройте политики безопасности для API-вызовов.
Если ваш сервис дополнительно обрабатывает запросы к публичному API, настройте отдельное правило Smart Protection с действием
Защита API
. В отличие от полной защиты, в таком режиме запросы не отправляются в SmartCaptcha для дополнительной проверки на автоматизированный трафик. Для этого правила тоже включите режим Только логирование.- Нажмите кнопку
Добавить правило. - Введите имя правила, например
api-protection
. - Задайте приоритет выше, чем у правила с полной защитой. Например,
900000
. - Включите опцию Только логирование.
- Укажите параметры правила:
- Тип правила —
Smart Protection
. - Действие —
Защита API
. - Трафик —
При условии
. - Условия —
Request URI
. - Request path — относительный путь для запросов к API. Например, ваш основной домен —
example.com
, а запросы к API принимаются по адресуexample.com/api
. Тогда в условии выберитеНачинается с
и укажите относительный путь —/api
.
- Тип правила —
- Нажмите Создать профиль.
- Нажмите кнопку
-
В разделе Обучение ML-моделей оставьте включенным согласие об использовании информации об HTTP-запросах для улучшения моделей машинного обучения. Иначе в сервис Smart Web Security не будут поступать данные для расследования инцидентов безопасности.
-
Нажмите Создать.
Настройте фильтрацию по спискам адресов
Списки адресов помогают оптимизировать проверку трафика, разрешая запросы для заведомо надежных (белых) адресов. Небезопасные или сомнительные адреса можно сразу блокировать или отправлять в SmartCaptcha.
В Smart Web Security предустановлены списки ненадежных (черных) IP-адресов. Списки белых адресов, например, адреса ваших контрагентов или партнеров, вы добавляете вручную. Также можно добавить собственные списки черных адресов.
-
Добавьте свои черные и белые списки адресов.
- На панели слева выберите Списки.
- Нажмите Создать список.
- Введите имя списка, например,
my-partners
, и нажмите Создать список. - Нажмите Добавить адреса.
- Введите или загрузите список белых адресов, которые не нуждаются в фильтрации.
- Нажмите Сохранить изменения.
- При необходимости добавьте список черных адресов.
-
Настройте правило блокировки по спискам IP-адресов.
- На панели слева выберите Профили безопасности и выберите профиль
site-protection
. - Нажмите кнопку
Добавить правило. - Введите имя правила, например
block-by-list
. - Задайте Приоритет выше, чем у правил Smart Protection. Например,
9100
. - Включите опцию Только логирование.
- Укажите параметры правила:
-
Тип —
Базовое
. -
Действие —
Запретить
илиПоказать капчу
. -
Трафик —
При условии
. -
Условия —
IP
. -
Условия на IP —
IP принадлежит списку
. -
Выберите список
is_ddoser
(IP-адреса, которые участвовали в DDoS-атаках). Запросы с этих адресов будут блокироваться. -
Чтобы добавить еще один список, нажмите кнопку + или и выберите список.
Добавьте предустановленные списки
is_tor
(IP-адреса сети TOR, которая используется для анонимизации трафика),is_anonimous
(IP-адреса анонимных сетей, которые часто используются для сокрытия личности) и свои черные списки.
-
- Нажмите кнопку Добавить.
- На панели слева выберите Профили безопасности и выберите профиль
-
Настройте разрешающее правило, которое будет пропускать все запросы с белых IP-адресов.
- В профиле
site-protection
нажмите кнопку Добавить правило. - Введите имя правила, например
allow-by-list
. - Задайте Приоритет выше, чем у блокирующего правила для черных списков. Например,
9000
. - Включите опцию Только логирование.
- Укажите параметры правила:
- Тип —
Базовое
. - Действие —
Разрешить
. - Трафик —
При условии
. - Условия —
IP
. - Условия на IP —
IP принадлежит списку
. - Выберите созданные ранее белые списки адресов.
- Тип —
- Нажмите кнопку Добавить.
- В профиле
Настройте фильтрацию по регионам
Если ваш сервис не ожидает трафика из определенных стран, можно настроить политики его обработки. Например, блокировать или отправлять на капчу.
-
В профиле
site-protection
нажмите кнопку Добавить правило. -
Введите имя правила, например
block-by-geo
. -
Включите опцию Только логирование.
-
Задайте Приоритет выше, чем у правил Smart Protection, но ниже, чем у правил по спискам IP-адресов. Например,
9200
. -
Укажите параметры правила:
-
Тип —
Базовое
. -
Действие —
Запретить
илиПоказать капчу
. -
Трафик —
При условии
. -
Условия —
IP
. -
Условия на IP —
IP принадлежит региону
. -
Выберите регион, в котором ваш сервис не работает. Например,
CN
,US
,IN
.Чтобы добавить еще регион, нажмите кнопку + или.
Совет
Если ваш сервис работает только в некоторых регионах, выберите условие
IP не принадлежит региону
. В списке укажите целевой регион, например,RU
. Трафик из других регионов будет блокироваться.Уточнить регион по IP-адресу можно на сайте ipinfo.io
или с помощью ASN провайдера . -
-
Нажмите кнопку Добавить.
Настройте разрешающее правило для капчи
Разрешающее правило для SmartCaptcha необходимо, когда для базового правила по умолчанию установлено действие Запретить
и запросы отправляются на проверку в SmartCaptcha.
- Нажмите кнопку
Добавить правило. - Введите имя правила, например
allow-captcha
. - Задайте Приоритет выше, чем у правил, которые отправляют запросы на капчу.
- Включите опцию Только логирование.
- Укажите параметры правила:
- Тип —
Базовое
. - Действие —
Разрешить
. - Трафик —
При условии
. - Условия —
Request URI
. - Request path —
Соответствует регулярному выражению
. - Введите выражение
/(captcha_smart.*\.(css|js)|showcaptcha|checkcaptcha)
.
- Тип —
- Нажмите кнопку Добавить.
Проверьте порядок выполнения правил
Правила в профиле безопасности применяются к трафику согласно приоритету: чем меньше число, тем выше приоритет. Порядок выполнения правил приведен в таблице.
Приоритет | Имя правила | Действие | Описание правила |
---|---|---|---|
8000 | allow-captcha | Разрешить | Базовое для капчи |
9000 | allow-by-list | Разрешить | Базовое для белых IP-адресов |
9100 | block-by-list | Запретить | Базовое для черных IP-адресов |
9200 | block-by-geo | Запретить | Базовое по регионам |
900000 | api-protection | Защита API | Smart Protection для публичного API |
999900 | sp-rule-1 | Полная защита | Smart Protection из готового шаблона |
1000000 | Разрешить | Базовое по умолчанию |
Для базового правила по умолчанию устанавливается действие Разрешить
, пока остальные правила находятся в режиме Только логирование
. При переключении правил в боевой режим установите базовому правилу по умолчанию действие Запретить
.
Подключите профиль безопасности к ресурсам
Чтобы подключить виртуальный хост в сервисе Application Load Balancer:
-
Если балансировщик управляется Ingress-контроллером Application Load Balancer, используйте аннотацию ресурса Ingress.
-
Если балансировщик управляется вами, в разделе
Профили безопасности выберите созданный профиль. -
Справа сверху нажмите
Подключить к хосту. -
В открывшемся окне последовательно выберите:
- Балансировщик.
- HTTP-роутер.
- Виртуальный хост. Вы можете подключить профиль безопасности сразу к нескольким хостам.
Чтобы подключить профиль к еще одному L7-балансировщику, нажмите Добавить балансировщик.
-
Нажмите Подключить.
На вкладке Подключенные хосты появится подключенный виртуальный хост.
Чтобы подключить API-шлюз:
- В разделе
Профили безопасности скопируйте идентификатор нужного профиля. - При создании API-шлюза или в спецификации уже созданного API-шлюза задайте расширение x-yc-apigateway:smartWebSecurity.
- Укажите в расширении скопированный идентификатор.
Чтобы подключить домен:
- В разделе
Домены выберите нужный домен.
Защита доменов → - В меню сверху нажмите
Подключить профиль безопасности и выберите профиль безопасностиsite-protection
.
Проверьте профиль безопасности в режиме логирования
Примечание
Оставьте правила в режиме Только логирование на несколько дней. Это поможет найти ложные срабатывания, при этом не остановит работу вашего сервиса.
Чтобы посмотреть работу правил в профиле безопасности, изучите логи.
- Убедитесь, что настроено логирование.
- В списке сервисов выберите Application Load Balancer.
- Выберите балансировщик, к которому привязан профиль безопасности.
-
Выберите раздел Логи:
-
Выберите количество сообщений на одной странице и период, например,
1 час
. -
В строке Запрос укажите запрос на языке фильтрующих выражений и нажмите кнопку Выполнить.
Примеры запросов
-
Показать запросы, для которых сработало правило Smart Protection с отправкой на капчу (в режиме логирования):
json_payload.smartwebsecurity.dry_run_matched_rule.rule_type = SMART_PROTECTION and json_payload.smartwebsecurity.dry_run_matched_rule.verdict = CAPTCHA
-
Аналогичный запрос без режима логирования:
json_payload.smartwebsecurity.matched_rule.rule_type = SMART_PROTECTION and json_payload.smartwebsecurity.matched_rule.verdict = CAPTCHA
-
Показать запросы, заблокированные базовыми правилами с любыми условиями (в режиме логирования):
json_payload.smartwebsecurity.dry_run_matched_rule.rule_type = RULE_CONDITION and json_payload.smartwebsecurity.matched_rule.verdict = DENY
-
Аналогичный запрос без режима логирования:
json_payload.smartwebsecurity.matched_rule.rule_type = RULE_CONDITION and json_payload.smartwebsecurity.matched_rule.verdict = DENY
-
-
- Убедитесь, что настроено логирование.
- В списке сервисов выберите API Gateway.
- Выберите API-шлюз, к которому привязан профиль безопасности.
-
Выберите раздел Логи:
-
Выберите количество сообщений на одной странице и период, например,
1 час
. -
В строке Запрос укажите запрос на языке фильтрующих выражений и нажмите кнопку Выполнить.
Примеры запросов
-
Показать запросы, для которых сработало правило Smart Protection с отправкой на капчу (в режиме логирования):
json_payload.smartwebsecurity.dry_run_matched_rule.rule_type = SMART_PROTECTION and json_payload.smartwebsecurity.dry_run_matched_rule.verdict = CAPTCHA
-
Аналогичный запрос без режима логирования:
json_payload.smartwebsecurity.matched_rule.rule_type = SMART_PROTECTION and json_payload.smartwebsecurity.matched_rule.verdict = CAPTCHA
-
Показать запросы, заблокированные базовыми правилами с любыми условиями (в режиме логирования):
json_payload.smartwebsecurity.dry_run_matched_rule.rule_type = RULE_CONDITION and json_payload.smartwebsecurity.matched_rule.verdict = DENY
-
Аналогичный запрос без режима логирования:
json_payload.smartwebsecurity.matched_rule.rule_type = RULE_CONDITION and json_payload.smartwebsecurity.matched_rule.verdict = DENY
-
-
- Убедитесь, что настроено логирование.
- В списке сервисов выберите Smart Web Security.
- На панели слева выберите Защита доменов.
- Выберите прокси-сервер, к которому привязан профиль безопасности.
-
Выберите раздел Логи:
-
Выберите количество сообщений на одной странице и период, например,
1 час
. -
В строке Запрос укажите запрос на языке фильтрующих выражений и нажмите кнопку Выполнить.
Примеры запросов
-
Показать запросы, для которых сработало правило Smart Protection с отправкой на капчу (в режиме логирования):
json_payload.smartwebsecurity.dry_run_matched_rule.rule_type = SMART_PROTECTION and json_payload.smartwebsecurity.dry_run_matched_rule.verdict = CAPTCHA
-
Аналогичный запрос без режима логирования:
json_payload.smartwebsecurity.matched_rule.rule_type = SMART_PROTECTION and json_payload.smartwebsecurity.matched_rule.verdict = CAPTCHA
-
Показать запросы, заблокированные базовыми правилами с любыми условиями (в режиме логирования):
json_payload.smartwebsecurity.dry_run_matched_rule.rule_type = RULE_CONDITION and json_payload.smartwebsecurity.matched_rule.verdict = DENY
-
Аналогичный запрос без режима логирования:
json_payload.smartwebsecurity.matched_rule.rule_type = RULE_CONDITION and json_payload.smartwebsecurity.matched_rule.verdict = DENY
-
-
Подробное описание работы с логами см. в разделе Настроить логирование.
После тестирования правил внесите необходимые корректировки и снова проверьте их работу в режиме Только логирование.
Проверьте профиль безопасности в реальном режиме
Когда вы убедитесь, что правила отрабатывают корректно:
- Отключите режим Только логирование для всех правил профиля безопасности.
- Назначьте базовому правилу по умолчанию действие
Запретить
.
Проверьте работу правил в логах и на графиках мониторинга:
- В списке сервисов выберите Smart Web Security.
- Выберите раздел Мониторинг.
- Посмотрите информацию на графиках:
- Denied by Security Profile RPS — количество входящих запросов в секунду, которые были проверены и заблокированы профилем безопасности.
- Redirected to SmartCaptcha RPS — количество входящих запросов в секунду, направленных в SmartCaptcha для дополнительной верификации.
Подробное описание графиков см. в разделе Мониторинг в Smart Web Security.
Настройте ограничение нагрузки
После настройки и тестирования профиля безопасности задайте ограничения для количества запросов. Это сохранит ваш сервис работоспособным при случайных скачках трафика или внезапном увеличении количества запросов при DDoS-атаках.
Ограничение запросов настраивается в профиле Advanced Rate Limiter (ARL). Он работает после профиля безопасности, проверяя только трафик, прошедший первичную проверку. В отличие от правил в профиле безопасности, правила ARL могут срабатывать одновременно. При этом к трафику применяется правило с более высоким приоритетом.
Чтобы задать ограничение запросов, сначала определите типовую нагрузку на ваш сервис. Если вы используете L7-балансировщик, это можно сделать в сервисе Application Load Balancer, в разделе Мониторинг. На графике RPS отображается общее количество входящих запросов в секунду, поступающих на балансировщик. Для лимита запросов устанавливайте значение с небольшим запасом. Можно задать лимит не на весь трафик, а по определенным условиям. Например, по региону, диапазону IP-адресов или по списку IP-адресов, по адресу запроса и так далее.
Создайте профиль ARL
- В консоли управления
выберите каталог, в котором находится профиль безопасности. - В списке сервисов выберите Smart Web Security.
- На панели слева выберите
Профили ARL и нажмите Создать профиль ARL. - Введите имя профиля, например
arl-site-protection
. - Нажмите Создать.
Настройте правила ARL
-
На странице профиля ARL нажмите
Добавить правило. -
Введите имя правила, например
arl-rule-1
. -
В поле Приоритет задайте приоритет выполнения правила, например
1000
.Поскольку правила ARL выполняются после всех правил профиля безопасности, этот приоритет действует только на профиль ARL и не пересекается с приоритетом в профиле безопасности.
-
Включите режим
dry-run (только логирование)
. -
В блоке Условия на трафик выберите
Весь трафик
илиПри условии
. -
(Опционально) Задайте условия на трафик, по которым будет применяться правило.
-
В блоке Подсчет запросов выберите, как считать запросы для применения лимита:
Без группировки
— подсчет каждого запроса в отдельности;По характеристикам
— подсчет количества групп запросов, объединенных одной или несколькими характеристиками.
- (Опционально) Включите опцию Учитывать регистр, чтобы характеристики с одинаковыми значениями, но в разном регистре, попадали в разные группы.
-
Укажите лимит запросов и выберите промежуток времени, например,
1000
за1
минуту. -
Нажмите Сохранить правило.
Добавьте профиль ARL к профилю безопасности
- На панели слева выберите Профили безопасности.
- Откройте профиль безопасности
site-protection
. - Нажмите кнопку
Редактировать. - В списке профилей ARL выберите
arl-site-protection
. - Нажмите Сохранить.
Проверьте работу правил ARL
Для правил ARL обычно достаточно одного тестирования, после этого можно включать защиту в боевой режим. Но в некоторых случаях может потребоваться более длительное тестирование и корректировка правил.
Для выполнения нагрузочного тестирования можно воспользоваться сервисом Load Testing. Подробнее о настройке нагрузки по протоколу HTTP см. HTTPS-тест с постоянной нагрузкой с помощью Phantom.
-
Откройте L7-балансировщик, API-шлюз или прокси-сервер, к которому привязан профиль безопасности.
-
Выберите раздел Логи.
-
В строке Запрос укажите запрос для поиска правил ARL и нажмите Выполнить.
Примеры запросов:
- Показать запросы, заблокированные правилами профиля ARL (в режиме логирования):
json_payload.smartwebsecurity.dry_run_advanced_rate_limiter.verdict = DENY
- Аналогичный запрос без режима логирования:
json_payload.smartwebsecurity.advanced_rate_limiter.verdict = DENY
- Показать запросы, заблокированные правилами профиля ARL (в режиме логирования):
После отключения режима Только логирование проверьте работу профиля по логам и графикам мониторинга.
- В списке сервисов выберите Smart Web Security.
- Выберите раздел Мониторинг.
- Посмотрите информацию на графиках:
- Allowed by ARL Profile RPS — количество входящих запросов в секунду, которое не превышает лимит в профиле ARL.
- Denied by ARL Profile RPS — количество входящих запросов в секунду, превысивших лимит профиля ARL и заблокированных.
Настройте Web Application Firewall
Web Application Firewall (WAF) защищает от эксплуатации различных уязвимостей веб-приложений и требует тонкой настройки, исходя из особенностей вашего сервиса.
При создании профиля WAF в него добавляется предустановленный набор правил OWASP Core Ruleset
Чтобы оптимизировать работу Smart Web Security, можно настраивать проверку WAF только для определенных маршрутов, а не для всего трафика.
Профиль WAF подключается к профилю безопасности в виде правила, наряду с базовыми правилами и Smart Protection. Правила WAF должны иметь более высокий приоритет, чем правила Smart Protection. Если условия на входящий трафик для правила WAF и Smart Protection одинаковые, Smart Protection можно отключить, поскольку согласно архитектуре сервиса до проверки правилом WAF всегда отрабатывает правило Smart Protection.
В профиле WAF нужно настроить два параметра:
-
Уровень паранойи — определяет количество активных правил. Чем выше уровень, тем больше проверок. Первый уровень паранойи соответствует наиболее выверенному набору правил, которые дают наименьшее число ложноположительных срабатываний. Начинайте с первого уровня в тестовом режиме, постепенно повышая его.
-
Порог аномальности — совокупный балл опасности запроса. Баллы добавляются за каждое сработавшее правило, и при превышении порога запрос блокируется. Начинайте настройку с порога
25
и постепенно его снижайте.Любое правило, которое вы считаете критичным для сервиса, можно сделать блокирующим. Тогда запрос, попавший под это правило, будет остановлен независимо от общего балла.
Чтобы избежать ложных срабатываний для вашего сервиса, можно создать исключения для всех или отдельных правил.
Создайте профиль WAF
- В консоли управления
выберите каталог, в котором находится профиль безопасности. - В списке сервисов выберите Smart Web Security.
- Перейдите на вкладку Профили WAF и нажмите Создать профиль WAF.
- Введите имя профиля, например
waf-site-protection
. - По умолчанию в профиле WAF включен набор базовых правил OWASP Core Rule Set
. Чтобы посмотреть правила в наборе, нажмите на строку с его описанием. - Нажмите Создать.
Настройте набор базовых правил
-
На странице профиля WAF нажмите Настроить набор базовых правил.
-
Установите Порог аномальности — суммарную аномальность сработавших правил, при которой запрос будет заблокирован. Например
Умеренный — 25 и выше
.Рекомендуется начинать с порога аномальности
25
и постепенно снижать его до5
. Чтобы снизить порог аномальности, отработайте ложные срабатывания WAF на легитимные запросы. Для этого подберите правила из базового набора и настройте правила-исключения. -
Установите Уровень паранойи —
Только 1
.Уровень паранойи классифицирует правила по степени агрессивности. Чем выше уровень паранойи, тем лучше уровень защиты, но и больше вероятность ложных срабатываний WAF.
-
Проверьте включенные в набор правила, при необходимости включите дополнительные или уберите ненужные. При работе с правилами обращайте внимание на значение их аномальности и уровень паранойи.
-
При необходимости назначьте одно или несколько правил блокирующими, нажав
справа от правила. Запрос, соответствующий такому правилу, будет заблокирован независимо от порога аномальности.
Создайте правило-исключение
-
Перейдите на вкладку
Правила-исключения и нажмите Создать правило-исключение. -
Введите имя правила-исключения, например
exception-rule-1
. -
В блоке Область применения укажите правила из базового набора, для которых будет срабатывать исключение. Вы можете выбрать
Все правила
или указать конкретные правила. -
В блоке Условия на трафик выберите условия для срабатывания правила-исключения.
Если оставить поле Условия пустым, правило-исключение будет применено ко всему трафику.
-
Нажмите Создать.
Добавьте профиль WAF к профилю безопасности
- На панели слева выберите Профили безопасности.
- Откройте профиль безопасности
site-protection
. - Нажмите кнопку
Добавить правило. - Введите имя правила, например
waf-rule-1
. - Укажите приоритет выполнения правила выше, чем у правил Smart Protection. Например,
1111
. - Включите опцию Только логирование.
- Выберите Тип —
Web Application Firewall
. - В списке профилей WAF выберите
waf-site-protection
.
Проверьте работу правил WAF
-
Откройте L7-балансировщик, API-шлюз или прокси-сервер, к которому привязан профиль безопасности.
-
Выберите раздел Логи.
-
В строке Запрос укажите запрос для поиска правил WAF и нажмите Выполнить.
Примеры запросов:
- Показать запросы, заблокированные по профилю WAF — правилами WAF из профиля безопасности (в режиме логирования):
json_payload.smartwebsecurity.dry_run_matched_rule.rule_type = WAF and json_payload.smartwebsecurity.matched_rule.verdict = DENY
- Аналогичный запрос без режима логирования:
json_payload.smartwebsecurity.matched_rule.rule_type = WAF and json_payload.smartwebsecurity.matched_rule.verdict = DENY
- Показать запросы, заблокированные по профилю WAF — правилами WAF из профиля безопасности (в режиме логирования):
Поскольку WAF настраивается индивидуально под особенности каждого веб-сервиса, тестируйте WAF в режиме логирования не менее недели. На этом этапе будет много ложных срабатываний, отслеживайте их в логах и корректируйте параметры правил. Например, при использовании HTTP/2 неправильно срабатывает правило с идентификатором id920280
, его можно сразу отключить. В случае с HTTP/1.1 это правило работает корректно.
После того как WAF будет настроен и переведен в боевой режим, регулярно проверяйте работу правил по логам и графикам мониторинга. Это позволит отследить нетипичные ситуации и донастроить защиту под ваше веб-приложение.
Дальнейшая настройка политик безопасности
При каждом изменении или добавлении новых правил для профилей безопасности, WAF и ARL включайте режим Только логирование. Активируйте правило только после того, как логи подтвердят его корректную работу. Это поможет избежать ложных срабатываний и обеспечит стабильную работу вашего веб-приложения.