INTEGRITY Документация

Cloudflare Managed Ruleset

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

Cloudflare рекомендует включить правила, теги которых соответствуют вашему технологическому стеку. Например, если вы используете WordPress, включите правила с тегом wordpress.

Cloudflare: Журнал изменений WAF позволяет отслеживать текущие изменения в управляемых наборах правил WAF.

Развёртывание Cloudflare Managed Ruleset

  1. В панели управления Cloudflare перейдите в раздел Security Settings .

    Перейдите в Settings ↗
  2. (Необязательно) Отфильтруйте по Эксплойты веб-приложений.

  3. Включите Управляемый набор правил Cloudflare.

  4. Проверьте настройки развёртывания. При необходимости измените область действия, чтобы применить набор правил к подмножеству входящих запросов, или настройте пользовательские параметры (также известные как переопределения).

  5. Выберите Save.

Эта операция развёртывает управляемый набор правил для текущей зоны, создавая новое правило с Execute (действие).

Настройка в панели управления

Вы можете настроить (переопределить) Cloudflare Managed Ruleset, изменив его конфигурацию по умолчанию, на нескольких уровнях:

Когда вы создаёте несколько переопределений на разных уровнях, более специфичные конфигурации (уровень тега и правила) имеют приоритет над менее специфичными (уровень набора правил). См. Переопределение управляемого набора правил в документации Ruleset Engine для получения дополнительной информации.

Конфигурация на уровне набора правил

В панели управления Cloudflare можно настроить (или переопределить) следующие параметры Cloudflare Managed Ruleset:

После того как вы развернули Cloudflare Managed Ruleset, выполните следующие действия для настройки в панели управления:

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

    Перейдите в Правила безопасности ↗
  2. (Необязательно) Отфильтруйте по Управляемые правила.

  3. Найдите Cloudflare Managed Ruleset. Найдите правило с Execute (действие).

  4. Выберите имя правила (содержащее название управляемого набора правил), чтобы открыть страницу настройки развёртывания.

  5. (Необязательно) Чтобы выполнять Cloudflare Managed Ruleset для части входящих запросов, выберите Edit scope и настройте выражение , которое определит область действия текущего правила, разворачивающего управляемый набор правил.

  6. В разделе конфигурации набора задайте настройки для всех правил Cloudflare Managed Ruleset, установив одно или несколько полей с помощью раскрывающихся списков.

    Например, выберите действие для всех правил набора.

    Страница Configure deployment с доступными вариантами переопределения всех правил Cloudflare Managed Ruleset: действие набора и статус набора.
  7. Выберите Save.

Конфигурация на уровне тегов

В панели управления можно настроить (или переопределить) следующие параметры Cloudflare Managed Ruleset для правил, помеченных хотя бы одним из выбранных тегов:

После того как вы развернули Cloudflare Managed Ruleset, выполните следующие действия, чтобы настроить правила с определёнными тегами в панели управления:

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

    Перейдите в Правила безопасности ↗
  2. (Необязательно) Отфильтруйте по Управляемые правила.

  3. Найдите Cloudflare Managed Ruleset. Найдите правило с Execute (действие).

  4. Выберите имя правила (содержащее название управляемого набора правил), а затем выберите Browse rules.

    Панель управления Cloudflare со списком правил Cloudflare Managed Ruleset.
  1. Выберите один или несколько тегов под полем поиска, чтобы отфильтровать правила с этими тегами, а затем установите флажок в левом верхнем углу таблицы, чтобы выбрать все правила, показанные на текущей странице.
    Если на текущей странице отображаются не все правила, распространите выбор на все правила с выбранными тегами на всех страницах, выбрав Select all <NUMBER> rules.

    Страница Configure deployment с выбранными правилами с тегом 'sqli' в Cloudflare Managed Ruleset.
  2. Обновите одну или несколько настроек для выбранных правил с помощью кнопок в правом верхнем углу таблицы (например, Установка статуса).

  3. Выберите Next.

  4. Появится диалоговое окно с вопросом, следует ли настраивать новые правила с выбранными тегами с использованием выбранных вами значений полей.

    • Выберите Include new rules если вы хотите применять ваши настройки к любым новым правилам с выбранными тегами.
    • Выберите Только выбранные правила , чтобы применить конфигурацию только к выбранным правилам.
  5. Выберите Save.

