4. 数据分级方法:基于敏感度、影响程度的分级模型

聊到数据分级,很多人第一反应就是“把数据分成绝密、机密、秘密”。这个想法没错,但太粗糙了。

真正的分级,你得回答两个问题:这数据本身多敏感?以及它要是出事了,后果多严重?

前者是“敏感度”,后者是“影响程度”。这两个维度一交叉,分级模型就立起来了。我个人习惯用这个框架,因为它能从两个角度卡死风险,不容易漏掉“看起来不敏感但出事很要命”的数据。

4.1 敏感度与影响程度:两个核心维度

先拆开看这两个东西到底指什么。

4.1.1 敏感度(Sensitivity)

说白了,就是数据本身有多“金贵”。判断标准很直接:如果这数据被不该看到的人看到了,会出多大事?

敏感度等级 典型数据 泄露后果
S1 - 公开 产品手册、新闻稿 无负面后果
S2 - 内部 内部管理制度、会议纪要 轻微声誉损失
S3 - 敏感 客户联系方式、薪酬数据 法律风险、客户投诉
S4 - 极高敏感 身份证、银行卡、密码 严重违法、监管处罚
我的习惯:判断敏感度时,别只看字段名。我在项目中遇到过,某个日志表里有个“user_note”字段,看起来是用户备注,结果里面全是明文住址和关系。敏感度判断必须结合实际内容,不能只看表结构。

4.1.2 影响程度(Impact)

这个维度看的是“数据出事之后,对业务、对用户、对公司的影响范围有多大”。

你想想看,有些数据本身不敏感(比如订单金额),但如果被篡改了,公司可能直接损失几百万。这就是影响程度高的典型场景。

影响等级 影响范围 典型场景
I1 - 轻微 单用户、单功能 密码修改短信发送失败
I2 - 中等 多个用户、单个系统 积分系统被非法篡改
I3 - 严重 全部用户、核心系统 支付网关被攻破、全量用户数据泄露
我曾经踩过的坑:刚开始做分级时,我只列出了“敏感度”,没加“影响程度”。结果把一个报表数据分成了公开级。这报表本身不敏感,但它是公司季度财报的前置数据,一旦提前泄露直接违反信披法规。后来我硬是回头补了影响程度这个维度,才把这类数据筛出来。

4.2 分级矩阵:把两个维度织成一张网

单独看一个维度不够,得把它们组合成矩阵。我通常用 2x2 的矩阵做初步划分,复杂的场景会扩展到 4x4。

下面这张表是我最常用的 3x3 分级矩阵。你注意看,有些格子是黄色的,那是我自己标注的“重点关注区”。

敏感度 ↓ \ 影响 → 影响程度
I1 轻微 I2 中等 I3 严重
S1 公开 1级 - 公开信息 1级 - 公开信息 2级 - 内部信息
S2 内部 2级 - 内部信息 3级 - 敏感信息 3级 - 敏感信息
S3 敏感 3级 - 敏感信息 4级 - 机密信息 4级 - 机密信息

你看,S1敏感度的数据,即使影响程度到了严重(I3),也只会升到2级。而S3敏感度的数据,哪怕影响只有轻微(I1),已经是3级。这个规则背后的逻辑是:敏感度决定了最低等级,影响程度决定了上调空间。

4.3 分级流程:从原始数据到分级结果

知道理论了,怎么落地?我一般走以下几步:

  1. 数据打标:给每张表、每个字段打上敏感度标签 S1~S4。
  2. 场景分析:分析数据在不同使用场景下的影响程度。比如“只读”和“可写”的影响完全不同。
  3. 矩阵映射:根据上述矩阵,查出对应的最终分级。
  4. 分级输出:输出一个包含分级、保护策略、负责人信息的清单。

嗯,这里要注意:同一个数据在不同场景下可能拿到不同分级。比如一个客户地址字段,在“客服查询”场景下影响是I2,但在“对外公开报表”场景下影响就是I3。这种情况,我建议取最高分级。

数据分级流程 原始数据输入 敏感度判定 (S1~S4) 影响程度判定 (I1~I3) 分级矩阵映射 (3x3) 分级结果输出 关键决策点:取最高分级
核心思路:敏感度打底、影响程度定级。两个维度缺一不可。

4.4 基于 C-I-A 三要素的分级扩展

除了敏感度和影响程度,很多成熟的企业会引入 C-I-A(保密性、完整性、可用性) 三要素来辅助定级。我的看法是:对于接口数据来说,这三个要素权重不一样。

  • C(机密性):权重最高。接口数据一旦泄露,影响范围往往不可控。我一般给它 50% 的权重。
  • I(完整性):权重中高。接口数据传递过程中,如果数据被篡改,后果可能非常严重。权重 30%。
  • A(可用性):权重相对低。接口挂了可以重试、降级,不一定会直接导致数据泄露。权重 20%。

你可能会问:为什么可用性权重这么低?因为分级模型主要关注的是“数据泄露和滥用”风险,而不是服务中断。可用性问题通常落在“业务连续性”范畴,由另外一套流程管。

我曾经帮一家金融公司做接口审计:他们把所有接口都按“可用性”定级,导致大量接口被分成了“一般保护”。结果有一次数据泄露,就是因为一个“高可用”但“低敏感”的接口没有做加密传输。这个教训让我从此坚定:接口数据分级,C 永远优先。

4.5 分级结果输出格式

分级不是只分个等级就完了。你得输出一个可落地的东西。我一般会输出类似下面这个表格:

数据编号 数据名称 敏感度 影响程度 最终等级 保护策略
API_001 用户信息查询 S3 I2 4级 加密传输、权限校验、审计日志
API_002 产品列表 S1 I1 1级 无需特殊保护
API_003 订单状态 S2 I2 3级 接口鉴权、访问频率控制

这个表格可以直接作为后续接口设计、加密策略、审计策略的输入。你拿到这个表,就知道哪些接口需要做 校验,哪些要签摘要,哪些要全链路加密。

我的一个小技巧:分级结果表最好加上一个“最后更新时间”和“更新人”。因为数据敏感度是会变的——比如一个产品报价表,发布前是S3,发布后就变成S1了。不加时间戳,过两个月你根本不知道这个分级是谁什么时候定的。

4.6 分级模型的迭代与维护

最后说一句:分级模型不是一次性的。

我见过的失败案例,都是某个项目经理拉了一堆人开两天会,分完了就结束了。半年后业务变了,数据形态变了,分级模型根本对不上。结果安全部门拿着过时的分级去做接口保护,漏洞百出。

所以我建议,每个季度至少做一次分级核查。核查重点包括:

  • 新增接口是否有落入分级盲区?
  • 已有接口的数据内容是否有变化?比如原来只存 user_id,现在存了身份证。
  • 外部合规要求是否有更新?比如 GDPR 新增了对生物特征数据的保护要求。

说白了,分级模型是一个活的框架。你不动它,它就会慢慢失效。我习惯把这套核查流程做成自动化脚本,每季度定时跑一次,输出差异报告,然后人工确认。这样一来,分级就不会变成“僵尸文档”。