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

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

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

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

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

Установка уровня паранойи

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

С разными paranoia level связаны следующие теги:

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

Пример

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

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

    Список наборов правил учётной записи
    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. Получите идентификатор правила, развёртывающего набор правил OWASP в вашей зоне, с помощью Получение набора правил точки входа зоны. Найдите правило с "action": "execute" с указанием ID набора правил OWASP в action_parameters (идентификатор ). Это правило существует, только если вы уже развернули набор правил 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. Получите идентификатор Cloudflare OWASP Core Ruleset с помощью Список наборов правил учётной записи (метод), поскольку управляемые наборы правил WAF существуют на уровне аккаунта. Либо используйте напрямую следующий ID набора: .

    Список наборов правил учётной записи
    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. Получите идентификатор последнее правило в Cloudflare OWASP Core Ruleset. Используйте Получение набора правил аккаунта (метод), чтобы получить список правил набора. Либо используйте напрямую следующий ID правила: .

    Получение набора правил аккаунта
    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. Получите идентификатор правила, развёртывающего набор правил OWASP в вашей зоне, с помощью Получение набора правил точки входа зоны (в этом примере <EXECUTE_RULE_ID>). Найдите правило с "action": "execute" с указанием ID набора правил OWASP в action_parameters (идентификатор ). Это правило существует, только если вы уже развернули набор правил 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.