Конфигурация на уровне правила

В панели управления можно настроить (или переопределить) следующие параметры Cloudflare Managed Ruleset для выбранных правил:

После того как вы развернули Cloudflare Managed Ruleset, выполните следующие действия, чтобы настроить отдельные правила набора в панели управления:

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

    Перейдите в Правила безопасности ↗
  2. (Необязательно) Отфильтруйте по Управляемые правила.

  3. Найдите Cloudflare Managed Ruleset. Найдите правило с Execute (действие).

  4. Выберите имя правила (содержащее название управляемого набора правил), а затем выберите Browse rules.

    Панель управления Cloudflare со списком правил Cloudflare Managed Ruleset.
  1. Найдите правила с помощью доступных фильтров.

  2. В списке результатов измените значения для каждого правила по своему усмотрению, используя отображаемые раскрывающиеся списки и переключатели. Например, измените статус правила с помощью Статус рядом с правилом.

    Чтобы настроить несколько правил с одинаковым значением, установите флажки для всех правил, которые вы хотите настроить. Если не все правила отображаются на текущей странице, вы можете расширить выбор на все правила на всех страницах, выбрав Select all <NUMBER> rules. Затем используйте кнопки в правом верхнем углу таблицы — например, Установка статуса — чтобы обновить одно или несколько полей выбранных правил.

    Страница Configure deployment с выбранными правилами Cloudflare Managed Ruleset.
  3. Выберите Next, а затем выберите Save.

Настройка через API

Чтобы развернуть Cloudflare Managed Ruleset для зоны через API, создайте правило с execute в набор правил точки входа для http_request_firewall_managed фазе.

Пример

