Как начать работать с Yandex Smart Web Security
Smart Web Security позволяет защитить инфраструктуру от информационных угроз на прикладном уровне L7 модели OSI. Например, DDoS-атак, ботов, SQL-инъекций. Дополнительно можно подключить защиту от DDoS-атак на уровнях L3 и L4 с помощью Yandex DDoS Protection.
Smart Web Security — это набор инструментов для защиты инфраструктуры разного уровня сложности и масштаба. Защита заключается в очистке входящего трафика от вредоносного. Трафик проверяется правилами и условиями фильтрации в профиле безопасности. Очищенный трафик можно дополнительно обработать правилами профиля ARL, чтобы снизить нагрузку на приложение.
Профиль безопасности может содержать:
- Базовые правила — для простой фильтрации трафика по заданным условиям.
- Правила Smart Protection — для автоматической защиты от DDoS-атак при помощи алгоритмов машинного обучения и поведенческого анализа.
- Правила профиля WAF — для защиты от эксплуатации уязвимостей приложения. Сейчас можно подключить набор OWASP Core Rule Set
(CRS), который блокирует множество известных угроз, например SQL-инъекции и командные инъекции, межсайтовый скриптинг и другие. - Встроенную Yandex SmartCaptcha — для проверки типа CAPTCHA
от ботов и спама. - Списки фильтрации IP-адресов — для разрешения или блокировки запросов от указанных IP-адресов.
Профиль ARL содержит правила для ограничения количества запросов к защищаемому ресурсу по различным условиям.
Профиль безопасности можно подключить к разным типам ресурсов:
- Виртуальный хост или Ingress-контроллер для защиты ресурсов, использующих Yandex Application Load Balancer.
- API-шлюз API Gateway для защиты API ваших приложений.
- Домен для защиты вашего сайта или веб-приложения, расположенного в Yandex Cloud или на других платформах.
Порядок настройки
- Подготовьте облако к работе
- Создайте и настройте защищаемый ресурс
- Создайте и проверьте профиль безопасности
- Подключите профиль безопасности к защищаемому ресурсу
- Посмотрите работу профиля безопасности
- (Опционально) Создайте и подключите профиль WAF
- (Опционально) Создайте и подключите профиль ARL
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Создайте и настройте защищаемый ресурс
Application Load Balancer равномерно распределяет входящий трафик между узлами, что позволяет избежать перегрузки и повысить отказоустойчивость. Если у вас еще не настроен L7-балансировщик, вы можете развернуть тестовую инфраструктуру.
API-шлюз — единая точка входа для API различных сервисов, которая позволяет управлять запросами, маршрутизацией, аутентификацией и так далее. Если у вас еще не настроен API-шлюз, вы можете развернуть шлюз с тестовой спецификацией.
Домен — сервер, сайт, приложение, которое обрабатывает внешние запросы по веб-адресу. Для защиты домена Smart Web Security предоставляет прокси-сервер с балансировкой нагрузки, анализом и маршрутизацией запросов. А также базовой защитой от DDoS.
На прокси-сервере установлено ограничение MTU для всех пакетов — 1450 байт.
Примечание
Функциональность защиты внешних доменов находится на стадии Preview.
Подготовьте данные о ресурсе
- Адрес домена, на котором работает веб-приложение. У вас должен быть доступ к кабинету управления доменом, чтобы изменить А-запись.
- 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-адрес прокси-сервера и доверенные адреса Yandex Cloud. Эти данные потребуются на следующем шаге.
Настройте вашу инфраструктуру
-
Зайдите в панель управления DNS на сайте вашего хостинг-провайдера или регистратора доменов.
-
Добавьте А-запись с параметрами:
Имя хоста
—адрес вашего домена (example.com)
,Значение
—IP-адрес прокси-сервера
.
Эта запись перенаправляет запросы, которые приходят на ваш домен, на IP-адрес прокси-сервера.
-
В настройках вашего сервера запретите все соединения и разрешите только соединения для IP-адресов Yandex Cloud.
Проверьте статус вашего ресурса
-
В разделе Прокси-сервер выберите созданный прокси-сервер.
-
Перейдите в раздел Домены и выберите созданный домен.
-
В разделе Целевые ресурсы проверьте, что ваш ресурс находится в статусе Healthy.
Если это не так, прокси-сервер не может соединиться с вашим ресурсом. Проверьте адрес вашего веб-сервера и настройки сети. Убедитесь, что к веб-серверу разрешен доступ с IP-адресов Yandex Cloud.
-
На панели слева проверьте, что ваш домен находится в статусе Healthy.
Если это не так, проверьте адрес домена и А-запись, а также валидность сертификата.
Создайте и проверьте профиль безопасности
Создайте профиль безопасности
Примечание
Чтобы сделать вашу защиту более эффективной, мы используем информацию об HTTP-запросах для развития моделей машинного обучения (ML). Вы можете отключить использование этой информации в консоли управления
-
В консоли управления
выберите каталог, в котором находятся защищаемые ресурсы. -
В списке сервисов выберите Smart Web Security.
-
Нажмите Создать профиль и выберите По преднастроенному шаблону.
Преднастроенный профиль содержит:
- базовое правило по умолчанию, включенное для всего трафика с типом действия
Запретить
; - правило Smart Protection, включенное для всего трафика, с типом действия
Полная защита
.
Совет
Создание преднастроенного профиля с полной защитой Smart Protection является предпочтительным. Рекомендуем использовать его, чтобы обеспечить наибольшую безопасность защищаемого ресурса.
- базовое правило по умолчанию, включенное для всего трафика с типом действия
-
Введите имя профиля, например
test-sp1
. -
В поле Действие для базового правила по умолчанию выберите
Запретить
. -
(Опционально) Включите или отключите использование информации об HTTP-запросах для улучшения моделей машинного обучения в разделе Обучение ML-моделей.
-
Нажмите Создать.
Проверьте настройки профиля безопасности
-
Выберите профиль
test-sp1
, созданный ранее. -
Убедитесь, что на вкладке Правила безопасности есть правило со следующими параметрами:
- Тип —
Smart Protection
. - Действие —
Полная защита
. - Условия —
Весь трафик
.
Это правило отправляет весь трафик, приходящий к защищаемому ресурсу, на автоматическую оценку с помощью алгоритмов машинного обучения и поведенческого анализа. По результатам автоматической оценки:
- Легитимные запросы направляются к защищаемому ресурсу.
- Нелегитимные запросы и атаки блокируются.
- Подозрительные запросы направляются в SmartCaptcha для дополнительной верификации.
- Тип —
Подключите профиль безопасности к ресурсу
Способ подключения зависит от типа ресурса.
-
Чтобы подключить домен:
- В разделе Защита доменов → Домены выберите нужный домен.
- Нажмите Подключить профиль безопасности и выберите профиль.
-
Чтобы подключить виртуальный хост в сервисе Application Load Balancer:
-
Если балансировщик управляется Ingress-контроллером Application Load Balancer, используйте аннотацию ресурса Ingress.
-
Если балансировщик управляется вами, в разделе Профили безопасности выберите созданный профиль.
-
Справа сверху нажмите
Подключить к хосту. -
В открывшемся окне выберите:
- Балансировщик.
- HTTP-роутер.
- Виртуальный хост. Вы можете подключить профиль безопасности сразу к нескольким хостам.
Чтобы подключить профиль к еще одному L7-балансировщику, нажмите Добавить балансировщик.
-
Нажмите Подключить.
На вкладке Подключенные хосты появится подключенный виртуальный хост.
-
-
Чтобы подключить API-шлюз:
- В разделе Профили безопасности скопируйте идентификатор нужного профиля.
- При создании API-шлюза или в спецификации уже созданного API-шлюза задайте расширение x-yc-apigateway:smartWebSecurity.
- Укажите в расширении скопированный идентификатор.
Посмотрите работу профиля безопасности
- На странице сервиса Smart Web Security на панели слева выберите раздел Мониторинг.
- Посмотрите графики разрешенных и заблокированных запросов.
Создайте и подключите профиль WAF
WAF позволяет использовать наборы правил для защиты веб-приложений от множества информационных атак.
Создайте профиль WAF
- В консоли управления
выберите каталог, в котором вы хотите создать профиль WAF. - В списке сервисов выберите Smart Web Security.
- Перейдите на вкладку Профили WAF и нажмите Создать профиль WAF.
- Введите имя профиля, например
test-waf-profile-1
. - По умолчанию в профиле WAF включен набор базовых правил OWASP Core Rule Set
. Чтобы посмотреть правила в наборе, нажмите на строку с его описанием. - Нажмите Создать.
Настройте набор базовых правил
-
На открывшейся обзорной странице профиля WAF нажмите Настроить набор базовых правил.
-
Установите необходимый Порог аномальности — суммарную аномальность сработавших правил, при которой запрос будет заблокирован, например
Умеренный — 25 и выше
.Рекомендуется начинать с порога аномальности
25
и постепенно снижать его до5
. Чтобы снизить порог аномальности, отработайте ложные срабатывания WAF на легитимные запросы. Для этого подберите правила из базового набора и настройте правила-исключения. Также для тестирования разных порогов аномальности используйте в профиле безопасности режим Только логирование (dry-run). -
Установите необходимый Уровень паранойи, например
2 и ниже
.Уровень паранойи классифицирует правила по степени агрессивности. Чем выше уровень паранойи, тем лучше уровень защиты, но и больше вероятность ложных срабатываний WAF.
-
Проверьте включенные в набор правила, при необходимости включите дополнительные или уберите ненужные. При работе с правилами обращайте внимание на значение их аномальности и уровень паранойи.
Любое правило из набора можно сделать блокирующим. Запрос, соответствующий таком правилу, будет заблокирован независимо от установленного порога аномальности. Чтобы сделать правило блокирующим, нажмите
Создайте правило-исключение
-
Перейдите на вкладку
Правила-исключения и нажмите Создать правило-исключение. -
Введите имя правила-исключения, например
exception-rule-1
. -
В блоке Область применения укажите правила из базового набора, для которых будет срабатывать исключение. Вы можете выбрать
Все правила
или указать конкретные. -
В блоке Условия на трафик выберите условия для срабатывания правила-исключения.
Если оставить поле Условия пустым, правило-исключение будет применено ко всему трафику.
-
Нажмите Создать.
Подключите профиль WAF к профилю безопасности
- Перейдите на вкладку
Профили безопасности. - В списке выберите профиль безопасности, к которому вы хотите подключить профиль WAF, например
test-sp1
. - Нажмите
Добавить правило. - Введите имя правила, например
waf-rule-1
. - В поле Приоритет задайте значение выше, чем у правил Smart Protection, уже имеющихся в профиле безопасности, например
888800
. - (Опционально) Чтобы протестировать профиль WAF и отработать ложные срабатывания на легитимные запросы, используйте в профиле безопасности режим Только логирование (dry-run).
- В поле Тип правила выберите
Web Application Firewall
. - В поле Профиль WAF выберите
test-waf-profile-1
, созданный ранее. - В поле Действие выберите
Полная защита
. - При необходимости задайте условия для сопоставления трафика.
- Нажмите Добавить.
Создайте и подключите профиль ARL
ARL позволяет устанавливать лимиты на количество запросов к защищаемому ресурсу, чтобы избежать чрезмерной нагрузки.
Создайте профиль ARL
- В консоли управления
выберите каталог, в котором вы хотите создать профиль ARL. - В списке сервисов выберите Smart Web Security.
- Перейдите на вкладку
Профили ARL и нажмите Создать профиль ARL. - Введите имя профиля, например
test-arl-profile-1
. - При необходимости добавьте описание профиля и метки.
- Нажмите Создать.
Настройте правила
-
На открывшейся обзорной странице профиля ARL нажмите Добавить правило.
-
Введите имя правила, например
arl-rule-1
. -
В поле Приоритет задайте приоритет выполнения правила в рамках профиля ARL, например
1000
. -
(Опционально) Чтобы протестировать правило ARL, включите режим Только логирование (Dry run). В этом режиме запросы блокироваться не будут.
-
В блоке Условия на трафик выберите
Весь трафик
илиПри условии
. -
Чтобы задать условия на трафик, в списке Условия выберите один или несколько пунктов:
IP
— IP-адрес, диапазон адресов, регион IP-адресов или список адресов;HTTP header
— строка в заголовке HTTP;Host
— домен, на который пришел запрос;HTTP method
— метод запроса;Cookie
— строка в заголовке cookie.
-
В блоке Подсчет запросов выберите, как считать запросы для применения лимита:
Без группировки
— подсчет каждого запроса в отдельности;По характеристикам
— подсчет количества групп запросов, объединенных одной или несколькими характеристиками.
-
Выберите характеристику для группировки:
Request path
— путь запроса;HTTP method
— метод запроса;IP адрес
— IP-адрес, с которого пришел запрос;Регион
— регион, которому принадлежат IP-адреса запросов;Host
— домен, на который пришел запрос;HTTP cookie
— строка в заголовке cookie;HTTP header
— строка в заголовке HTTP;Query params
— строка в параметрах запроса.
-
(Опционально) Включите опцию Учитывать регистр, чтобы характеристики с одинаковыми значениями, но в разном регистре попадали в разные группы.
-
Укажите лимит запросов и выберите промежуток времени, например
1000
запросов за1
минуту. -
Нажмите Сохранить правило.
Подключите профиль ARL к профилю безопасности
- Перейдите на вкладку
Профили безопасности. - В списке выберите профиль безопасности, к которому вы хотите подключить профиль ARL, например
test-sp1
. - Нажмите
Редактировать. - В списке Профиль ARL выберите
test-arl-profile-1
, созданный ранее. - Нажмите Сохранить.