Документация Запланировать пилот

Обновление управляемых правил WAF

2022-05-04 Cloudflare начала обновление с предыдущая версия управляемых правил WAF к новому WAF Managed Rules, что позволило первой группе подходящих зон выполнить миграцию. В настоящее время перейти на WAF Managed Rules могут все зоны, включая партнёрские аккаунты.

Cloudflare постепенно переводит все зоны на новую версию WAF Managed Rules. Вы также можете запустить процесс обновления для зоны вручную в панели управления Cloudflare или через API. Обновление необратимо, после перехода на новую версию WAF Managed Rules вернуться к предыдущей версии нельзя.

Если вы используете старую панель управления, после завершения обновления ваши правила будут отображаться в другом интерфейсе в Безопасность > WAF > Управляемые правила вкладка. Если вы используете новая панель безопасности, ваши обновленные правила будут отображаться в Безопасность > Правила безопасности.

Кроме того, после обновления API управляемых правил WAF перестанут работать.

Основные преимущества

Новая версия WAF Managed Rules предоставляет следующие преимущества по сравнению с предыдущей версией:

Дополнительную информацию о преимуществах WAF Managed Rules можно найти в нашей запись в блоге ↗.


Последствия обновления

Вы сможете обновить все свои зоны, у которых нет WAF overrides на основе URI. После перехода на новый WAF для вашей зоны будет действовать такая же защита.

Большинство настроек конфигурации из предыдущей версии управляемых правил WAF будут перенесены в новую версию, однако некоторые особые настройки, изначально определённые в OWASP ModSecurity Core Rule Set, будут утрачены: при необходимости их нужно будет создать заново в новых WAF Managed Rules.

Для пользователей API: после обновления API для управления предыдущей версией управляемых правил WAF перестанут работать. Для управления новыми WAF Managed Rules необходимо использовать Rulesets API.

Конфигурации, которые будут обновлены

Процесс обновления создаст эквивалентную конфигурацию для следующих настроек управляемых правил WAF:

Конфигурация набора правил OWASP будет частично обновлена. Подробности см. в следующем разделе.

Конфигурации, которые будут потеряны в процессе обновления

Процесс обновления частично перенесёт настройки OWASP ModSecurity Core Rule Set, доступные в предыдущей версии управляемых правил WAF.

Следующие настройки OWASP будут перенесены:

Следующие настройки OWASP будут не быть перенесены, поскольку между правилами в этих двух версиях нет прямого соответствия:

Чтобы заменить эти настройки, вам нужно будет заново настроить Cloudflare OWASP Core Ruleset в WAF Managed Rules в соответствии со своими потребностями, в частности переопределения по тегам и правилам. Дополнительную информацию о настройке нового OWASP Core Ruleset см. в Cloudflare OWASP Core Ruleset.

Конфигурации, которые не позволят выполнить обновление

Если у зоны есть WAF overrides на основе URI (доступно только через API), у вас не будет возможности перейти на WAF Managed Rules. Чтобы перейти на WAF Managed Rules, необходимо:

  1. Удалите все существующие WAF overrides на основе URI с помощью Удаление WAF override операцию.
  2. Выполните процесс обновления, описанный ниже.

Изменения в панели управления Cloudflare

После завершения процесса обновления дашборд Cloudflare покажет ваши правила в:

В отличие от старых управляемых правил WAF, общего переключателя для включения WAF больше нет. Вместо этого каждый управляемый набор правил разворачивается в вашей зоне по отдельности.

Дополнительные сведения о развёртывании WAF Managed Rules в дашборде Cloudflare см. в Развёртывание управляемого набора правил WAF в дашборде.

Изменения API

После завершения обновления API для работы с управляемыми правилами WAF перестанут работать. Это следующие API:

Чтобы работать с WAF Managed Rules, необходимо использовать Rulesets API. Дополнительную информацию о развёртывании WAF Managed Rules через API см. в Развёртывание управляемого набора правил WAF через API (зона).

Изменения в Terraform

После завершения обновления следующие ресурсы Terraform для настройки управляемых правил WAF перестанут работать:

Эти ресурсы поддерживались только в провайдере Terraform Cloudflare до версии 3.35 включительно. Версия 4.x больше не поддерживает эти ресурсы ↗.

