← Документация 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. Вы можете выполнять следующие настройки:
- Задайте уровень паранойи.
- Настройка порогового значения оценки.
- Укажите действие, которое нужно выполнить когда оценка угрозы превышает пороговое значение.
Отдельные правила в управляемом наборе правил можно также отключить с помощью переопределения правил.
Задайте уровень паранойи
Чтобы включить все правила до определённого уровень паранойи, создайте переопределения по тегам которые отключают все правила, связанные с более высокими уровнями паранойи.
Теги, связанные с разными уровнями паранойи, следующие:
paranoia-level-1paranoia-level-2paranoia-level-3paranoia-level-4
Например, чтобы включить все правила, связанные с 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) с помощью переопределений по тегам.
-
Получите 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": [] } -
Получите 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": [] } -
Обновите найденное правило с помощью Обновление правила в наборе правил зоны операцию, добавив переопределения по тегам, которые отключают правила с тегами
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(Non-Interactive Challenge),managed_challenge(Managed Challenge),block(по умолчанию),challenge(Interactive Challenge) иlog. - Определяет нужное пороговое значение показателя аномалии (целое число) в
score_thresholdсвойство.
Пример
В этом примере настраиваются пороговое значение показателя управляемого набора правил и выполняемое действие путём создания переопределения для последнего правила управляемого набора правил.
-
Получите 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": [] } -
Получите 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": [] } -
Получите 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": [] } -
Обновите найденное правило в наборе правил точки входа с помощью Обновление правила в наборе правил зоны операцию, добавив переопределение правила для последнего правила в наборе правил 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.