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

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

Чтобы включить Cloudflare OWASP Core Ruleset для заданной зоны с помощью API, создайте правило с execute действие в наборе правил точки входа для http_request_firewall_managed фаза. Дополнительную информацию о развёртывании управляемого набора правил см. в разделе Развёртывание управляемого набора правил.

Чтобы настроить Cloudflare OWASP Core Ruleset с помощью API, создайте переопределения с помощью Rulesets API. Вы можете выполнять следующие настройки:

Отдельные правила в управляемом наборе правил можно также отключить с помощью переопределения правил.

Задайте уровень паранойи

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

Теги, связанные с разными уровнями паранойи, следующие:

Например, чтобы включить все правила, связанные с Paranoia Level 2 (PL2), отключите правила, связанные с тегами paranoia-level-3 и paranoia-level-4. Будут включены все правила, привязанные к уровням паранойи вплоть до нужного (в этом примере все правила, связанные с PL1 и PL2).

Пример

В этом примере уровень паранойи Cloudflare OWASP Core Ruleset для зоны устанавливается на PL2. Для этой настройки необходимо отключить теги, связанные с уровнями PL3 и PL4 (paranoia-level-3 и paranoia-level-4) с помощью переопределений по тегам.

  1. Получите ID Cloudflare OWASP Core Ruleset с помощью Список наборов правил аккаунта метод, так как управляемые наборы правил WAF существуют на уровне аккаунта. Либо используйте следующий идентификатор набора правил напрямую: .

    Список наборов правил аккаунта
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"result": [
    		{
    			"id": "4814384a9e5d4991b9815dcfc25d2f1f",
    			"name": "Cloudflare OWASP Core Ruleset",
    			"description": "Cloudflare's implementation of the Open Web Application Security Project (OWASP) ModSecurity Core  Rule Set. We routinely monitor for updates from OWASP based on the latest version available from the official  code repository",
    			"source": "firewall_managed",
    			"kind": "managed",
    			"version": "35",
    			"last_updated": "2022-01-24T21:08:20.293196Z",
    			"phase": "http_request_firewall_managed"
    		}
    		// (...)
    	],
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  2. Получите ID правила, которое развёртывает набор правил OWASP в вашей зоне, с помощью Получить входной набор правил зоны. Найдите правило с "action": "execute" настроенный с ID набора правил OWASP в action_parameters объект (ID ). Это правило существует только в том случае, если вы уже развернули набор правил OWASP.

    Получить входной набор правил зоны
    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": {
    		"id": "<ENTRY_POINT_RULESET_ID>",
    		"name": "zone",
    		"description": "",
    		"source": "firewall_managed",
    		"kind": "zone",
    		"version": "3",
    		"rules": [
    			// (...)
    			{
    				"id": "<EXECUTE_RULE_ID>",
    				"version": "1",
    				"action": "execute",
    				"action_parameters": {
    					"id": "4814384a9e5d4991b9815dcfc25d2f1f",
    					"version": "latest"
    				},
    				"expression": "true",
    				"last_updated": "2022-02-04T16:27:58.930927Z",
    				"ref": "<RULE_REF>",
    				"enabled": true
    			}
    			// (...)
    		],
    		"last_updated": "2022-02-07T10:41:31.702744Z",
    		"phase": "http_request_firewall_managed"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  3. Обновите найденное правило с помощью Обновление правила в наборе правил зоны операцию, добавив переопределения по тегам, которые отключают правила с тегами paranoia-level-3 и paranoia-level-4.

    Обновление правила в наборе правил зоны
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$ENTRY_POINT_RULESET_ID/rules/$EXECUTE_RULE_ID" \
    	--request PATCH \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"action": "execute",
    		"action_parameters": {
    				"id": "4814384a9e5d4991b9815dcfc25d2f1f",
    				"overrides": {
    						"categories": [
    								{
    										"category": "paranoia-level-3",
    										"enabled": false
    								},
    								{
    										"category": "paranoia-level-4",
    										"enabled": false
    								}
    						]
    				}
    		},
    		"expression": "true",
    		"enabled": true
    	}'

Дополнительную информацию о создании переопределений см. в Переопределение управляемого набора правил.

Настройка порогового значения оценки и действия

Чтобы определить пороговое значение оценки, или чтобы указать действие которое нужно выполнить, когда оценка угрозы превышает пороговое значение, создайте переопределение правила для последнего правила в управляемом наборе правил, которое:

Пример

