データ損失防止 (DLP) ポリシーの構築
Cloudflare Zero Trust内でデータ損失防止 (DLP) ツールを使用するには、まずDLPプロファイルを定義する必要があります。DLPプロファイルは、辞書、事前構築された検出、およびカスタムロジックを含む複雑なオブジェクトであり、Gatewayポリシー内でセレクタとして参照できます。
Cloudflareが事前定義したDLPプロファイルを使用するか、正規表現 (regex)、事前定義された検出エントリ、およびDLPデータセットに基づいて独自のカスタムプロファイルを作成できます。
- In Zero Trust ↗, go to DLP > DLP Profiles.
- Choose a predefined profile and select Configure.
- Enable one or more Detection entries according to your preferences. The DLP Profile matches using the OR logical operator — if multiple entries are enabled, your data needs to match only one of the entries.
- Select Save profile.
-
In Zero Trust ↗, go to DLP > DLP Profiles.
-
Select Create profile.
-
Enter a name and optional description for the profile.
-
Add custom or existing detection entries.
Add a custom entry
-
Select Add custom entry and give it a name.
-
In Value, enter a regular expression (or regex) that defines the text pattern you want to detect. For example,
test\d\dwill detect the wordtestfollowed by two digits.- Regular expressions are written in Rust. We recommend validating your regex with Rustexp ↗.
- DLP detects UTF-8 characters, which can be up to 4 bytes each. Custom text pattern detections are limited to 1024 bytes in length.
- DLP does not support regular expressions with
+or*operators because they are prone to exceeding the length limit. For example, the regex patterna+can detect an infinite number ofacharacters. We recommend usinga{min,max}instead, such asa{1,1024}.
-
To save the detection entry, select Done.
Add existing entries
Existing entries include predefined detection entries and DLP datasets.
- Select Add existing entries.
- Choose which entries you want to add, then select Confirm.
- To save the detection entry, select Done.
-
-
(Optional) Configure Advanced settings for the profile.
-
Select Save profile.
多くのCloudflareユーザーにとって、Zero Trustは機密データの損失を防ぐための唯一の手段の一つです。他のユーザーにとって、Zero Trustは複雑なインターネットおよびSaaSアプリケーションのセキュリティ戦略の初期のインライン対策の一つかもしれません。どのモデルに最も似ているかにかかわらず、効果的で適切なDLPポリシーと実践を開発することは、まず第一原則の定義から始まります。
組織が個人識別情報 (PII)、保護された健康情報 (PHI)、財務情報、またはソースコードなどの既存の分類に適合する一般的なデータパターンを最も懸念している場合、デフォルトの事前定義されたプロファイルの使用をお勧めします。
組織のニーズにより適合させるために、既存のライブラリとカスタム文字列検出またはデータベースの両方に一致する複雑なプロファイルを構築することもできます。例えば:
| Selector | Operator | Value | Logic | Action |
|---|---|---|---|---|
| DLP Profile | in | Credentials and Secrets | Or | Block |
| DLP Profile | in | AWS Key Dataset |
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/rules \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>" \--header "Content-Type: application/json" \--data '{ "action": "block", "description": "Detect secrets and AWS keys", "enabled": true, "filters": [ "http" ], "name": "Secrets and AWS keys", "precedence": 0, "traffic": "any(dlp.profiles[*] in <CREDENTIALS_DLP_PROFILE_UUID>) or any(dlp.profiles[*] in <AWS_DLP_PROFILE_UUID>)"}'データパターンが多様な形式や文脈を持つ場合、1つまたは複数の正規表現を使用してカスタムプロファイルを構築することを検討してください。
例えば、ユーザーがCF1234-56789形式の製品SKUを共有する際に検出するためにカスタム式を使用できます:
-
次のカスタムエントリを使用してカスタムプロファイルを構築します:
Detection entry name Value Product SKUs CF[0-9]{1,4}-[0-9]{5} -
次の式を使用してHTTPポリシーを作成します:
Selector Operator Value Logic Action DLP Profile in Product SKUs And Block User Email matches regex [a-z0-9]{0,15}@example.com
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/rules \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>" \--header "Content-Type: application/json" \--data '{ "action": "block", "description": "Detect product SKUs shared by users in organization", "enabled": true, "filters": [ "http" ], "name": "Detect product SKU leaks", "precedence": 0, "traffic": "any(dlp.profiles[*] in <SKU_DLP_PROFILE_UUID>)", "identity": "identity.email matches \"[a-z0-9]{0,15}@example.com\""}'データが定義した明確なデータセットである場合、Exact Data MatchまたはCustom Wordlist機能で使用するデータベースをアップロードすることによりプロファイルを構築できます。Exact Data MatchとCustom Wordlistにはいくつかの重要な違いがあります:
| Exact Data Match | Custom Wordlist | |
|---|---|---|
| Encryption | ハッシュ化され、暗号化されたトラフィックと比較される | プレーンテキストとして保存される |
| Payload logging | ログ内でマッチが赤actedされる | ログ内にマッチが表示される |
| Usage | PII(名前、住所、クレジットカード番号など) | 非機密データ(知的財産やSKU番号など) |
高度に機密性の高いデータセットにはExact Data Matchを使用し、キーワードのリストにはCustom Wordlistsを使用することをお勧めします。
データセットが変化し成長するにつれて、Cloudflare Zero Trust内のデータソースを更新するためのパイプラインを構築することをお勧めします。詳細については、アカウントチームにお問い合わせください。
データにすでにMicrosoft Information Protection (MIP) ラベリングスキーマが含まれている場合、Cloudflareはそれらの値を自動的に転送中に検出できます。始めるには、Microsoft 365アカウントをCASB統合に接続します。Cloudflareは既存のMIP定義をZero Trustに自動的に取り込みます。その後、MIP定義を使用してGatewayポリシーで使用するDLPプロファイルを構築できます。
詳細については、統合プロファイルを参照してください。
データ損失防止をトラフィックに適用し、誤検知の可能性を最小限に抑え、実用的なデータを収集する最良の方法は、機密データポリシーの中で既知の既知から始めることです。すべてのトラフィックにわたってSSNや財務情報などの機密データを検出するポリシーを構築するのではなく、機密データタイプと既知のデータソースまたは高リスクポイントをターゲットにしたポリシーを構築することから始めるべきです。これらのソースは、組織内または外部に存在する可能性があります。
多くの組織は、ユーザーのデバイスから重要なSaaSアプリケーションに流出する財務情報を検出し、ログに記録したいと考えています。誤検知のリスクを制限し、ログのノイズをフィルタリングするために、Cloudflareは最初の一連のポリシーを構築して、ターゲットデータとターゲット先の両方を指定することをお勧めします。例えば、ChatGPTやGeminiなどのAIチャットボットに財務情報が送信されるのをブロックすることができます:
| Selector | Operator | Value | Logic | Action |
|---|---|---|---|---|
| DLP Profile | in | Financial Information | And | Block |
| Content Categories | in | Artificial Intelligence |
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/gateway/rules \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{ "action": "block", "description": "Prevent financial information from being shared with AI tools", "enabled": true, "filters": [ "http" ], "name": "Block AI financial info", "precedence": 0, "traffic": "any(dlp.profiles[*] in <FINANCIAL_INFO_DLP_PROFILE_UUID>) and any(http.request.uri.content_category[*] in {184})"}'既知のソースからのデータの流れと量を分析した後、より一般的なソースに対してより専門的または明示的なデータセットに焦点を当て始めることができます。機密データが意図的に転送されることが知られている内部の場所を許可することを検討するかもしれません。
ログをレビューし、両方のタイプのポリシーに対する誤検知率を評価することで、一定の信頼レベルを得た後、データ損失防止ポリシーをより広範囲に実験する自信を持つことができます。