APIを介しての設定
APIを使用して特定のゾーンに対してCloudflare OWASPコアルールセットを有効にするには、http_request_firewall_managedフェーズのエントリポイントルールセットにexecuteアクションを持つルールを作成します。管理されたルールセットの展開に関する詳細は、管理されたルールセットの展開を参照してください。
APIを使用してCloudflare OWASPコアルールセットを構成するには、Rulesets APIを使用してオーバーライドを作成します。次の構成を実行できます:
- パラノイアレベルの設定。
- スコア閾値の構成。
- 脅威スコアが閾値を超えたときに実行するアクションの指定。
また、ルールオーバーライドを使用して、管理されたルールセット内の特定のルールを無効にすることもできます。
特定のパラノイアレベルまでのすべてのルールを有効にするには、より高いパラノイアレベルに関連するすべてのルールを無効にするタグオーバーライドを作成します。
異なるパラノイアレベルに関連するタグは次のとおりです:
paranoia-level-1paranoia-level-2paranoia-level-3paranoia-level-4
たとえば、パラノイアレベル2(PL2)に関連するすべてのルールを有効にするには、paranoia-level-3およびparanoia-level-4のタグに関連するルールを無効にします。希望するパラノイアレベルまでのすべてのルールが有効になります(この例では、PL1およびPL2に関連するすべてのルール)。
この例では、ゾーンのCloudflare OWASPコアルールセットのパラノイアレベルをPL2に設定します。この構成を実行するには、タグオーバーライドを使用してPL3およびPL4に関連するタグ(paranoia-level-3およびparanoia-level-4)を無効にする必要があります。
- アカウントルールセットのリストメソッドを使用してCloudflare OWASPコアルールセットのIDを取得します。WAFの管理されたルールセットはアカウントレベルに存在します。あるいは、次のルールセットIDを直接使用します:
...c25d2f1f。
リクエスト
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets" \--header "Authorization: Bearer <API_TOKEN>"レスポンス
{ "result": [ { "id": "4814384a9e5d4991b9815dcfc25d2f1f", "name": "Cloudflare OWASP Core Ruleset", "description": "CloudflareによるOpen Web Application Security Project (OWASP) ModSecurity Core Rule Setの実装。公式コードリポジトリから入手可能な最新バージョンに基づいて、OWASPからの更新を定期的に監視しています。", "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ルールセットをゾーンに展開するルールのIDを取得します。
action_parametersオブジェクトにOWASPルールセットのIDが設定された"action": "execute"を持つルールを検索します。このルールは、OWASPルールセットをすでに展開している場合にのみ存在します。
リクエスト
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypoint" \--header "Authorization: Bearer <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 --request PATCH \"https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{entry_point_ruleset_id}/rules/{execute_rule_id}" \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{ "action": "execute", "action_parameters": { "id": "4814384a9e5d4991b9815dcfc25d2f1f", "version": "latest", "overrides": { "categories": [ { "category": "paranoia-level-3", "enabled": false }, { "category": "paranoia-level-4", "enabled": false } ] } }, "expression": "true", "enabled": true}'オーバーライドの作成に関する詳細は、管理されたルールセットのオーバーライドを参照してください。
スコア閾値を定義するか、脅威スコアが閾値を超えたときに実行するアクションを指定するには、管理されたルールセットの最後のルールに対してルールオーバーライドを作成します:
actionプロパティで実行するアクションを指定します。利用可能なアクションは、block(デフォルト)、managed_challenge、js_challenge、log、およびchallengeです。score_thresholdプロパティに希望する異常スコア閾値(整数値)を定義します。
この例では、管理されたルールセットのスコア閾値と実行されるアクションを構成するために、管理されたルールセットの最後のルールに対してルールオーバーライドを作成します。
- アカウントルールセットのリストメソッドを使用してCloudflare OWASPコアルールセットのIDを取得します。WAFの管理されたルールセットはアカウントレベルに存在します。あるいは、次のルールセットIDを直接使用します:
...c25d2f1f。
リクエスト
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets" \--header "Authorization: Bearer <API_TOKEN>"レスポンス
{ "result": [ { "id": "4814384a9e5d4991b9815dcfc25d2f1f", "name": "Cloudflare OWASP Core Ruleset", "description": "CloudflareによるOpen Web Application Security Project (OWASP) ModSecurity Core Rule Setの実装。公式コードリポジトリから入手可能な最新バージョンに基づいて、OWASPからの更新を定期的に監視しています。", "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コアルールセットの最後のルールのIDを取得します。アカウントルールセットを取得メソッドを使用してルールセット内のルールのリストを取得します。あるいは、次のルールIDを直接使用します:
...843b323c。
リクエスト
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/{owasp_ruleset_id}" \--header "Authorization: Bearer <API_TOKEN>"レスポンス
{ "result": { "id": "4814384a9e5d4991b9815dcfc25d2f1f", "name": "Cloudflare OWASP Core Ruleset", "description": "CloudflareによるOpen Web Application Security Project (OWASP) ModSecurity Core Rule Setの実装。公式コードリポジトリから入手可能な最新バージョンに基づいて、OWASPからの更新を定期的に監視しています。", "source": "firewall_managed", "kind": "managed", "version": "36", "rules": [ // (...) { "id": "6179ae15870a4bb7b2d480d4843b323c", "version": "35", "action": "block", "score_threshold": 40, "description": "949110: インバウンド異常スコアを超えました", "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ルールセットをゾーンに展開するルールのIDを取得します(この例では、
<EXECUTE_RULE_ID>)。action_parametersオブジェクトにOWASPルールセットのIDが設定された"action": "execute"を持つルールを検索します。このルールは、OWASPルールセットをすでに展開している場合にのみ存在します。
リクエスト
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypoint" \--header "Authorization: Bearer <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ルールセットの最後のルールに対してルールオーバーライドを追加します:
"score_threshold": 60"action": "managed_challenge"
リクエスト
curl --request PATCH \"https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{entry_point_ruleset_id}/rules/{execute_rule_id}" \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{ "action": "execute", "action_parameters": { "id": "4814384a9e5d4991b9815dcfc25d2f1f", "version": "latest", "overrides": { "rules": [ { "id": "6179ae15870a4bb7b2d480d4843b323c", "score_threshold": 60, "action": "managed_challenge" } ] } }, "expression": "true", "enabled": true}'APIの例については、Ruleset Engineドキュメントの管理されたルールセットオーバーライドの例を参照してください。