Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

API で設定する

最終更新 Markdown で表示Agent セットアップ

API でゾーンに Cloudflare OWASP Core Ruleset を有効にするには、http_request_firewall_managed フェーズのエントリポイントルールセットに、execute アクションのルールを作成します。マネージドルールセットのデプロイについて詳しくは、マネージドルールセットをデプロイする を参照してください。

API で Cloudflare OWASP Core Ruleset を設定するには、Rulesets API で オーバーライド を作成します。次の設定ができます。

ルールオーバーライド を使い、マネージドルールセット内の特定のルールを無効にすることもできます。

パラノアレベルを設定する

特定の パラノアレベル までのすべてのルールを有効にするには、それより高いパラノアレベルに関連するルールをすべて無効にする タグオーバーライド を作成します。

各パラノアレベルに関連するタグは次のとおりです。

  • paranoia-level-1
  • paranoia-level-2
  • paranoia-level-3
  • paranoia-level-4

たとえば、Paranoia Level 2(PL2)に関連するすべてのルールを有効にするには、タグ paranoia-level-3paranoia-level-4 に関連するルールを無効にします。目的のパラノアレベルまでのルールが有効になります(この例では、PL1 と PL2 に関連するすべてのルール)。

この例では、ゾーンの Cloudflare OWASP Core Ruleset のパラノアレベルを PL2 に設定します。この設定を行うには、タグオーバーライドで PL3 と PL4 に関連するタグ(paranoia-level-3paranoia-level-4)を無効にします。

  1. WAF のマネージドルールセットはアカウントレベルに存在するため、List account rulesets メソッドで Cloudflare OWASP Core Ruleset の ID を取得します。または、次のルールセット ID を直接使います:

    List account rulesetsbash
    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. Get a zone entry point ruleset で、OWASP ルールセットをゾーンにデプロイしているルールの ID を取得します。action_parameters オブジェクトに OWASP ルールセットの ID()が設定された "action": "execute" のルールを探します。このルールは、OWASP ルールセットをすでにデプロイしている場合にのみ存在します。

    Get a zone entry point rulesetbash
    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. 特定したルールを Update a zone ruleset rule 操作で更新し、タグ paranoia-level-3paranoia-level-4 のルールを無効にするタグオーバーライドを追加します。

    Update a zone ruleset rulebash
    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 プロパティで、目的の異常スコアしきい値(整数値)を定義します。

この例では、マネージドルールセットの最後のルールに対するルールオーバーライドを作成し、スコアしきい値と実行するアクションを設定します。

  1. WAF のマネージドルールセットはアカウントレベルに存在するため、List account rulesets メソッドで Cloudflare OWASP Core Ruleset の ID を取得します。または、次のルールセット ID を直接使います:

    List account rulesetsbash
    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 を取得します。Get an account ruleset メソッドで、ルールセット内のルール一覧を取得します。または、次のルール ID を直接使います:

    Get an account rulesetbash
    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. Get a zone entry point ruleset で、OWASP ルールセットをゾーンにデプロイしているルールの ID を取得します(この例では <EXECUTE_RULE_ID>)。action_parameters オブジェクトに OWASP ルールセットの ID()が設定された "action": "execute" のルールを探します。このルールは、OWASP ルールセットをすでにデプロイしている場合にのみ存在します。

    Get a zone entry point rulesetbash
    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. Update a zone ruleset rule 操作で、エントリポイントルールセット内で特定したルールを更新し、手順 2 で特定した OWASP ルールセットの最後のルールに対するルールオーバーライドを追加します。次のプロパティと値を指定します。

    • "score_threshold": 60
    • "action": "managed_challenge"
    Update a zone ruleset rulebash
    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 ドキュメントの オーバーライドの例 を参照してください。

役に立ちましたか?