Чтобы управлять конфигурацией новых WAF Managed Rules с помощью Terraform, необходимо использовать cloudflare_ruleset ↗ ресурсы.


Подходящие зоны

Фаза 2 (с 2022-09-19)

На этапе 2 обновление доступно всем зонам. Точный порядок обновления зависит от вашего тарифного плана Cloudflare.

Примечание: Зоны, в которых есть WAF overrides на основе URI, которыми можно было управлять только через API, не смогут сразу перейти на новые WAF Managed Rules. Перед миграцией необходимо удалить эти переопределения.

Фаза 1 (с 2022-05-04)

На этапе 1 обновление стало доступно части подходящих зон, которые должны были соответствовать следующим требованиям:


Запустить обновление

Обновление WAF можно запустить в дашборде Cloudflare или через API.

Использование панели управления

  1. Войдите в Панель управления Cloudflare ↗, и выберите свой аккаунт и зону.

  2. A) Если вы используете старую панель управления:

    • Перейдите в Безопасность > WAF > Управляемые правила на вкладке.

    B) Если вы используете новая панель безопасности:

    1. Перейдите в Правила безопасности страницу.

      Перейдите в Правила безопасности ↗
    2. Выберите Перейти к обновлению тарифа для Managed rules.

    Если вы клиент с планом Enterprise, панель управления покажет следующий баннер:

    Баннер обновления, отображаемый клиентам с планом Enterprise.

    Если вы клиент с тарифным планом Professional/Business, панель управления покажет следующий баннер:

    Баннер обновления, отображаемый клиентам с планом Pro/Business.
  3. В баннере обновления выберите Просмотр конфигурации. Этот баннер отображается только в подходящих зонах.

  4. Просмотрите предложенную конфигурацию WAF. Вы можете изменить конфигурацию, например изменение конфигурации управляемых правил WAF или создания исключения чтобы пропускать выполнение наборов правил или отдельных правил.

  5. Когда закончите проверку, выберите Развернуть чтобы развернуть новую конфигурацию WAF Managed Rules.

    Если вы клиент с тарифным планом Professional/Business, Cloudflare развернёт новую конфигурацию WAF, а затем отключит предыдущую версию WAF. Процесс обновления может занять пару минут.

    Если вы клиент с планом Enterprise, обе реализации WAF будут включены одновременно при выборе Развернуть, чтобы проверить новую конфигурацию. Дополнительные инструкции см. в шагах следующего раздела.

Проверьте свою новую конфигурацию WAF и завершите обновление (только для клиентов Enterprise)

Если вы клиент с планом Enterprise, после развёртывания новой конфигурации WAF обе реализации WAF будут включены одновременно. На этом этапе, который называется режимом проверки, вы можете получить доступ к обеим реализациям WAF Managed Rules в панели управления Cloudflare, которая продолжит показывать баннер с предложением обновить план до завершения обновления. Новая версия WAF Managed Rules будет запускаться раньше предыдущей.

  1. Используйте текущий режим проверки, чтобы проверить поведение новой конфигурации WAF в Security Events. Дополнительную информацию см. в Анализ нового поведения WAF в Security Events.

  2. Когда закончите проверять конфигурацию с обоими включёнными WAF, выберите Готово к обновлению в баннере с предложением обновить план, а затем выберите Отключение предыдущей версии. Эта операция завершит обновление и отключит предыдущую версию WAF.

После завершения обновления дашборд покажет все обновлённые правила в:

Чтобы проверить, завершилось ли обновление, обновите панель управления.