Следующий пример развёртывает Cloudflare Managed Ruleset в http_request_firewall_managed указанной зоны ($ZONE_ID), создав правило, выполняющее управляемый набор правил.

  1. Вызовите Получение набора правил точки входа зоны (операция), чтобы получить определение набора правил точки входа для фазы http_request_firewall_managed (фаза). Вам понадобится ID зоны для этой задачи.

    Получение набора правил точки входа зоны
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"result": {
    		"description": "Zone-level phase entry point",
    		"id": "<RULESET_ID>",
    		"kind": "zone",
    		"last_updated": "2024-03-16T15:40:08.202335Z",
    		"name": "zone",
    		"phase": "http_request_firewall_managed",
    		"rules": [
    			// ...
    		],
    		"source": "firewall_managed",
    		"version": "10"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  2. Если набор правил точки входа уже существует (то есть если вы получили 200 OK код состояния и определение набора правил), запишите ID набора правил из ответа. Затем вызовите Создание правила в наборе правил зоны операцию, чтобы добавить execute в существующий набор правил, разворачивающий Cloudflare Managed Ruleset (с ID efb7b8c949ac4650a09736fc376e9aee). По умолчанию правило будет добавлено в конец списка правил, уже имеющихся в наборе.

    Создание правила в наборе правил зоны
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"action": "execute",
    		"action_parameters": {
    				"id": "efb7b8c949ac4650a09736fc376e9aee"
    		},
    		"expression": "true",
    		"description": "Execute the Cloudflare Managed Ruleset"
    	}'
    {
    	"result": {
    		"id": "<RULESET_ID>",
    		"name": "Zone-level phase entry point",
    		"description": "",
    		"kind": "zone",
    		"version": "11",
    		"rules": [
    			// ... any existing rules
    			{
    				"id": "<RULE_ID>",
    				"version": "1",
    				"action": "execute",
    				"action_parameters": {
    					"id": "efb7b8c949ac4650a09736fc376e9aee",
    					"version": "latest"
    				},
    				"expression": "true",
    				"description": "Execute the Cloudflare Managed Ruleset",
    				"last_updated": "2024-03-18T18:08:14.003361Z",
    				"ref": "<RULE_REF>",
    				"enabled": true
    			}
    		],
    		"last_updated": "2024-03-18T18:08:14.003361Z",
    		"phase": "http_request_firewall_managed"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  3. Если набор правил точки входа не существует (то есть если вы получили 404 Not Found код состояния на шаге 1), создайте его с помощью Создание набора правил зоны. Включите одно правило в массив rules , выполняющее Cloudflare Managed Ruleset (с ID efb7b8c949ac4650a09736fc376e9aee) для всех входящих запросов в зоне.

    Создание набора правил зоны
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"name": "My ruleset",
    		"description": "Entry point ruleset for WAF managed rulesets",
    		"kind": "zone",
    		"phase": "http_request_firewall_managed",
    		"rules": [
    				{
    						"action": "execute",
    						"action_parameters": {
    								"id": "efb7b8c949ac4650a09736fc376e9aee"
    						},
    						"expression": "true",
    						"description": "Execute the Cloudflare Managed Ruleset"
    				}
    		]
    	}'

Дальнейшие шаги

Чтобы настроить Cloudflare Managed Ruleset через API, создайте переопределения с помощью Rulesets API. Доступны следующие настройки:

Примеры создания переопределений через API см. в Переопределение управляемого набора правил.

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

Подробнее о работе с управляемыми наборами правил через API см. Работа с управляемыми наборами правил в документации по Ruleset Engine.

Настройка через Terraform

В следующем примере Cloudflare Managed Ruleset развёртывается для зоны с переопределением действия и статуса конкретного правила.

Необходимые разрешения API-токена

Хотя бы одно из следующих разрешения токена обязательно:

  • Zone WAF Write

Настройте cloudflare_ruleset :

# Configure a ruleset at the zone level for the "http_request_firewall_managed" phase
resource "cloudflare_ruleset" "zone_level_managed_waf" {
  zone_id     = var.cloudflare_zone_id
  name        = "Managed WAF entry point ruleset"
  description = "Zone-level WAF Managed Rules config"
  kind        = "zone"
  phase       = "http_request_firewall_managed"

  # Execute Cloudflare Managed Ruleset
  rules = [{
    ref         = "execute_cloudflare_managed_ruleset"
    description = "Execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset"
    expression  = "true"
    action      = "execute"
    action_parameters = {
      id = "efb7b8c949ac4650a09736fc376e9aee"
      overrides = {
        rules = [{
          id      = "5de7edfa648c4d6891dc3e7f84534ffa"
          action  = "log"
          enabled = true
        }]
      }
    }
  }]
}
# Configure a ruleset at the zone level for the "http_request_firewall_managed" phase
resource "cloudflare_ruleset" "zone_level_managed_waf" {
  zone_id     = var.cloudflare_zone_id
  name        = "Managed WAF entry point ruleset"
  description = "Zone-level WAF Managed Rules config"
  kind        = "zone"
  phase       = "http_request_firewall_managed"

  # Execute Cloudflare Managed Ruleset
  rules {
    ref         = "execute_cloudflare_managed_ruleset"
    description = "Execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset"
    expression  = "true"
    action      = "execute"
    action_parameters {
      id = "efb7b8c949ac4650a09736fc376e9aee"
      overrides {
        rules {
          id      = "5de7edfa648c4d6891dc3e7f84534ffa"
          action  = "log"
          enabled = true
        }
      }
    }
  }
}

Подробнее см. Конфигурация WAF Managed Rules с помощью Terraform.