敏感数据分类与分级
数据分类分级,说白了就是先把数据分门别类,再给每类数据标个"危险等级"。很多团队一上来就写正则写指纹,结果漏了核心数据或者把公开信息当机密处理——我见过不止一次。
为什么这么重要?因为不同敏感等级的数据,保护措施完全不同。身份证号泄露是刑事风险,而你的公开邮箱被爬走,最多算个骚扰。没有分类分级,安全策略就像在靶场乱开枪。
2.1 分类标准:按业务属性和法律要求
分类维度其实不复杂,核心就两条:业务属性和法律属性。
- 业务属性:数据归属于哪个业务板块?用户信息、交易记录、财务数据、研发资料、运维日志……每个公司业务不同,但大方向类似。
- 法律属性:是否受特定法规管辖?比如《个人信息保护法》下的个人敏感信息,《数据安全法》下的重要数据、核心数据。
我个人习惯先画出业务域,再对照法规清单打标签。曾经有个客户把员工的健康体检数据放在"非敏感"分类里——实际上这属于个人敏感信息,按个保法必须单独授权。好在发现得早,不然罚款够买几台服务器了。
| 分类维度 | 类型 | 典型实例 | 法律依据 |
|---|---|---|---|
| 个人身份信息 | 基础身份 | 身份证号、姓名、手机号 | 个人信息保护法 |
| 金融信息 | 账户资产 | 银行卡号、交易金额、账户余额 | 金融信息安全规范 |
| 生物特征 | 生物识别 | 人脸图像、指纹信息、声纹 | 个人信息保护法 + 等保 |
| 企业商业秘密 | 核心技术 | 源代码、技术文档、客户名单 | 反不正当竞争法 |
| 业务运营数据 | 内部流程 | 员工薪资、采购合同、审批流程 | 企业数据安全管理要求 |
2.2 分级体系:确定保护力度
分类是定性,分级是定量——你想想看,同样是个人数据,身份证号和昵称能一样吗?
业内主流采用 4级模型:
- L1 公开数据:故意对外发布的信息,比如公司官网联系方式、新闻稿。泄露后无影响。
- L2 内部数据:仅限公司内部使用,比如员工通讯录、内部培训资料。泄露后造成轻微不便。
- L3 敏感数据:受法规保护或业务关键,比如身份证号、银行卡号、业务报表。泄露后可能导致法律责任或财务损失。
- L4 核心数据:最高等级,关乎企业生存或国家安全,比如密钥种子、商业源代码、特殊行业的重要数据。泄露后后果严重。
另外注意,同一份数据在不同上下文里可能不同级。举个例子:明文手机号是L3,但隐去中间四位的手机号可能降到L2甚至L1。这就是为什么指纹识别和正则匹配要联合使用——正则负责定位,指纹负责判断是否已经是脱敏后的版本。
2.3 分类分级实施流程
光有理论不行,落地才是硬道理。我建议按五步走:
- 数据资产盘点:先搞清楚你有哪些数据源(数据库表、API、文件目录、日志流)。
- 分类打标签:按业务域和法律要求逐字段标注分类。别忘了半结构化数据(JSON、XML)里的嵌套字段。
- 赋值定级:结合法规要求和业务影响分析给每个分类打上L1-L4的初始级。可以考虑用影响评分矩阵辅助决策。
- 冲突与豁免裁定:当同一字段跨分类时(比如"订单金额"既属金融信息又属运营数据),取最高级。我曾遇到过财务部门坚持把合同金额定L2,但法务认为涉及商业秘密应定L3——最终裁定L3。
- 标签持久化与更新:在元数据管理平台或数据字典里记录分类分级结果,并设定定期复核机制。数据是会变的,尤其是业务字段含义调整时。
2.4 分类分级与正则/指纹的关系
你可能会问:这章讲分类分级,跟正则指纹有什么关系?关系大了——正则和指纹的配置策略,直接取决于分类分级结果。
举个例子:
- L1公开数据:不需要任何检测规则。
- L2内部数据:可以用弱正则初筛,比如匹配"员工"、"内参"等关键词。
- L3敏感数据:必须用强正则 + 校验码验证,比如身份证号要算第18位校验和。
- L4核心数据:除了强正则可以再用指纹库精确匹配(比如一段代码的hash值),避免误报和漏报。
我把它画成了一张决策流程图,方便你理解。
看懂这张图了吗?核心逻辑就是:数据定级越高,检测手段就要越严。L1根本不参与扫描,节省算力;L2粗筛一遍,快速过;L3需要较真校验,比如身份证号、银行卡号必须过Luhn算法;L4则要拿指纹库做精确碰撞,避免误把脱敏后的影子数据当成敏感数据报出来。
我记得有一次帮金融客户做合规审计,发现他们把L4的交易密钥误用了L3的检测策略——指纹库没启用,导致密钥明文在日志里漂了半年都没被识别。后来改成分级映射后,所有L4字段自动匹配高精度指纹规则,再也没出过这种漏报。
多说一句:分类分级结果最好存储在数据资产目录中,并暴露给检测引擎做配置。我习惯用YAML描述,比如:
# data_classification.yaml
- field: user.id_card
category: PII_identity
level: L3
detect_rule: "强正则(身份证) + 校验和"
- field: order.amount
category: financial
level: L2
detect_rule: "弱正则(金额模式)"
- field: source_code.commit
category: trade_secret
level: L4
detect_rule: "正则(敏感关键词) + 指纹库hash匹配"
这样后续不管是用正则引擎滚动扫描,还是用指纹引擎做实时匹配,都能自动从配置里读取该用的策略。结构清晰,改起来也快——不用到处改代码。