Использование API

  1. Используйте Проверить совместимость обновления WAF операцию, чтобы определить, может ли зона перейти на новый WAF с учётом текущей конфигурации:

    curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/waf_migration/check?phase_two=1" \
    --header "Authorization: Bearer <API_TOKEN>"

    Пример ответа:

    {
    	"result": {
    		"compatible": true,
    		"migration_state": "start"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }

    Если ответ включает "compatible": true, это означает, что зона может быть обновлена до нового WAF, и вы можете продолжить процесс обновления. Если ответ включает "compatible": false, это означает, что при текущей конфигурации ваша зона не может быть обновлена. См. Подходящие зоны для получения подробностей.

  2. Чтобы получить новую конфигурацию WAF, соответствующую вашей текущей конфигурации, используйте Получить новую конфигурацию WAF операцию:

    curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/waf_migration/config?phase_two=1" \
    --header "Authorization: Bearer <API_TOKEN>"

    Пример ответа:

    {
    	"result": {
    		"name": "default",
    		"rules": [
    			{
    				"id": "",
    				"version": "",
    				"action": "execute",
    				"expression": "true",
    				"description": "",
    				"ref": "",
    				"enabled": true,
    				"action_parameters": {
    					"id": "efb7b8c949ac4650a09736fc376e9aee",
    					"overrides": {
    						"rules": [
    							{
    								"id": "23ee7cebe6e8443e99ecf932ab579455",
    								"action": "log",
    								"enabled": false
    							}
    						]
    					}
    				}
    			}
    		]
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }

Конфигурация, возвращённая в примере выше и соответствующая существующей конфигурации предыдущей версии WAF, содержит:

  1. (Необязательно, только для клиентов Enterprise) Если вы переходите с зоны Enterprise на WAF Managed Rules, вы можете войти в режим проверки перед завершением перехода. В этом режиме будут включены обе реализации WAF. Используйте Обновление набора правил точки входа зоны операцию, включив в него waf_migration=validation&phase_two=1 параметры строки запроса:

    curl --request PUT \
    "https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypoint?waf_migration=validation&phase_two=1" \
    --header "Authorization: Bearer <API_TOKEN>" \
    --header "Content-Type: application/json" \
    --data '{
      "name": "default",
      "rules": [
        {
          "action": "execute",
          "expression": "true",
          "description": "",
          "enabled": true,
          "action_parameters": {
            "id": "efb7b8c949ac4650a09736fc376e9aee",
            "overrides": {
              "rules": [
                {
                  "id": "23ee7cebe6e8443e99ecf932ab579455",
                  "action": "log",
                  "enabled": false
                }
              ]
            }
          }
        }
      ]
    }'

    После вызова этой конечной точки API будут включены как управляемые правила WAF, так и WAF Managed Rules. Проверьте выборочные журналы в Security Events на предмет блокировки легитимного трафика и при необходимости скорректируйте конфигурацию WAF Managed Rules. Например, можно добавление переопределения для одного правила, которое отключает его или меняет его действие.

  2. Чтобы завершить обновление и отключить управляемые правила WAF, задайте конфигурацию нового WAF, используя настройки, полученные на шаге 2 и, возможно, скорректированные на шаге 3. Обязательно включите waf_migration=pending&phase_two=1 параметры строки запроса.

    curl --request PUT \
    "https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypoint?waf_migration=pending&phase_two=1" \
    --header "Authorization: Bearer <API_TOKEN>" \
    --header "Content-Type: application/json" \
    --data '{
      "name": "default",
      "rules": [
        {
          "id": "",
          "version": "",
          "action": "execute",
          "expression": "true",
          "description": "",
          "ref": "",
          "enabled": true,
          "action_parameters": {
            "id": "efb7b8c949ac4650a09736fc376e9aee",
            "overrides": {
              "rules": [
                {
                  "id": "23ee7cebe6e8443e99ecf932ab579455",
                  "action": "log",
                  "enabled": false
                }
              ]
            }
          }
        }
      ]
    }'

После сохранения указанной конфигурации и включения новых WAF Managed Rules предыдущая версия управляемых правил WAF будет автоматически отключена из-за наличия waf_migration=pending&phase_two=1 параметров. Это гарантирует, что во время обновления зона останется защищённой одной из версий WAF.


Анализ нового поведения WAF в Security Events

Для клиентов Enterprise

Если вы клиент с планом Enterprise, используйте режим проверки процесса обновления WAF, чтобы проверить поведение новой конфигурации WAF Managed Rules. Cloudflare включает режим проверки после развёртывания новой конфигурации WAF. В этом режиме предыдущая версия WAF остаётся включённой, поэтому вы можете проверить поведение новой конфигурации в течение процесса обновления. Новая версия WAF Managed Rules будет запускаться до предыдущей версии.

