Создать профиль безопасности
Примечание
Чтобы сделать вашу защиту более эффективной, мы используем информацию об HTTP-запросах для развития моделей машинного обучения (ML). Вы можете отключить использование этой информации в консоли управления
Для работы с профилем безопасности, который подключается к балансировщику, потребуется сервисный аккаунт с ролями monitoring.editor, smart-web-security.admin, certificate-manager.admin и logging.writer. Подробнее в разделе Назначение роли сервисному аккаунту.
-
В консоли управления
выберите каталог, в котором вы хотите создать профиль безопасности. -
Перейдите
в сервис Smart Web Security. -
На панели слева выберите
Профили безопасности. -
Нажмите кнопку Создать профиль.
-
Выберите один из вариантов создания:
-
По преднастроенному шаблону (рекомендуется).
Преднастроенный профиль содержит:
- базовое правило по умолчанию, включенное для всего трафика с типом действия
Разрешить; - правило Smart Protection
sp-rule-1, включенное для всего трафика, с типом действияПолная защита.
- базовое правило по умолчанию, включенное для всего трафика с типом действия
-
С чистого листа. Профиль содержит только базовое правило по умолчанию, включенное для всего трафика.
-
-
Введите имя профиля.
-
(Опционально) Введите описание.
-
(Опционально) Добавьте профилю метки.
-
В поле Действие для базового правила по умолчанию выберите, что делать с трафиком, который не попал под условия других правил:
ЗапретитьилиРазрешить. -
Выберите или создайте профиль ARL, чтобы установить лимиты на количество запросов.
-
Выберите или создайте капчу Yandex SmartCaptcha для проверки подозрительных запросов:
-
По умолчанию— контролируется на стороне Yandex Cloud, параметры капчи:- Основное задание — Чекбокс.
- Дополнительное задание —
Силуэты. - Сложность дополнительного задания — Легкая.
- Внешний вид — Стандартный.
Плата за использование капчи
По умолчаниювключена в стоимость Smart Web Security. -
Собственная капча— вы можете настроить сложность, типы основного и дополнительного заданий, а также внешний вид капчи.Примечание
Чтобы использовать собственную капчу, выберите в ее настройках опцию Отключить проверку домена.
Плата за использование собственной капчи взимается в соответствии с тарификацией SmartCaptcha.
-
-
Выберите или создайте шаблон ответа, который будет возвращаться клиенту при срабатывании любого правила в профиле. По умолчанию используется стандартный шаблон Yandex Cloud.
-
(опционально) Настройте опцию Анализировать тело запроса (макс. 8 КБ), выбрав действие при превышении максимального размера:
Не анализировать тело запросаБлокировать запрос
-
(Опционально) Включите Запись логов и настройте логирование:
-
В поле Записывать логи в выберите, какие логи будут записываться: Cloud Logging, Audit Trails.
-
Для Cloud Logging выберите или создайте лог-группу Cloud Logging, в которую будут записываться логи.
-
Для записи в логи можно выбрать только те запросы, для которых сработали:
- Базовые правила.
- Правила Smart Protection.
- Правила Web Application Firewall.
- Правила Advanced Rate Limiter.
- Все выбранные правила применили действие (вердикт) DENY и CAPTCHA.
- Все выбранные правила применили действие ALLOW (легитимные запросы).
Настройка логирования описана в разделе Настроить логирование через Smart Web Security.
-
-
Нажмите кнопку
Добавить правило. -
В окне создания правила:
-
Введите имя правила.
-
(опционально) Введите описание.
-
Задайте приоритет правила. Добавляемое правило будет иметь более высокий приоритет, чем преднастроенные правила.
Примечание
Чем меньше значение параметра, тем больший приоритет у правила. Приоритеты преднастроенных правил:
- базовое правило по умолчанию —
1000000; - правило Smart Protection с полной защитой —
999900.
Приоритет правил описан в разделе Общие принципы работы правил.
- базовое правило по умолчанию —
-
(опционально) Включите опцию Только логирование (dry run), если вы хотите только фиксировать информацию о трафике, который соответствует заданным условиям, но не применять к нему никаких действий.
-
Выберите тип правила:
-
Базовое — правило, которое по заданным условиям разрешает, запрещает или отправляет трафик в Yandex SmartCaptcha.
-
Smart Protection — правило, которое отправляет трафик на автоматический анализ с помощью алгоритмов машинного обучения и поведенческого анализа. Подозрительные запросы отправляются в Yandex SmartCaptcha для дополнительной верификации.
-
Web Application Firewall — правило, которое подключает набор правил из профиля WAF. Подозрительные запросы отправляются в Yandex SmartCaptcha.
Для правила WAF выберите или создайте профиль WAF.
-
-
Выберите действие:
-
Для базового правила:
Запретить;Разрешить;Показать капчу— будет показана капча, выбранная в профиле безопасности.
-
Для правила Smart Protection или WAF:
Полная защита— после проверки подозрительные запросы отправляются в SmartCaptcha.Защита API— после проверки подозрительные запросы блокируются.
-
-
(Опционально) Выберите или создайте шаблон ответа, который будет возвращаться клиенту при срабатывании правила. По умолчанию используется стандартный шаблон Yandex Cloud.
-
В блоке Условия на трафик определите трафик, для анализа которого будет использоваться правило:
-
Весь трафик— правило будет использоваться для анализа всего трафика. -
При условии— правило будет использоваться для анализа трафика, заданного в поле Условия:IP— IP-адрес, диапазон адресов, регион адресов или список адресов;HTTP header— строка в заголовке HTTP;Request URI— путь запроса;Host— домен, на который пришел запрос;HTTP method— метод запроса;Cookie— строка в заголовке cookie.Bot name— имена легитимных ботов, принадлежащих различным компаниям и сервисам.Bot category— категории верифицированных ботов по их назначению или характеру действий.Verified bot— фильтрация по признаку верификации бота (даилинет).Bot score— фильтрация по уровню роботизированности запроса: от0(самый низкий уровень, человек) до100(самый высокий уровень, бот).FingerPrint— отпечаток SSL/TLS‑соединения.
Вы можете задать несколько условий. Для этого в поле Условия выберите все необходимые типы условий.
Вы также можете задать несколько условий одного типа. Для этого в секции с нужным условием нажмите кнопку
и или или.Чтобы удалить условие, нажмите
.
-
-
Нажмите кнопку Добавить.
-
-
Если для базового правила по умолчанию установлено действие
Запретитьи запросы отправляются на проверку в SmartCaptcha, добавьте разрешающее правило. -
Последовательно добавьте все правила, которые вы хотите задействовать в профиле.
В блоке Правила безопасности в таблице появятся созданные вами правила.
-
(Опционально) Включите или отключите использование информации об HTTP-запросах для улучшения моделей машинного обучения в разделе Обучение ML-моделей.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для создания профиля безопасности:
yc smartwebsecurity security-profile create --help -
Чтобы создать профиль безопасности, выполните команду:
yc smartwebsecurity security-profile create \ --name <имя_профиля_безопасности> \ --description "<описание_профиля>" \ --labels <ключ_метки_1>=<значение_метки_1>,<ключ_метки_2>=<значение_метки_2>,...,<ключ_метки_n>=<значение_метки_n> \ --default-action <действие> \ --captcha-id <идентификатор_капчи> \ --security-rules-file <путь_к_файлу_с_правилами>Где:
-
--name— имя профиля безопасности. Обязательный параметр. Если задать только имя профиля без дополнительных параметров, в профиле безопасности будет создано одно базовое правило. -
--description— текстовое описание профиля безопасности. Необязательный параметр. -
--labels— список меток для добавления в профиль в форматеКЛЮЧ=ЗНАЧЕНИЕ. Необязательный параметр. Например:--labels foo=baz,bar=baz'. -
--default-action— действие, которое следует выполнить для трафика, который не попал под условия других правил. Необязательный параметр. По умолчанию установлено значениеallow, разрешающее все запросы к сервису. Чтобы запретить запросы, установите значениеdeny. -
--captcha-id— идентификатор капчи Yandex SmartCaptcha для проверки подозрительных запросов. Необязательный параметр. -
--security-rules-file— путь к файлу с описанием правил безопасности в формате YAML . Необязательный параметр. Например:security-rules.yaml
- name: rule-condition-deny description: My first security rule. This rule it's just example to show possibilities of configuration. priority: "11111" dry_run: true rule_condition: action: DENY condition: authority: authorities: - exact_match: example.com - exact_match: example.net http_method: http_methods: - exact_match: GET - exact_match: POST request_uri: path: prefix_match: /search queries: - key: firstname value: pire_regex_match: .ivan. - key: lastname value: pire_regex_not_match: .petr. headers: - name: User-Agent value: pire_regex_match: .curl. - name: Referer value: pire_regex_not_match: .bot. source_ip: ip_ranges_match: ip_ranges: - 1.2.33.44 - 2.3.4.56 ip_ranges_not_match: ip_ranges: - 8.8.0.0/16 - 10::1234:1abc:1/64 geo_ip_match: locations: - ru - es geo_ip_not_match: locations: - us - fm - gb - name: rule-condition-allow description: Let's show how to whitelist IP. priority: "2" rule_condition: action: ALLOW condition: source_ip: ip_ranges_match: ip_ranges: - 44.44.44.44-44.44.44.45 - 44.44.44.77 - name: smart-protection-full description: Enable smart protection. Allow to show captcha on /search prefix. priority: "11" smart_protection: mode: FULL condition: request_uri: path: prefix_match: /search - name: smart-protection-api description: Enable smart protection with mode API. We are not expect to see captcha on /api prefix. priority: "10" smart_protection: mode: API condition: request_uri: path: prefix_match: /apiГде:
priority— приоритет правила.
Результат:
id: fev6q4qqnn2q******** folder_id: b1g07hj5r6i******** cloud_id: b1gia87mbaom******** name: my-sample-profile description: "my description" labels: label1=value1,label2=value2 default_action: DENY created_at: "2024-07-25T19:21:05.039610Z" -
Подробнее о команде yc smartwebsecurity security-profile create читайте в справочнике CLI.
Terraform
Terraform распространяется под лицензией Business Source License
Подробная информация о ресурсах провайдера в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:
resource "yandex_sws_security_profile" "demo-profile-simple" { name = "<имя_профиля_безопасности>" default_action = "DENY" captcha_id = "<идентификатор_капчи>" advanced_rate_limiter_profile_id = "<идентификатор_ARL_профиля>" # Правило Smart Protection security_rule { name = "smart-protection" priority = 99999 smart_protection { mode = "API" } } # Базовое правило security_rule { name = "base-rule-geo" priority = 100000 rule_condition { action = "ALLOW" condition { source_ip { geo_ip_match { locations = ["ru", "kz"] } } } } } # Правило c WAF профилем security_rule { name = "waf" priority = 88888 waf { mode = "API" waf_profile_id = "<идентификатор_WAF_профиля>" } } }Где:
-
name— имя профиля безопасности. -
default_action— действие для базового правила по умолчанию. Будет применяться к трафику, который не попал под условия других правил. Возможные значения:ALLOW— разрешает все запросы к сервису,DENY— запрещает. -
captcha_id— идентификатор капчи Yandex SmartCaptcha для проверки подозрительных запросов. Необязательный параметр. -
advanced_rate_limiter_profile_id— идентификатор ARL профиля безопасности. Необязательный параметр. -
security_rule— описание правила безопасности:-
name— имя правила безопасности. -
priority— приоритет правила. Возможные значения — от 1 до 1000000. -
smart_protection— описание правила Smart Protection, включенное для всего трафика, с указанным типом действия в параметреmode.mode— действие правила. Возможные значения:FULL— полная защита (подозрительные запросы отправляются на капчу) илиAPI— защита API (подозрительные запросы блокируются).
-
waf— описание правила Web Application Firewall. Чтобы добавить правило WAF, сначала надо создать профиль WAF. Необязательный блок параметров, содержит:waf_profile_id— идентификатор WAF профиля.
-
Если не указать тип правила
smart_protectionилиwaf, будет создано базовое правило с простой фильтрацией по заданным условиям в блокеrule_condition.Подробнее о параметрах ресурса
yandex_sws_security_profileв документации провайдера. -
-
Создайте ресурсы:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления
yc smartwebsecurity security-profile get <идентификатор_профиля_безопасности>
Воспользуйтесь методом REST API create для ресурса SecurityProfile или вызовом gRPC API SecurityProfileService/Create.