第4节:敏感数据识别与分类——DSPM的起点与基准
讲DSPM,你第一个要问的是:我们到底要保护什么?
数据安全不是盲人摸象。你得先知道哪些数据是敏感的,它们长什么样,藏在哪,怎么流动。这就引出了DSPM的核心第一步——敏感数据识别与分类。我做了这么多年数据安全,见过太多团队上来就买水印系统、搞加密,结果连敏感数据清单都没有。嗯,这就相当于你装了防盗门,却不知道家里最值钱的东西放在哪个抽屉。
4.1 敏感数据识别的目标与挑战
敏感数据识别不是简单扫一遍文件就完事。它的目标有三个:
- 发现:找出所有存储了敏感数据的位置,不管是数据库、文件服务器、SaaS应用还是终端。
- 归类:按照数据类别(比如个人身份信息、财务数据、知识产权)打标签。
- 量级评估:摸清每个类别的数据量、分布密度、访问频次。
看起来简单?我踩过很多坑。有一次帮客户做PII识别,他们的HR系统里存着几十万员工身份证号,明文,而且同一个字段在不同表里叫“身份证”、“ID_card”、“personal_id”。说白了,光靠正则匹配根本抓不全。你想想看,一个字段名都不统一,怎么精准识别?
4.2 分类体系:怎么分才合理?
分类是识别后的自然动作。但很多团队把分类搞得太复杂。我记得有个项目,客户设计了一套七级分类标签,什么“高度敏感加密级”、“内部使用级”、“公开级”……实际落地时运维人员根本记不住,最后全打成“默认敏感”。
我个人习惯:分类体系越简单越好,三层足够。
| 级别 | 定义 | 示例 | 水印策略建议 |
|---|---|---|---|
| 高敏感 | 泄露会严重损害组织或侵犯个人隐私 | 身份证号、银行卡号、患者病历、源代码 | 强制明水印+隐藏水印双层嵌入 |
| 中敏感 | 泄露会造成一定影响或合规风险 | 内部邮件、项目计划、部分客户名单 | 至少嵌入隐藏水印,视情况加明水印 |
| 低敏感 | 泄露风险低,属于公开或内部可共享信息 | 产品手册、培训课件(不含机密) | 可选水印,重点监测高频下载行为 |
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 从识别到分类的完整链路
光识别不分类,等于白做。光分类不标记,后面水印系统没法自动化。所以必须建立一条链路:
发现 → 识别 → 分类 → 标记 → 持续监控
下面这张图能帮你看清整体流程:
看到那个虚线回路了吗?持续监控不只是反馈,更重要的是当新数据流入或老数据更新时,能自动触发重识别和分类。我之前有个项目就是漏掉了这条回路,结果三个月后新上线的数据全是“未分类”,水印策略全都失效了……从那以后,我坚持每次识别分类都做成持续管道,而不是一次性任务。
4.5 输出物:你要交付什么?
识别与分类做完后,不是只写个报告就完了。DSPM 系统需要三个核心输出:
- 敏感数据资产清单:一张表,包含数据位置、类型、级别、访问权限、最后扫描时间。
- 分类标签字典:每个标签的含义、命中规则、水印策略映射关系。
- 异常数据流列表:识别过程中发现的矛盾(比如本该加密的数据却是明文、标为“低敏感”却包含大量 PII)。
最后再说一句:敏感数据识别不是一劳永逸的。业务变了,数据变了,法规也变了。你至少要每季度做一次全量扫描,每月做一次增量扫描。别偷懒,数据安全不是“做完”的事,是“持续做”的事。