3、敏感数据识别与分类分级:PII识别、金融数据分类分级标准、自动化扫描工具
好,咱们进入第三个核心话题。说实话,很多团队做数据安全,第一步就卡在「我到底有哪些敏感数据」这个问题上。你想想看,连家里有多少钱都不清楚,怎么谈得上防盗?
这一节,我带你捋清楚三件事:PII(个人身份信息)怎么识别、金融数据怎么分类分级、以及怎么用自动化工具把这些事干完。嗯,都是我在实际项目中踩过坑、填过土的经验。
3.1 PII识别:别把「张三」当路人
PII,全称 Personally Identifiable Information。说白了,就是能直接或间接定位到某个具体人的信息。
我见过最典型的翻车案例:某团队把「手机号」当普通字段处理,结果脱敏时漏了。后来被监管查到,罚得那叫一个惨。所以,PII 识别是数据脱敏的「第一道防线」。
- 直接标识符:姓名、身份证号、手机号、银行卡号、护照号
- 准标识符:性别、出生日期、邮编、职业(组合起来能定位到人)
- 生物特征:指纹、人脸、声纹(金融APP里越来越常见)
- 行为数据:交易记录、浏览轨迹、设备指纹(别小看这些)
我个人习惯,在项目初期先拉一张「PII字段清单」。怎么拉?不是靠拍脑袋,而是靠正则表达式 + 样本数据扫描。比如身份证号的规则:18位数字,最后一位可能是X。银行卡号:16-19位数字,开头几位有固定规律。
user_extra,里面存的是身份证号。所以别只看字段名,一定要看数据内容。
3.2 金融数据分类分级标准:别把「黄金」当「石头」
金融数据,不是所有字段都同等重要。你想想看,客户的「姓名」和「交易密码」,能一样吗?所以我们需要一套分类分级标准。
目前国内金融行业,主要参考的是 JR/T 0197-2020《金融数据安全 数据安全分级指南》。这个标准把数据分成5个级别:
| 级别 | 名称 | 典型数据 | 脱敏要求 |
|---|---|---|---|
| 5级 | 极高敏感 | 交易密码、支付密钥、生物特征 | 必须加密存储,脱敏后不可逆 |
| 4级 | 高敏感 | 身份证号、银行卡号、手机号 | 必须脱敏,保留部分格式 |
| 3级 | 中敏感 | 姓名、地址、邮箱 | 建议脱敏,可部分保留 |
| 2级 | 低敏感 | 性别、年龄段、职业 | 可选择性脱敏 |
| 1级 | 公开 | 产品名称、利率、公告 | 无需脱敏 |
这里我要多说一句:分级不是一成不变的。我曾经帮一家银行做评估,发现他们把「客户经理姓名」定为3级,但后来发现这个字段和「客户资产规模」关联查询后,能推断出高净值客户信息。所以,分级要结合业务场景动态调整。
3.3 自动化扫描工具:别用手工「排雷」
说实话,靠人工去翻数据库表结构、看字段内容,那得累死。而且容易漏。所以,自动化扫描工具是必须的。
我常用的思路是:规则引擎 + 机器学习。规则引擎负责「快准狠」地识别已知模式,机器学习负责「猜」那些未知的、模糊的敏感数据。
下面是我自己写的一个简化版扫描脚本(Python 示例),用于识别数据库中的 PII 字段:
import re
import pandas as pd
# 定义PII识别规则
PII_PATTERNS = {
'身份证号': r'\d{17}[\dXx]',
'手机号': r'1[3-9]\d{9}',
'银行卡号': r'\d{16,19}',
'邮箱': r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'
}
def scan_pii_in_column(data_series, column_name):
"""
扫描某一列数据,返回匹配到的PII类型和数量
"""
results = []
for pii_type, pattern in PII_PATTERNS.items():
matches = data_series.astype(str).str.findall(pattern)
match_count = matches.explode().notna().sum()
if match_count > 0:
results.append({
'字段名': column_name,
'PII类型': pii_type,
'匹配数量': match_count
})
return results
# 示例用法
# df = pd.read_sql('SELECT * FROM user_info', connection)
# for col in df.columns:
# result = scan_pii_in_column(df[col], col)
# if result:
# print(result)
市面上成熟的工具也不少。比如 Apache Atlas、Collibra、阿里云 DataWorks 都支持敏感数据自动发现。但我个人建议,别完全依赖工具。工具只能帮你「找到」敏感数据,但「怎么分级、怎么处理」还是得靠人。
3.4 知识体系:一张图看懂
下面我用一张 SVG 图,把这一节的核心逻辑串起来。你一看就明白:
这张图其实就讲了三层逻辑:先找到数据 → 再分清楚级别 → 最后用工具自动化。每一步都环环相扣,缺一不可。
3.5 实战建议:别追求「一步到位」
最后,我想给你几个实在的建议:
- 先做「小范围试点」:别一上来就全量扫描。选一个核心业务库,跑一遍流程,发现问题再优化。
- 分级标准要「落地」:JR/T 0197 是指导性标准,但具体到你的业务,可能需要微调。比如「客户地址」在银行是3级,但在保险可能是4级。
- 工具只是辅助:我见过最离谱的事,是某团队买了商业扫描工具,结果配置错了规则,把「交易金额」当成了「身份证号」去脱敏。嗯,工具不会思考,你得教会它。
公众号:蓝海资料掘金营,微信deep3321