第4节:敏感数据识别与分类——DSPM的起点与基准

讲DSPM,你第一个要问的是:我们到底要保护什么?

数据安全不是盲人摸象。你得先知道哪些数据是敏感的,它们长什么样,藏在哪,怎么流动。这就引出了DSPM的核心第一步——敏感数据识别与分类。我做了这么多年数据安全,见过太多团队上来就买水印系统、搞加密,结果连敏感数据清单都没有。嗯,这就相当于你装了防盗门,却不知道家里最值钱的东西放在哪个抽屉。

4.1 敏感数据识别的目标与挑战

敏感数据识别不是简单扫一遍文件就完事。它的目标有三个:

  • 发现:找出所有存储了敏感数据的位置,不管是数据库、文件服务器、SaaS应用还是终端。
  • 归类:按照数据类别(比如个人身份信息、财务数据、知识产权)打标签。
  • 量级评估:摸清每个类别的数据量、分布密度、访问频次。

看起来简单?我踩过很多坑。有一次帮客户做PII识别,他们的HR系统里存着几十万员工身份证号,明文,而且同一个字段在不同表里叫“身份证”、“ID_card”、“personal_id”。说白了,光靠正则匹配根本抓不全。你想想看,一个字段名都不统一,怎么精准识别?

⚠️ 我曾经犯过的错: 以为只扫结构化数据就够了,结果非结构化文件里的客户合同、扫描件中的敏感信息完全漏了。识别范围一定要覆盖结构化、半结构化和非结构化三种形态。

4.2 分类体系:怎么分才合理?

分类是识别后的自然动作。但很多团队把分类搞得太复杂。我记得有个项目,客户设计了一套七级分类标签,什么“高度敏感加密级”、“内部使用级”、“公开级”……实际落地时运维人员根本记不住,最后全打成“默认敏感”。

我个人习惯:分类体系越简单越好,三层足够。

级别定义示例水印策略建议
高敏感泄露会严重损害组织或侵犯个人隐私身份证号、银行卡号、患者病历、源代码强制明水印+隐藏水印双层嵌入
中敏感泄露会造成一定影响或合规风险内部邮件、项目计划、部分客户名单至少嵌入隐藏水印,视情况加明水印
低敏感泄露风险低,属于公开或内部可共享信息产品手册、培训课件(不含机密)可选水印,重点监测高频下载行为
💡 一点经验: 分类标签不要只写名称,一定要绑定数据属性。比如“高敏感”同时打上“PII”、“GDPR适用”、“保留期限5年”。这样后面做水印策略的时候,自动化规则才写得出来。

4.3 识别技术:你有哪些武器?

敏感数据识别靠的是各种扫描引擎。主流技术分这么几类:

  • 正则表达式 / 模式匹配:最简单的武器,适合固定格式(身份证、银行卡号、IP地址)。我习惯把常用正则做成模板库,方便复用。
  • 关键词 + 上下文分析:比如找到“工资条”这个词,再检查附近是否有数字和“元”、“¥”等符号,命中率比纯关键词高很多。
  • 机器学习 / NLP:处理非结构化文本(合同、邮件、报告)和图片中的文字(OCR 之后)。说实话,ML 的召回率好,但误报率高,需要人工二次确认。
  • 元数据 / 标签继承:对已打标签的数据,通过血缘关系或字段映射自动传递分类。这样可以避免重复扫描。

举个例子,一段简单身份证号的正则检测,可以用 Python 示意:

import re
# 身份证号模式,只识别,不校验校验位
pattern = r'[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|10|11|12)(0[1-9]|[12]\d|3[01])\d{3}[\dXx]'
def find_id_numbers(text):
    return re.findall(pattern, text)

但要注意,这种扫描会误伤。我记得有一次扫描结果里出现大量“123456789012345678”,那是测试数据,都不是真实身份证。所以我在项目里都会加一步校验——用校验码再算一遍,或者跟黑名单比对。

4.4 从识别到分类的完整链路

光识别不分类,等于白做。光分类不标记,后面水印系统没法自动化。所以必须建立一条链路:
发现 → 识别 → 分类 → 标记 → 持续监控

下面这张图能帮你看清整体流程:

敏感数据识别与分类流程 数据发现 敏感识别 分类定级 元标记 持续监控 扫描引擎 正则+ML+上下文 三级分类体系 标签嵌入元数据

看到那个虚线回路了吗?持续监控不只是反馈,更重要的是当新数据流入或老数据更新时,能自动触发重识别和分类。我之前有个项目就是漏掉了这条回路,结果三个月后新上线的数据全是“未分类”,水印策略全都失效了……从那以后,我坚持每次识别分类都做成持续管道,而不是一次性任务。

4.5 输出物:你要交付什么?

识别与分类做完后,不是只写个报告就完了。DSPM 系统需要三个核心输出:

  1. 敏感数据资产清单:一张表,包含数据位置、类型、级别、访问权限、最后扫描时间。
  2. 分类标签字典:每个标签的含义、命中规则、水印策略映射关系。
  3. 异常数据流列表:识别过程中发现的矛盾(比如本该加密的数据却是明文、标为“低敏感”却包含大量 PII)。
📌 一个关键点: 分类标签一定要和水印系统能对接。在我的经验里,最省事的做法是让分类引擎直接把标签写入数据对象的元数据(比如文件头的 x-attrib、数据库扩展属性或列注释)。这样水印系统读取元数据就能自动选择嵌入策略,不需要二次配置。

最后再说一句:敏感数据识别不是一劳永逸的。业务变了,数据变了,法规也变了。你至少要每季度做一次全量扫描,每月做一次增量扫描。别偷懒,数据安全不是“做完”的事,是“持续做”的事。