数据脱敏的定义
数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。
数据脱敏发展历程
人工脱敏阶段:
多为SQL脚本方式,在ETL处理过程中进行脱敏,该方式工作量大、数据处理效率低,同时存在数据质量差、无法保证数据结构的完整性、数据间的关联性。
平台脱敏阶段:
融合了敏感数据自动发现、系统流程化脱敏、支持丰富数据源、脱敏算法库充足、敏感类型丰富等功能,从而减轻人工成本的同时提升效率, 保证数据脱敏的基本诉求。
自动脱敏阶段:
通过应用机器学习等技术,结合各类数据分类分级规则及已实际使用的数据脱敏策略及规则,实现自动化实时敏感数据发现、自动化脱敏规则匹配等智能化数据脱敏的结果。同时,具备分布式等多种部署支持,智能性能分析,自动化调优等能力。
数据脱敏关键技术能力
**高仿真能力:**保持数据原始业务特征保持数据之间的关联性保持数据之间逻辑一致性业务依赖数据对象同步
丰富数据源支持:
- 关系型数据库支持
- 大数据平台支持
- 特殊文件类型支持
- 消息列队支持
内置丰富脱敏规则:
-
支持多种数据脱敏算法
-
支持组合脱敏、自定义分组规则
-
具备细粒度数据处理能力
高处理效率:
- 单台设备性能最大化
- 具备增量脱敏能力
- 支持分布式部署
数据脱敏分类
类型 | 常用场景 | 具体示例 |
---|---|---|
静态脱敏 | 通常用于非实时场景 | 生产环境的数据脱敏到测试环境 |
动态脱敏 | 用于生产环境等实时场景,在应用或平台访问敏感数据的同时进行脱敏 | 生产数据共享或时效很高的场景,对生产数据库中的敏感数据透明、实时脱敏 |
脱敏算法
算法 | 描述 | 数据类型 | 脱敏分类 |
---|---|---|---|
重排 | 跨行随机互换原始敏感数据,打破原始敏感数据与本行 其他数据关联关系。 | 通用 | 静态、动态 |
关系映射 | 原始敏感数据间存在业务关联关系,需要在数据脱敏后 仍旧保持关系。因此在脱敏处理中,利用算法表达式对 脱敏后的数据进行函数映射,使其脱敏后仍旧保持业务 关联关系。 | 通用 | 静态、动态 |
偏移取整 | 按照一定粒度进行偏移取整。 | 日期 时间 数字 | 静态、动态 |
散列 | 对原始数据通过散列算法计算,使用计算后的散列来代 替原始数据。 | 通用 | 静态、动态 |
加密 | 通过加密密钥和算法对原始数据进行加密,从而使敏感 数据变成不可读的密文。 | 通用 | 静态 |
格式保留算法(FPE) | 一种特殊的加密脱敏算法,对敏感数据进行加密脱敏, 密文与原始数据保持格式一致。 | 通用 | 静态 |
常量替换 | 使用常量伪装数据对原始数据进行替换(伪装数据生成 与原始数据值无关)。 | 通用 | 静态、动态 |
随机替换 | 保持数据格式,按照特定原始数据的编码规则重新生成 一份新的数据。 | 通用 | 静态、动态 |
截断 | 截断内容 | 通用 | 静态、动态 |
标签化 | 按照预定类别进行分类,将使用类别标签替换原始敏感 数据。 | 通用 | 静态、动态 |
泛化 | 用更一般的值取代原始数据,降低敏感数据精确度,达 到无法识别个体的目的。 | 通用 | 静态、动态 |
匿名 | 通过对数据内容的处理,保证在数据表发布时,数据中 存在一定量的准标识符上不可区分的记录。 | 通用 | 静态 |
差分隐私 | 在原数据中加入噪音信息,使得满足差分隐私的数据集 能够抵抗任何对隐私数据的分析。 | 数据集 | 静态 |
浮动 | 通过浮动脱敏算法,上浮、下降5%。 | 数据集 | 静态 |
归零 | 通过归零算法对原始数据进行脱敏。 | 数据集 | 静态 |
均化 | 通过均化算法对原始数据进行脱敏。 | 数据集 | 静态 |
分档 | 将数据按照规模分为高、中、低三档,分别进行脱敏。 | 数据集 | 静态 |
掩码 | 对原始数据的部分内容用通用字符进行统一替换,从而使敏 感数据仅保持部分内容公开。 | 字符串 | 静态、动态 |
实施流程
1、敏感数据识别
即对生产系统中敏感数据的识别,主要包括:
存储位置:明确敏感数据所在的数据库、表、字段(列);
数据分类、分级:明确敏感数据所属类别及敏感级别。
策略选择、算法配置:包括数据脱敏后保持原始特征的分析、数据脱敏算法的选择和数据脱敏算法参数配置:
- 保持原始数据的格式、类型;
- 保持原有数据之间的依存关系;
- 保持引用完整性、统计特性、频率分布、唯一性、稳定性。
- 配置需要脱敏的目标(数据库名/表名/字段名)以及适当的脱敏算法参数,根据业务需求完成其他算法的参数配置。
2、 数据脱敏任务执行
按不同需求选择,分为动态脱敏处理步骤和静态脱敏处理步骤:
1. 动态脱敏处理步骤:
- 协议解析:解析用户、应用访问大数据组件网络流量;
- 语法解析:对访问大数据组件的语句进行语法分析;
- 脱敏规则匹配:根据用户身份信息及要访问的数据;
- 下发脱敏任务:由脱敏引擎调度脱敏任务;
- 脱敏结果输出:将脱敏后的数据输出,保证原始数据的不可见。
2. 静态脱敏处理步骤:
- 数据选择/策略配置:选择待脱敏的数据库及表,配置脱敏策略及脱敏算法,生成脱敏任务;
- 执行脱敏处理:对不同类型数据进行处理,将数据中的敏感信息进行删除或隐藏;
- 数据导出:将脱敏后的数据按用户需求,装载至不同环境中,包括文件至文件,文件至数据库,数据库至数据库,数据库至文件等多种装载方式。
应用场景
1、开发测试场景
开发测试场景中,如银行、证券等金融行业业务系统中含有姓名、身份、账号等敏感信息,开发测试需要使用仿真的数据,因此需要通过脱敏手段保证敏感数据不被泄露。
2、教学培训场景
教学培训场景即对数据进行统计分析,以用于科学研究,该场景下需要保证数据特征,脱敏后保证科学研究所必须的内容。
3、分析挖掘场景
数据分析的有效性往往依赖于基础数据的质量,基础数据的可用性直接影响分析结果和企业决策。在涉及到大数据分析应用的领域,企业需要在保证数据安全及合规的前提下,依旧能够保有数据的可用性及可挖掘分析的价值。
4、数据上报场景
数据上报场景很可能涉及隐私敏感数据信息,在上报过程中需对敏感隐私数据进行匿名化处理。
5、共享交换场景
现代企业对外合作日益增多,数据交换愈发频繁,需要合理管控数据外发,当敏感数据外发至低安全区域时,通过对数据进行脱敏变形,避免隐私数据泄露。
6、业务查询场景
在业务系统对外提供服务时,通常面临客户群体通过账号即可访问真实数据的情况,一旦账户被仿冒登陆,显示真实信息、未对关键信息进行脱敏,会加大数据泄露的现象。
7、运维管理场景
运维管理场景下需要对运维人员的操作及管理进行全面审计及访问控制,从而达到数据在维护时的安全呈现。