← Документация WAF / managed-rules / reference / owasp-core-ruleset
Настройка через API
Чтобы включить Cloudflare OWASP Core Ruleset для заданной зоны через API, создайте правило с execute в наборе правил точки входа для http_request_firewall_managed фазе. Подробнее о развёртывании управляемого набора правил см. Развёртывание управляемого набора правил.
Чтобы настроить Cloudflare OWASP Core Ruleset через API, создайте переопределения с помощью Rulesets API. Доступны следующие настройки:
- Установка уровня паранойи.
- Настройка порога оценки.
- Укажите выполняемое действие когда оценка угрозы (threat score) превышает порог.
Вы также можете отключить отдельные правила управляемого набора с помощью переопределения правил.
Установка уровня паранойи
Чтобы включить все правила до определённого уровень паранойи, создайте переопределения по тегам которые отключают все правила, связанные с более высокими уровнями паранойи.
С разными paranoia level связаны следующие теги:
paranoia-level-1paranoia-level-2paranoia-level-3paranoia-level-4
Например, чтобы включить все правила, относящиеся к 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) с помощью переопределений по тегам.
-
Получите идентификатор 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": [] } -
Получите идентификатор правила, развёртывающего набор правил 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": [] } -
Обновите найденное правило с помощью Обновление правила набора правил зоны (операция), добавив переопределения по тегам, отключающие правила с тегами
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 }'
Подробнее о создании переопределений см. Переопределение управляемого набора правил.
Настройка порога оценки и действия
Чтобы определить порог оценки, или чтобы указать действие , выполняемое, когда оценка угрозы превышает порог, создайте переопределение правила для последнего правила в управляемом наборе правил, которое:
- Задаёт действие, выполняемое в
action(свойство). Доступные действия:js_challenge(неинтерактивный челлендж),managed_challenge(Managed Challenge),block(по умолчанию),challenge(Interactive Challenge) иlog. - Определяет желаемый порог оценки аномалии (целое число) в
score_threshold(свойство).
Пример
В этом примере порог оценки управляемого набора правил и выполняемое действие настраиваются путём создания переопределения для последнего правила управляемого набора.
-
Получите идентификатор 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": [] } -
Получите идентификатор последнее правило в 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": [] } -
Получите идентификатор правила, развёртывающего набор правил 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": [] } -
Обновите найденное правило в наборе правил точки входа с помощью Обновление правила набора правил зоны , добавив переопределение для последнего правила в наборе 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.