Правила
Правило определяет условия отбора HTTP-запросов и действие, которое применяется к ним. Если запрос соответствует нескольким правилам, итоговое действие определяется их приоритетами.
Инструкции по настройке приведены в разделе Управление правилами.
Типы правил
В сервисе предусмотрены следующие типы правил:
Также существует внутреннее сервисное правило, которое может срабатывать при атаках.
Базовые правила
Базовое правило позволяет управлять доступом по параметрам HTTP-запросов, например IP-адресу клиента, пути запроса или заголовкам. Запросы можно разрешить, запретить или направить на капчу. Например, можно разрешить запросы с доверенных IP-адресов или включить проверку с помощью капчи для страницы входа.
В каждом профиле безопасности есть базовое правило по умолчанию с самым низким приоритетом. Оно разрешает или запрещает запросы, которые не попали под условия других правил профиля.
Правила Smart Protection
Smart Protection анализирует трафик по заданным условиям с помощью алгоритмов машинного обучения и поведенческого анализа. Правило обеспечивает защиту от DDoS на уровне L7 и поддерживает полную защиту и защиту API.
Правила WAF + Smart Protection
Правило Web Application Firewall (WAF) подключает профиль WAF с наборами базовых правил для анализа трафика. Оно также включает Smart Protection и поддерживает те же действия. При подключении WAF отдельное правило Smart Protection для того же трафика не требуется.
Правила Advanced Rate Limiter
Правило Advanced Rate Limiter (ARL) ограничивает количество запросов за определенный промежуток времени. Лимит можно задать для всего трафика или его сегментов.
Правила настраиваются в отдельном профиле ARL, который подключается к профилю безопасности. Доступные действия применяются к запросам сверх лимита.
Действия правил
Доступные действия зависят от типа правила. Запросы, разрешенные всеми правилами и пропущенные к защищаемому ресурсу, называются легитимными.
Для единообразного оформления ответов клиентам при срабатывании правил можно создать собственные шаблоны ответов.
Базовые правила
Для базовых правил можно выбрать действия:
- Запретить — заблокировать запросы.
- Разрешить — пропустить запросы.
- Показать капчу — направить клиента на капчу.
Smart Protection и WAF
Для правил Smart Protection и WAF доступны два режима:
- Полная защита — подозрительные запросы отправляются на одну из проверок: JS Challenge, Cookie Challenge или капчу. Smart Protection автоматически выбирает проверку на основе анализа запроса.
- Защита API — запросы не отправляются на дополнительные проверки, но политики защиты блокируют явные попытки атак. Запрос, который в режиме полной защиты был бы направлен на проверку, в этом режиме может быть пропущен к ресурсу.
Используйте режим Защита API для эндпоинтов:
- мобильных приложений;
- с автоматизированными вызовами;
- с динамической загрузкой контента (
ajax,xhr,iframe).
Advanced Rate Limiter
Для запросов сверх лимита можно выбрать действия:
- Блокировать запросы свыше лимита — блокировать запросы до окончания периода, на который установлен лимит.
- Временно блокировать все запросы — после превышения лимита блокировать запросы на фиксированный период от одной секунды до 24 часов.
- Отправлять на капчу запросы свыше лимита — направить клиента в SmartCaptcha.
При блокировке клиент получает ошибку 429. Капча позволяет проверить запросы сверх лимита без немедленной блокировки.
Важно
Не используйте капчу для HTTP-запросов с динамической загрузкой контента (ajax, xhr, iframe) и запросов к мобильным приложениям.
Проверки JS Challenge, Cookie Challenge и капча
В режиме полной защиты Smart Protection пропускает запрос к ресурсу или автоматически выбирает проверку для подозрительного трафика:
- JS Challenge — автоматически проверяет выполнение JavaScript-кода на стороне клиента.
- Cookie Challenge — автоматически проверяет, может ли клиент сохранить cookie и передать его в следующем запросе.
- Капча — направляет пользователя в SmartCaptcha, где может потребоваться выполнить задание.
В нормальном режиме на капчу направляются только однозначно роботизированные запросы, которые Smart Protection определяет по высокому значению Bot score. Остальные запросы направляются на JS Challenge или Cookie Challenge, либо пропускаются без дополнительной проверки.
Успешное выполнение JS Challenge или Cookie Challenge не доказывает, что запрос отправил человек: автоматизированные браузеры тоже поддерживают JavaScript и cookie. При этом запрет JavaScript или cookie может помешать проверке легитимного клиента.
Настройка капчи
Все правила, которые направляют запросы на капчу, используют капчу из профиля безопасности. Доступны следующие варианты:
-
По умолчанию— контролируется на стороне Yandex Cloud, параметры капчи:- Основное задание —
Чекбокс. - Дополнительное задание —
Силуэты. - Сложность дополнительного задания —
Легкая. - Внешний вид —
Стандартный.
Плата за использование капчи
По умолчаниювключена в стоимость Smart Web Security. - Основное задание —
-
Собственная капча— вы можете настроить сложность, типы основного и дополнительного заданий, а также внешний вид капчи.Примечание
Чтобы использовать собственную капчу, выберите в ее настройках опцию Отключить проверку домена.
Плата за использование собственной капчи взимается в соответствии с тарификацией SmartCaptcha.
Примечание
Если для базового правила по умолчанию установлено действие Запретить и запросы отправляются на проверку в SmartCaptcha, добавьте базовое правило, разрешающее запросы к капче. Адрес разрешенного запроса соответствует регулярному выражению: /tmgrdfrend.*. Установите для правила приоритет выше, чем у правил, которые отправляют запросы на капчу.
Режимы применения правил
Для каждого правила профиля безопасности выбирается набор режимов защиты, в которых оно действует:
- Все режимы (по умолчанию).
- «Повышенная защита» и «Под атакой».
- «Под атакой».
При переключении режима профиля начинает действовать выбранный набор правил.
Режимы применения задаются при добавлении или изменении правила и отображаются в таблице правил профиля.
Общие принципы работы правил
Сначала запросы обрабатываются правилами профиля безопасности. Затем разрешенные запросы проверяются правилами профиля ARL, если он подключен. Приоритеты в этих профилях независимы друг от друга.
Профиль безопасности
Приоритет правила задается числом от 1 до 1000000. Правила, активные в текущем режиме защиты, срабатывают одновременно. Одному запросу могут соответствовать несколько правил. Итоговое действие определяется правилом с наивысшим приоритетом.
Примечание
Чем меньше значение параметра, тем больший приоритет у правила. Приоритеты преднастроенных правил:
- базовое правило по умолчанию —
1000000; - правило Smart Protection с защитой API —
999900.
Назначайте более высокий приоритет:
- правилам, которые разрешают запросы;
- правилам с условиями фильтрации по конкретным параметрам.
Иначе к запросу могут примениться общие правила с более широкими условиями.
Правила в профиле безопасности применяются к трафику согласно приоритету: чем меньше число, тем выше приоритет.
Рекомендуемый порядок приоритетов
- Разрешающее правило для служебных маршрутов капчи.
- Разрешающие правила с условиями на трафик.
- Блокирующие правила с условиями на трафик.
- Правила Smart Protection и WAF + Smart Protection в режиме
Защита APIс условиями на трафик для эндпоинтов, где нельзя показывать капчу. - Правила Smart Protection и WAF + Smart Protection в режиме
Полная защитас условиями на трафик. - Правила Smart Protection и WAF + Smart Protection в режиме
Полная защитана весь трафик.
Пример настройки правил
| Приоритет | Имя правила | Действие | Описание правила |
|---|---|---|---|
| 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 | Разрешить |
Базовое по умолчанию |
Для базового правила по умолчанию устанавливается действие Разрешить, пока остальные правила находятся в режиме Только логирование. При переключении правил в боевой режим установите базовому правилу по умолчанию действие Запретить.
Профиль ARL
Правила ARL могут блокировать запросы, разрешенные профилем безопасности. Если такой трафик не нужно ограничивать, исключите его из условий правил ARL.
Чем меньше число, тем выше приоритет правила ARL. Значения приоритета можно выбирать произвольно. Пример порядка правил:
| Приоритет | Имя правила | Действие | Описание правила |
|---|---|---|---|
| 1000 | arl-rule-1 | Блокировать запросы свыше лимита | Ограничение общей нагрузки на ресурс |
| 2000 | arl-rule-2 | Временно блокировать все запросы | Защита от ботов, парсеров, брутфорса, спама |
| 3000 | arl-rule-3 | Отправлять на капчу запросы свыше лимита | Проверка браузерных клиентов при превышении лимита |
Режим «Только логирование»
Режим Только логирование позволяет проверить условия и приоритеты правил перед включением защиты. Правило записывает в логи информацию о подходящих запросах, но не применяет к ним действие. Для правил ARL фиксируются превышения лимита.
Такие правила не влияют на обработку трафика: применяется следующее подходящее правило по приоритету, для которого включена защита. В частности, правило Smart Protection в режиме Только логирование не обеспечивает защиту от DDoS.
Для правил профиля безопасности поле dry_run_matched_rule_verdict содержит ожидаемое действие правила в режиме Только логирование. Фактическое действие над запросом отражается в поле action. Подробнее о полях логов и фильтрах для правил в режиме логирования.
Сервисное правило
Для усиления защиты от атак Smart Web Security может блокировать вредоносные запросы, даже если профиль безопасности их разрешает. Остальные запросы обрабатываются по настройкам профиля.
При срабатывании сервисного правила в логах появляется отметка sws_service_rule. Примеры логов:
-
В сервисе Smart Web Security:
matched_rule_name: "sws_service_rule", matched_rule_type: "SMART_PROTECTION", matched_rule_verdict: "DENY", -
В сервисе Yandex Application Load Balancer:
"matched_rule": { "dry_run": "false", "rule_name": "sws_service_rule", "rule_type": "SMART_PROTECTION", "verdict": "DENY" }