Cloudflare Sensitive Data Detection マネージドルールセットは、オリジンサーバーが発生させるデータ漏洩の特定を助けます。ルールはレスポンス本文で一般的な機密データのパターンを探します。対象は次のとおりです。
- 個人を特定できる情報 ↗(PII)— パスポート番号など。
- 金融情報 — クレジットカード番号など。
- シークレット — API キーなど。
Cloudflare Sensitive Data Detection をオンにしても、検出はレスポンス経路の外で行われるため、追加のレイテンシは発生しません。そのため、ルールは常に Log アクションでデプロイされます(すでに送ったレスポンスはブロックできません)。オリジンサーバーから出ていく機密データを把握できます。
オンにすると、Cloudflare Sensitive Data Detection は訪問者へ送るすべてのレスポンスを確認します(カスタムのフィルター式を定義している場合はそれに従います)。キャッシュからのレスポンスと Workers が扱うレスポンスも含まれます。
検出は、レスポンス内のテキスト、HTML、JSON、XML コンテンツを最大 1 MB まで扱います。
現時点では、Cloudflare Sensitive Data Detection は 一致ペイロードのログ をサポートしていません。
-
Cloudflare ダッシュボードで、Security の Settings ページを開きます。
Settings を開く ↗ -
(任意)Web application exploits で絞り込みます。
-
Sensitive data detection をオンにして、ルールセットをデプロイします。
Cloudflare Sensitive Data Detection ルールセットは、次のレベルで設定(またはオーバーライド)できます。
より具体的な設定(ルールおよびタグレベル)は、より広い設定(ルールセットレベル)より優先されます。詳細は、Ruleset Engine のドキュメントの マネージドルールセットをオーバーライドする を参照してください。
Cloudflare ダッシュボードでは、次の Cloudflare Sensitive Data Detection の設定を変更(またはオーバーライド)できます。
- Scope: スコープにカスタムのフィルター式を定義すると、Cloudflare Sensitive Data Detection ルールセットは受信リクエストの一部にだけ適用されます。ダッシュボードでデプロイしたマネージドルールセットは、デフォルトですべての受信トラフィックに適用されます。
Cloudflare Sensitive Data Detection ルールセットをデプロイ したあと、ダッシュボードで次の手順で設定します。
-
Cloudflare ダッシュボードで、Security の Settings ページを開きます。
Settings を開く ↗ -
(任意)Web application exploits で絞り込みます。
-
Sensitive data detection で Configured ruleset: <SCOPE> を選び、ルールセットのスコープを編集します。
マネージドルールセットをすべての受信リクエスト(グローバルスコープ)に適用するか、一部に適用するかを決めます。 -
Custom filter expression を選んだ場合は、Cloudflare Sensitive Data Detection ルールセットをどのリクエストに適用するかを決めるフィルター式を定義します。
-
Next を選び、次に Save を選びます。
選択したタグのうち少なくとも 1 つが付いたルールに対して、ダッシュボードで次の設定を変更(またはオーバーライド)できます。
- Rule status: 選択したタグを持つすべてのルールのルールステータスを設定します。
Cloudflare Sensitive Data Detection ルールセットをデプロイ したあと、ダッシュボードで特定タグのルールを次の手順で設定します。
-
Cloudflare ダッシュボードで、Security の Settings ページを開きます。
Settings を開く ↗ -
(任意)Web application exploits で絞り込みます。
-
Sensitive data detection で Configured ruleset: <SCOPE> を選び、Next を選びます。
-
Browse rules を選びます。
-
検索入力の下で 1 つ以上のタグを選び、それらのタグを持つルールで絞り込みます。次に、テーブル左上のチェックボックスを選んで、現在のページに表示されているすべてのルールを選択します。
現在のページにすべてのルールが表示されていない場合は、Select all <NUMBER> rules を選び、選択したタグを持つすべてのページのルールへ選択を広げます。
-
テーブル右上に表示されるボタン(例: Set status)を使い、選択したルールの設定を 1 つ以上更新します。
-
Next を選択します。
-
選択したタグを持つ新しいルールにも、選んだフィールド値を適用するかを尋ねるダイアログが表示されます。
- 選択したタグを持つ新しいルールにも設定を適用する場合は、Include new rules を選びます。
- 選択したルールにだけ設定を適用する場合は、Only selected rules を選びます。
-
Save を選択します。
選択したルールに対して、ダッシュボードで次の設定を変更(またはオーバーライド)できます。
- Rule status: 1 つのルール、または複数選択した場合は選択したルールのステータス(有効または無効)を設定します。
Cloudflare Sensitive Data Detection ルールセットをデプロイ したあと、ダッシュボードで個々のルールセットルールを次の手順で設定します。
-
Cloudflare ダッシュボードで、Security の Settings ページを開きます。
Settings を開く ↗ -
(任意)Web application exploits で絞り込みます。
-
Sensitive data detection で Configured ruleset: <SCOPE> を選び、Next を選びます。
-
Browse rules を選びます。
-
利用できるフィルターでルールを検索します。
-
結果一覧で、表示されているドロップダウンリストとトグルを使い、各ルールの値を必要に応じて変更します。たとえば、ルールの横の Status トグルでルールのステータスを変更します。
複数のルールに同じ値を設定するには、設定するすべてのルールのチェックボックスを選びます。現在のページにすべてのルールが表示されていない場合は、Select all <NUMBER> rules を選び、すべてのページのルールへ選択を広げられます。次に、テーブル右上に表示されるボタン(例: Set status)を使い、選択したルールのフィールドを 1 つ以上更新します。
-
Next を選び、次に Save を選びます。
API で特定ゾーンに Cloudflare Sensitive Data Detection ルールセットをデプロイするには、http_response_firewall_managed フェーズの エントリポイントルールセット に、execute アクションのルールを作成します。
この例は、指定したゾーン($ZONE_ID)の http_response_firewall_managed フェーズに、マネージドルールセットを実行するルールを作成して、Cloudflare Sensitive Data Detection ルールセットをデプロイします。マネージドルールセット内のルールは、すべての受信リクエストに対して実行されます。
-
Get a zone entry point ruleset オペレーションを呼び出し、
http_response_firewall_managedフェーズのエントリポイントルールセットの定義を取得します。この作業には ゾーン ID が必要です。Get a zone entry point rulesetbash curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_response_firewall_managed/entrypoint" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "description": "Zone-level phase entry point (response)", "id": "<RULESET_ID>", "kind": "zone", "last_updated": "2024-03-16T15:40:08.202335Z", "name": "zone", "phase": "http_response_firewall_managed", "rules": [ // ... ], "source": "firewall_managed", "version": "10" }, "success": true, "errors": [], "messages": [] } -
エントリポイントルールセットがすでに存在する場合(つまり、
200 OKステータスコードとルールセット定義を受け取った場合)は、レスポンス内のルールセット ID を控えます。次に、ゾーンルールセットのルールを作成する 操作を呼び出して、既存のルールセットに Cloudflare Sensitive Data Detection マネージドルールセット(ID はe22d83c647c64a3eae91b71b499d988e) をデプロイするexecuteルールを追加します。デフォルトでは、ルールはルールセット内の既存ルール一覧の末尾に追加されます。Create a zone ruleset rulebash curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "action": "execute", "action_parameters": { "id": "e22d83c647c64a3eae91b71b499d988e" }, "expression": "true", "description": "Execute the Cloudflare Sensitive Data Detection managed ruleset" }'{ "result": { "id": "<RULESET_ID>", "name": "Zone-level phase entry point (response)", "description": "", "kind": "zone", "version": "11", "rules": [ // ... any existing rules { "id": "<RULE_ID>", "version": "1", "action": "execute", "action_parameters": { "id": "e22d83c647c64a3eae91b71b499d988e", "version": "latest" }, "expression": "true", "description": "Execute the Cloudflare Sensitive Data Detection managed ruleset", "last_updated": "2024-03-18T18:08:14.003361Z", "ref": "<RULE_REF>", "enabled": true } ], "last_updated": "2024-03-18T18:08:14.003361Z", "phase": "http_response_firewall_managed" }, "success": true, "errors": [], "messages": [] } -
エントリポイントルールセットが存在しない場合(ステップ 1 で
404 Not Foundステータスコードを受け取った場合)、ゾーンルールセットを作成する 操作で作成します。rules配列に、Cloudflare Sensitive Data Detection マネージドルールセット(ID はe22d83c647c64a3eae91b71b499d988e) を ゾーンのすべての受信リクエスト 向けに実行するルールを 1 件含めます。Create a zone rulesetbash curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "My ruleset", "description": "Entry point ruleset for WAF managed rulesets (response)", "kind": "zone", "phase": "http_response_firewall_managed", "rules": [ { "action": "execute", "action_parameters": { "id": "e22d83c647c64a3eae91b71b499d988e" }, "expression": "true", "description": "Execute the Cloudflare Sensitive Data Detection managed ruleset" } ] }'
API で Cloudflare Sensitive Data Detection managed ruleset を設定するには、Rulesets API を使って オーバーライド を作成します。次の設定ができます。
ルールオーバーライドを作成して、個々のルールを無効にします。
API でオーバーライドを作成する例は、マネージドルールセットをオーバーライドする を参照してください。
API でマネージドルールセットを扱う詳細は、Ruleset Engine のドキュメントにある マネージドルールセットを使う を参照してください。
Cloudflare Sensitive Data Detection が検出したデータ漏洩を確認するには、次を行います。
- マネージドルールセットが生成したイベントがないか、Security Events を定期的に確認します。
- WAF アラート を設定し、WAF イベントの急増を通知します。Advanced Security Events Alert では、Enterprise プランで 1 つ以上のドメインで絞り込み、
Data Loss Protectionサービスで絞ると、Sensitive Data Detection に関する通知だけを受け取れます。