Создать профиль WAF
-
В консоли управления
выберите каталог, в котором вы хотите создать профиль WAF. -
В списке сервисов выберите Smart Web Security.
-
На панели слева выберите
Профили WAF и нажмите кнопку Создать профиль WAF. -
Введите имя профиля.
-
(опционально) Введите описание.
-
(опционально) Добавьте профилю метки.
-
По умолчанию в профиле WAF включен набор базовых правил OWASP Core Rule Set
. Нажмите на строку с набором правил, чтобы посмотреть правила, которые в него входят. -
(опционально) В блоке Анализ запроса настройте опцию Инспектировать тело запроса:
-
В поле Максимальный размер тела запроса по умолчанию задано значение
8 КБ
. В настоящий момент изменить значение по умолчанию нельзя. -
Выберите действие при превышении максимального размера:
Не анализировать тело запроса
.Блокировать запрос
.
-
-
Нажмите кнопку Создать.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
# В базовом наборе будут активны правила этого уровня паранойи и ниже locals { waf_paranoia_level = <уровень_паранойи> } # Источник данных OWASP Core Rule Set data "yandex_sws_waf_rule_set_descriptor" "owasp4" { name = "OWASP Core Ruleset" version = "4.0.0" } # WAF профиль resource "yandex_sws_waf_profile" "default" { name = "<имя_WAF_профиля>" # Базовый набор правил core_rule_set { inbound_anomaly_score = <порог_аномальности> paranoia_level = local.waf_paranoia_level rule_set { name = "OWASP Core Ruleset" version = "4.0.0" } } # Активируем правила из базового набора, если их уровень паранойи не выше заданного в переменной waf_paranoia_level dynamic "rule" { for_each = [ for rule in data.yandex_sws_waf_rule_set_descriptor.owasp4.rules : rule if rule.paranoia_level <= local.waf_paranoia_level ] content { rule_id = rule.value.id is_enabled = true is_blocking = false } } analyze_request_body { is_enabled = true size_limit = 8 size_limit_action = "IGNORE" } }
Где:
waf_paranoia_level
— уровень паранойи классифицирует правила по степени агрессивности. Чем выше уровень паранойи, тем лучше уровень защиты, но и больше вероятность ложных срабатываний WAF.data "yandex_sws_waf_rule_set_descriptor"
— источник данных Terraform для набора базовых правил. Из источника данных вы можете получить список правил и их идентификаторы.resource "yandex_sws_waf_profile"
— ресурс Terraform для управления WAF профилем.-
name
— имя WAF профиля. -
core_rule_set
— блок базовых правил:-
inbound_anomaly_score
— порог аномальности. Это суммарная аномальность сработавших правил, при которой запрос будет заблокирован. Возможные значения от 2 до 10000. Чем выше заданное значение, тем больше вероятность того, что запрос, удовлетворяющий правилам, является атакой. -
paranoia_level
— уровень паранойи, классифицирует правила по степени агрессивности. Чем выше уровень паранойи, тем лучше защита, но больше вероятность ложных срабатываний. Возможные значения от 1 до 4.Примечание
Уровень паранойи не влияет на включение или отключение правил, он используется только как рекомендация для пользователя включить все правила со значением
paranoia_level
меньше или равно заданному. -
rule_set
— блок с указанием набора правил. Указываетсяname
— имя иversion
— версия набора правил.
-
-
dynamic "rule"
— динамическая активация правил из базового набора, если их уровень паранойи не выше заданного в переменнойwaf_paranoia_level
. Для динамически настроенных правил можно вручную изменить параметры. Например, сделать правило блокирующим или сделать активным правило, у которого уровень паранойи выше, чем указан в переменной.rule_id
— идентификатор правила.is_enabled
— флаг включения или отключения правила.is_blocking
— флаг, который назначает правило блокирующим.
-
analyze_request_body
— блок параметров анализа запроса:is_enabled
— флаг включения инспектирования тела запроса.size_limit
— максимальный размер тела запроса в КБ. Значение по умолчанию 8 КБ. В настоящий момент изменить значение по умолчанию нельзя.size_limit_action
— действие при превышении максимального размера. Возможные значения:IGNORE
— не анализировать тело запроса илиDENY
— блокировать запрос.
-
Более подробную информацию о параметрах ресурса
yandex_sws_waf_profile
в Terraform, см. в документации провайдера . -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления
После создания WAF профиля вы можете настроить набор базовых правил и правил-исключений.
Воспользуйтесь методом REST API create для ресурса WafProfile или вызовом gRPC API WafProfile/Create.