Создать профиль безопасности
Примечание
Чтобы сделать вашу защиту более эффективной, мы используем информацию об 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.
-
-
(опционально) Настройте опцию Анализировать тело запроса (макс. 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— после проверки подозрительные запросы блокируются.
-
-
В блоке Условия на трафик определите трафик, для анализа которого будет использоваться правило:
-
Весь трафик— правило будет использоваться для анализа всего трафика. -
При условии— правило будет использоваться для анализа трафика, заданного в поле Условия:IP— IP-адрес, диапазон адресов, регион адресов или список адресов;HTTP header— строка в заголовке HTTP;Request URI— путь запроса;Host— домен, на который пришел запрос;HTTP method— метод запроса;Cookie— строка в заголовке cookie.
Вы можете задать несколько условий. Для этого в поле Условия выберите все необходимые типы условий.
Вы также можете задать несколько условий одного типа. Для этого в секции с нужным условием нажмите кнопку
и или или.Чтобы удалить условие, нажмите
.
-
-
Нажмите кнопку Добавить.
-
-
Если для базового правила по умолчанию установлено действие
Запретитьи запросы отправляются на проверку в 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
Результат:
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 параметры ресурсов, которые необходимо создать:
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, см. в документации провайдера. -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
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.