Перейдите в выборочные журналы в Security Events в режиме проверки и проверьте следующее:

Для клиентов Business/Professional

У клиентов с планами Business и Professional нет доступа к режиму проверки, поэтому проверить новое поведение WAF они смогут только после перехода на новые WAF Managed Rules.

В течение нескольких дней после обновления проверяйте выборочные журналы в Security Events на предмет легитимных запросов, заблокированных WAF Managed Rules. Если вы обнаружите неверно заблокированные запросы, измените действие соответствующего правила WAF на Log. Дополнительную информацию об изменении действия правила управляемого набора правил см. в Настройка отдельных правил управляемого набора правил.

Также проверьте запросы, которые должны были быть заблокированы. В этом случае рассмотрите возможность создания правило брандмауэра или Пользовательское правило WAF чтобы блокировать эти запросы.


Операции API

Для перехода на новые WAF Managed Rules через API необходимо вызвать следующие операции API:

Название Метод + конечная точка Описание
Проверить WAF
совместимость обновления
GET /zones/<ZONE_ID>/waf_migration/check?phase_two=1 Проверяет, можно ли обновить текущую зону до новой версии WAF с учётом её текущей конфигурации.
Получить новый WAF
конфигурация
GET /zones/<ZONE_ID>/waf_migration/config?phase_two=1 Получает новую конфигурацию WAF Managed Rules, эквивалентную текущей конфигурации (предыдущей версии управляемых правил WAF).
Обновление зоны
ruleset точки входа
PUT /zones/<ZONE_ID>/rulesets/ phases/http_request_firewall_managed/entrypoint?waf_migration=<VALUE>&phase_two=1 Обновляет конфигурацию набора правил точки входа зоны для http_request_firewall_managed фазы.
Доступные значения для waf_migration параметр строки запроса:
- pending / 1: Определяет новую конфигурацию WAF Managed Rules и отключает предыдущую версию управляемых правил WAF, как только указанная конфигурация сохранена и включена новая версия WAF.
- validation / 2: (только для зон Enterprise) Определяет новую конфигурацию WAF Managed Rules и включает новую версию WAF Managed Rules параллельно с предыдущей версией, переводя её в режим проверки. Чтобы выйти из режима проверки и завершить обновление, обратитесь к той же конечной точке API с параметром waf_migration=pending.
Получить статус WAF GET /zones/<ZONE_ID>/waf_migration/status Получает статус старых и новых управляемых правил WAF для зоны (включены/отключены). В ответе также указывается текущее состояние (или режим) обновления.

Чтобы получить полный эндпойнт, к перечисленным выше эндпойнтам необходимо добавить в начале базовый URL Cloudflare API:

https://api.cloudflare.com/client/v4


Возможные ошибки при обновлении

Обратитесь в Служба поддержки Cloudflare чтобы получить помощь по следующим ошибкам:


Дополнительные ресурсы

Настройка новых WAF Managed Rules с помощью Cloudflare API

Вместо прежних API для управления пакетами, группами правил и правилами WAF теперь необходимо использовать Rulesets API чтобы настраивать WAF Managed Rules программным способом.

Можно также создать переопределения чтобы указать изменения, которые нужно выполнить поверх конфигурации WAF Managed Rules по умолчанию. Эти изменения будут иметь приоритет над поведением управляемого набора правил по умолчанию.

Дополнительную информацию можно найти в следующих материалах:

Настройка новых WAF Managed Rules с помощью Terraform

Вместо прежних ресурсов для управления пакетами, группами правил и правилами WAF теперь необходимо использовать cloudflare_ruleset ↗ ресурс Terraform для настройки WAF Managed Rules. Примеры настройки см. Настройка WAF Managed Rules с помощью Terraform.

Замените конфигурацию с помощью cf-terraforming

Вы можете использовать cf-terraforming ↗ для создания конфигурации Terraform для вашей новой конфигурации WAF Managed Rules после обновления. Затем импортируйте новые ресурсы в состояние Terraform.