В этом примере настраиваются пороговое значение показателя управляемого набора правил и выполняемое действие путём создания переопределения для последнего правила управляемого набора правил.

  1. Получите ID Cloudflare OWASP Core Ruleset с помощью Список наборов правил аккаунта метод, так как управляемые наборы правил WAF существуют на уровне аккаунта. Либо используйте следующий идентификатор набора правил напрямую: .

    Список наборов правил аккаунта
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"result": [
    		{
    			"id": "4814384a9e5d4991b9815dcfc25d2f1f",
    			"name": "Cloudflare OWASP Core Ruleset",
    			"description": "Cloudflare's implementation of the Open Web Application Security Project (OWASP) ModSecurity Core Rule Set. We routinely monitor for updates from OWASP based on the latest version available from the official code repository",
    			"source": "firewall_managed",
    			"kind": "managed",
    			"version": "35",
    			"last_updated": "2022-01-24T21:08:20.293196Z",
    			"phase": "http_request_firewall_managed"
    		}
    		// (...)
    	],
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  2. Получите ID последнее правило в наборе Cloudflare OWASP Core Ruleset. Используйте Получить набор правил аккаунта метод для получения списка правил в наборе правил. Либо используйте следующий идентификатор правила напрямую: .

    Получить набор правил аккаунта
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/$OWASP_RULESET_ID" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"result": {
    		"id": "4814384a9e5d4991b9815dcfc25d2f1f",
    		"name": "Cloudflare OWASP Core Ruleset",
    		"description": "Cloudflare's implementation of the Open Web Application Security Project (OWASP) ModSecurity Core Rule Set. We routinely monitor for updates from OWASP based on the latest version available from the official code repository",
    		"source": "firewall_managed",
    		"kind": "managed",
    		"version": "36",
    		"rules": [
    			// (...)
    			{
    				"id": "6179ae15870a4bb7b2d480d4843b323c",
    				"version": "35",
    				"action": "block",
    				"score_threshold": 40,
    				"description": "949110: Inbound Anomaly Score Exceeded",
    				"last_updated": "2022-02-08T16:11:18.236676Z",
    				"ref": "ad0beb2fce9f149e565ee78d6e659d47",
    				"enabled": true
    			}
    		],
    		"last_updated": "2022-02-08T16:11:18.236676Z",
    		"phase": "http_request_firewall_managed"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  3. Получите ID правила, которое развёртывает набор правил OWASP в вашей зоне, с помощью Получить входной набор правил зоны (в этом примере <EXECUTE_RULE_ID>). Найдите правило с "action": "execute" настроенный с ID набора правил OWASP в action_parameters объект (ID ). Это правило существует только в том случае, если вы уже развернули набор правил OWASP.

    Получить входной набор правил зоны
    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": {
    		"id": "<ENTRY_POINT_RULESET_ID>",
    		"name": "zone",
    		"description": "",
    		"source": "firewall_managed",
    		"kind": "zone",
    		"version": "3",
    		"rules": [
    			// (...)
    			{
    				"id": "<EXECUTE_RULE_ID>",
    				"version": "1",
    				"action": "execute",
    				"action_parameters": {
    					"id": "4814384a9e5d4991b9815dcfc25d2f1f",
    					"version": "latest"
    				},
    				"expression": "true",
    				"last_updated": "2022-02-04T16:27:58.930927Z",
    				"ref": "<RULE_REF>",
    				"enabled": true
    			}
    			// (...)
    		],
    		"last_updated": "2022-02-07T10:41:31.702744Z",
    		"phase": "http_request_firewall_managed"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  4. Обновите найденное правило в наборе правил точки входа с помощью Обновление правила в наборе правил зоны операцию, добавив переопределение правила для последнего правила в наборе правил OWASP (определённого на шаге 2) со следующими свойствами и значениями:

    • "score_threshold": 60
    • "action": "managed_challenge"
    Обновление правила в наборе правил зоны
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$ENTRY_POINT_RULESET_ID/rules/$EXECUTE_RULE_ID" \
    	--request PATCH \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"action": "execute",
    		"action_parameters": {
    				"id": "4814384a9e5d4991b9815dcfc25d2f1f",
    				"overrides": {
    						"rules": [
    								{
    										"id": "6179ae15870a4bb7b2d480d4843b323c",
    										"score_threshold": 60,
    										"action": "managed_challenge"
    								}
    						]
    				}
    		},
    		"expression": "true",
    		"enabled": true
    	}'

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

Дополнительные примеры API см. в Примеры переопределений в документации по Ruleset Engine.

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

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