4. 数据分类分级:敏感数据识别规则、内置分类器与自定义标签体系

数据分类分级,说白了就是搞清楚你手里到底有哪些敏感数据、它们长什么样、重要程度如何。我在很多混合云项目里见过这种情况:客户说“我们有数据安全”,结果一查,连数据字典都没建好。你想想看,连敌人长啥样都不知道,怎么防守?

这一节,我们把三个核心东西讲透:识别规则怎么写、内置分类器怎么用、自定义标签怎么搭。

4.1 敏感数据识别规则:正则之外还有啥?

识别规则是分类引擎的“眼睛”。最常见的做法就是正则表达式(Regex),比如身份证号18位、信用卡号16位。但光靠正则,坑很多。

举个例子: 一个字段看起来像身份证号,其实是员工编号人工录入的巧合——正则直接打标为PII,结果全员告警,运维烦死了。

我个人习惯把识别规则分成三层:

  • 模式层: 正则、关键词、字典匹配。适合固定格式的数据。
  • 上下文层: 看相邻列名、表名、注释。比如字段名叫 “user_id” 而且注释里有“身份证”,即便匹配上了,也要再验证。
  • 行为层: 数据写的时间、频率、访问者角色。只靠一次扫描可能误报,加上行为特征才稳。
层级方法典型场景误报率
模式层正则、词典信用卡号、邮箱、手机号中~高
上下文层列名/表名分析DB schema 注释匹配低~中
行为层访问模式、时间分布日志中数据异常提取低

小技巧: 我在做某个金融客户时,把正则 + 上下文两层叠加,PII 识别准确率从 72% 升到了 94%。你可以在 DSPM 规则引擎里配两层规则优先级——模式层先跑,上下文层只在候选结果上跑,性能也高。

4.2 内置分类器:PII / PHI / PCI 怎么开箱即用?

大多数 DSPM 平台都带了预置分类器。PII(个人身份信息)、PHI(医疗健康信息)、PCI(支付卡行业数据)是三大标配。为什么我用“开箱即用”这个词?因为真正的坑往往不在分类器本身,而在于你信了“开箱即用”。

我遇到过一家 SaaS 公司,直接启用 PCI 分类器,结果把内部测试的假卡号全检测出来了,告警量暴涨 300%。嗯,这里要注意——内置分类器通常包含多个变体:

  • PCI: 主卡号(PAN)、CVV、有效期、磁条数据。其中 PAN 又分 Visa/MasterCard/Amex/Discover 等前缀校验。
  • PII: 姓名、地址、电话、邮箱、身份证号(各国)、护照号、驾驶证。
  • PHI: 病历号、诊断代码(ICD-10)、药物名称、保险计划号。

每个内置分类器背后都有一组识别规则和置信度阈值。我建议你:

  1. 先在透传模式(只记录不告警)下跑一周,看命中数据。
  2. 调整置信度阈值。比如 PAN 匹配默认为 0.8,但如果你业务中大量使用 16 位数字订单号,可以升到 0.95。
  3. 白名单那些明确的非敏感数据(如测试环境卡号、公开数据)。
# 示例:调低 PHI 分类器诊断代码的阈值
classification_rule "phi_diagnosis_code" {
  type = "builtin"
  classifier_name = "icd10"
  confidence_threshold = 0.85   # 默认 0.9,实际项目中测试发现很多正确匹配落在 0.85~0.9 之间
  action = "label:PHI"
}

4.3 自定义标签体系:别让分类变成“为分类而分类”

内置分类器够用吗?说实话,大部分企业不够。因为你独有的业务数据——比如客户等级、交易对手风险分、内部项目代号——平台根本不认识。这就得自己搭标签体系。

我个人习惯把标签体系设计成三层结构:

  • 一级标签(数据域): 如“客户数据”“财务数据”“医疗数据”“员工数据”。粗粒度,方便权限管控基于域。
  • 二级标签(敏感等级): 如“公开”“内部”“敏感”“高度敏感”“绝密”。推荐 5 级,不要超过 5 级,否则运维会疯。
  • 三级标签(合规标识): 如“GDPR_Covered”“CCPA”“HIPAA”“PCI”。直接映射法规。

踩过的坑: 我曾经帮一家银行设计标签,业务部门非要 8 级敏感度,结果半年后没人记得每级含义,告警无人响应。后来硬改成 4 级 + 合规标签组合,反而清晰。

自定义标签怎么跟识别规则绑定?通常有两种方式:

绑定方式描述适用场景
基于规则的自动打标扫描匹配到规则后直接赋值标签格式固定的敏感字段(如身份证、卡号)
基于样本的机器学习打标提供少量正负样本,引擎学习后推广非结构化文本、模糊语义(如合同条款)
手动/审批打标数据所有者人工标注,系统同步高度不确定的业务数据
# 自定义标签定义示例(YAML 格式)
labels:
  - domain: financial_trade
    name: "交易对手风险等级"
    levels: ["低", "中", "高", "极高"]
    rules:
      - pattern: "ISO 20022 报文头中的对方机构编码"
        context_col_names: ["counterparty_id", "opponent_bic"]
        confidence: 0.9
    compliance_mapping: ["MiFID_II", "Dodd_Frank"]

4.4 动手:识别、分类、打标全套流程

讲这么多,不如看一张完整的流程。下图展示了数据从扫描到标签落库的全链路:

数据分类分级流程 1. 数据源接入 2. 模式层匹配 3. 上下文验证 4. 行为分析 内置分类器 (PII/PHI/PCI) 自定义 5. 标签生成 & 元数据存储 低置信度回退 上下文不匹配→回退模式层 💡 说明: 模式层是全表扫描,上下文层只 对候选数据做二次验证,降低计算 🔁 反馈机制: 低置信度结果不会丢弃,会进入 人工审核池,优化下一轮规则

4.5 避坑指南

分类分级做到最后,最怕的是“分类了但没分级”。我见过一个团队,把所有数据都打上了“敏感”标签——等于没分。所以:

  • 标签粒度要对齐业务模型, 别只凭技术文档定义。找业务方一起过标签草案。
  • 周期性复审: 我建议每个季度重新扫描一次之前未匹配的数据。业务在变,数据含义也在变。
  • 权重要分清: 敏感等级决定加密、审计;合规标识决定跨境、留存周期。别混在一起用。

我曾经遇到过: 一个客户把 HIPAA 标识和“敏感等级”挂在一起,导致所有 PHI 数据都被加了一把强加密,结果 BI 报表出不来,数据科学家直接抱怨。所以合规标识和敏感等级是两条线,分开维护。

好了,这一章的核心就这些。记住:识别规则是骨架,内置分类器是肌肉,自定义标签是神经——三者配合,数据分类分级才真正能落地。