为了在 Cloudflare Zero Trust 中使用数据丢失防护 (DLP) 工具,你首先需要定义你的 DLP 配置文件。DLP 配置文件是带有字典、预建检测和自定义逻辑的复杂对象,你可以在 Gateway 策略中将其作为选择器进行引用。
你可以使用由 Cloudflare 预定义的 DLP 配置文件,也可以基于正则表达式 (regex)、预定义检测条目和 DLP 数据集创建你自己的自定义配置文件。
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Data loss prevention(数据防泄露) > Profiles(配置文件)。
- 选择一个预定义配置文件并选择 Edit(编辑)。
- 根据您的偏好启用一个或多个 Detection entries。
- 选择 Save profile(保存配置文件)。
大多数预定义配置文件在任何已启用的检测条目匹配时即触发。Personally Identifiable Information (PII)(个人可识别信息)记录配置文件是例外,它要求在临近区域内至少有三个唯一检测条目匹配时才会触发。
-
在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Data loss prevention(数据防泄露) > Profiles(配置文件)。
-
选择 Create profile(创建配置文件)。
-
为配置文件输入名称和可选描述。
-
向配置文件添加检测条目。
创建自定义条目
-
选择 Create custom entry(创建自定义条目)。
-
选择您要创建的检测条目类型并配置其值。
有关受支持的检测条目类型的信息,请参阅配置检测条目。
-
要保存检测条目,请选择 Done(完成)。
-
-
(可选)添加数据分类以包含可重用的分类规则。
- 选择 Add data classes(添加数据分类)
- 选择您要添加的数据分类,然后选择 Confirm(确认)
-
(可选)使用标签作为配置文件的匹配条件。
- 选择灵敏度模式和最低灵敏度级别。
- 选择数据标签组和一个或多个数据标签。
有关标签、模板和数据分类的更多信息,请参阅数据分类。
-
(可选)为配置文件配置Profile settings(配置文件设置)。
-
选择 Save profile(保存配置文件)。
对于许多 Cloudflare 用户来说,Zero Trust 通常是防止敏感数据丢失的唯一步骤。对于其他用户,Zero Trust 可能是复杂的互联网和 SaaS 应用程序安全策略的早期内联措施之一。无论你最类似于哪种模式,制定有效且恰当的 DLP 策略和实践都是从第一原理定义开始的。
如果你的组织最关注符合个人身份信息 (PII)、受保护健康信息 (PHI)、财务信息或源代码等现有分类的通用数据模式,我们建议使用默认预定义配置文件。
为了帮助其更好地匹配你组织的需求,你还可以构建一个复杂的配置文件,将数据与现有的库和自定义字符串检测或数据库进行匹配。例如:
| 选择器 | 运算符 | 值 | 逻辑 | 操作 |
|---|---|---|---|---|
| DLP Profile(DLP 配置文件) | in | Credentials and Secrets | Or(或) | Block(阻止) |
| DLP Profile(DLP 配置文件) | in | AWS Key Dataset |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"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>)"
}'如果你的数据模式采取许多不同的形式和上下文,请考虑使用一个或多个正则表达式构建自定义配置文件。
例如,你可以使用自定义表达式来检测用户何时共享格式为 CF1234-56789 的产品 SKU:
-
使用以下自定义条目构建自定义配置文件:
检测条目名称 值 Product SKUs CF[0-9]{1,4}-[0-9]{5} -
创建带以下表达式的 HTTP 策略:
选择器 运算符 值 逻辑 操作 DLP Profile(DLP 配置文件) 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" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"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) | |
|---|---|---|
| 加密 | 哈希化并与加密流量进行对比 | 以明文形式存储 |
| 有效载荷日志记录 | 匹配项在日志中进行遮蔽 | 匹配项显示在日志中 |
| 用途 | PII(如姓名、地址和信用卡号) | 非敏感数据(如知识产权和 SKU 编号) |
我们建议对高度敏感的数据集使用精准数据匹配,对关键字列表使用自定义词表。
随着你的数据集发生改变和增长,我们建议构建流水线以更新 Cloudflare Zero Trust 中的数据源。有关更多信息,请联系你的账户团队。
如果你的数据已包含 Microsoft 信息保护 (MIP) 标记 Schema,Cloudflare 可以自动在传输中检测这些值。要开始使用,请通过 CASB 集成连接你的 Microsoft 365 账户。Cloudflare 会自动将你现有的 MIP 定义拉取到 Zero Trust 中。然后你可以使用 MIP 定义来构建用于 Gateway 策略的 DLP 配置文件。
有关更多信息,请参阅集成配置文件。
开始将数据丢失防护应用于你的流量、最大程度减少误报机会并收集可操作数据的最佳方式是,从敏感数据策略中已知的事物开始。与其构建策略在所有流量中检测诸如 SSN 或财务信息等敏感数据,你应当从构建既针对敏感数据类型也针对已知数据源或高风险点的目的地的策略开始。这些源可以在你的组织内部或外部。
许多组织想要检测并记录从用户设备发往关键 SaaS 应用程序的财务信息出向。为限制误报风险并过滤出日志记录杂音,Cloudflare 建议构建你的第一系列策略以指定目标数据和目标目的地。例如,你可以阻断财务信息被发送到 AI 聊天机器人(如 ChatGPT 和 Gemini):
| 选择器 | 运算符 | 值 | 逻辑 | 操作 |
|---|---|---|---|---|
| DLP Profile(DLP 配置文件) | in | Financial Information | And | Block(阻止) |
| Content Categories(内容类别) | in | Artificial Intelligence |
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"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})"
}'一旦你从已知源分析了数据的流向和规模,你就可以开始关注适用于更通用源的更专业或显式的数据集。你可能想要允许作为已知内部位置(其中敏感数据被有意识地传输)的源。
在通过审查日志并评估两种类型策略的误报率从而建立一定水平的信心之后,你可以对更大范围地试验数据丢失防护策略感到更加自信。