Ниже приведены рекомендуемые шаги для замены старой конфигурации управляемых правил WAF в Terraform на новую конфигурацию на основе набора правил для новых WAF Managed Rules:

  1. Чтобы сформировать все конфигурации наборов правил для зоны, выполните следующую команду:

    cf-terraforming generate --zone <ZONE_ID> --resource-type "cloudflare_ruleset"
    resource "cloudflare_ruleset" "terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31" {
      kind    = "zone"
      name    = "default"
      phase   = "http_request_firewall_managed"
      zone_id = "<ZONE_ID>"
      rules {
        [...]
      }
      [...]
    }
    [...]
  2. Предыдущая команда может также возвращать конфигурации наборов правил для других продуктов Cloudflare, основанных на Ruleset Engine. Поскольку вам нужна конфигурация WAF Managed Rules, оставьте только ресурс Terraform для http_request_firewall_managed фаза и сохранить его в .tf файл конфигурации. Полное имя ресурса понадобится вам на следующем шаге.

  3. Импортируйте cloudflare_ruleset ресурс, который вы ранее определили, в состояние Terraform с помощью terraform import команду. Например:

    terraform import cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31 zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31
     cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Importing from ID "zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31"...
     cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Import prepared!
       Prepared cloudflare_ruleset for import
     cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    
     Import successful!
    
     The resources that were imported are shown above. These resources are now in
     your Terraform state and will henceforth be managed by Terraform.
  4. Запустите terraform plan чтобы убедиться, что Terraform теперь проверяет состояние нового cloudflare_ruleset ресурс в дополнение к другим существующим ресурсам, уже управляемым Terraform. Например:

    terraform plan
    
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    [...]
    cloudflare_waf_package.my_package: Refreshing state... [id=14a2524fd75c419f8d273116815b6349]
    cloudflare_waf_group.my_group: Refreshing state... [id=0580eb5d92e344ddb2374979f74c3ddf]
    [...]
  5. Удалите из состояния Terraform все данные, связанные с предыдущей версией управляемых правил WAF:

    1. Чтобы найти все ресурсы, связанные с предыдущей версией управляемых правил WAF, выполните следующую команду:

      terraform state list | grep -E '^cloudflare_waf_(package|group|rule)\.'
      cloudflare_waf_package.my_package
      cloudflare_waf_group.my_group
    2. Выполните terraform state rm ... команду в режиме dry-run, чтобы оценить последствия удаления этих ресурсов без внесения фактических изменений:

      terraform state rm -dry-run cloudflare_waf_package.my_package cloudflare_waf_group.my_group
      Would remove cloudflare_waf_package.my_package
      Would remove cloudflare_waf_group.my_group
    3. Если результат выглядит корректно, выполните ту же команду без -dry-run параметр, чтобы фактически удалить ресурсы из состояния Terraform:

      terraform state rm cloudflare_waf_package.my_package cloudflare_waf_group.my_group
      Removed cloudflare_waf_package.my_package
      Removed cloudflare_waf_group.my_group
      Successfully removed 2 resource instance(s).
  6. После удаления ресурсов пакетов, групп и правил WAF из состояния Terraform удалите cloudflare_waf_package, cloudflare_waf_group, а также cloudflare_waf_rule ресурсы из .tf файлы конфигурации.

  7. Запустите terraform plan чтобы убедиться, что удалённые вами из конфигурационных файлов ресурсы больше не отображаются. У вас не должно быть отложенных изменений.

    terraform plan
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    [...]
    
    No changes. Your infrastructure matches the configuration.
    
    Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.

Сведения об импорте ресурсов Cloudflare в Terraform и об использовании cf-terraforming см. следующие материалы:


Заключительные замечания

Понятие уровень паранойи отсутствовал в версии OWASP (2.x), которая использовалась в управляемых правилах WAF. Согласно рекомендациям руководства OWASP, в процессе миграции WAF уровень паранойи Cloudflare OWASP Core Ruleset будет установлен на PL2.

Новую версию WAF Managed Rules нельзя отключить с помощью Page Rules, поскольку Web Application Firewall: Off настройка в Page Rules применяется только к предыдущей версии управляемых правил WAF. Чтобы отключить новые WAF Managed Rules, необходимо настроить исключения (также известные как правила пропуска).

Запросите бесплатный пилот

Запланировать пилот