一、什么是数据脱敏
数据脱敏(Data Masking),又称数据混淆、数据漂白、数据去隐私化。用虚假的数据掩饰真实数据,以达到防止数据泄漏的目的。
二、为什么要做数据脱敏
1、数据泄露风险
数字信息化时代,数据是一笔宝贵的资产。不管是企业还是政府单位,随着业务的发展,收集、存储、共享数据越来越多,规模越来越大。应用数据的场景越来越多,很多不规范的数据应用导致了敏感数据泄露,一旦发生数据泄露,对用户和企业都将造成比较大的损失。据美国通信运营商Verizon再次发布第16份年度数据泄露调查报告——《2023数据泄露调查报告》(以下简称:2023DBIR),本次报告基于大量现实事件进行分析,共计16,312起安全事件和5,199起数据泄露事件。
2、企业应尽的业务和责任,遵守国内外法律明确规定数据保护要求
1)国内:
《网络安全法》、《公共及商用服务信息系统个人信息保护指南》以及与金融业密切相关的《商业银行信息科技风险管理指引》等。
2)国外:
欧盟GDPR(《一般数据保护条例》)、HIPAA(美国的健康保险携带和责任法案)、SOX(美国萨班斯法案,会计职业监管、公司治理、证券市场监管等方面改革的重要法律)、PCI DSS(全球性支付卡行业数据安全标准)等。
三、数据脱敏的难点
1、敏感数据识别
数据脱敏的前提需要对整个企业的数据资产分布以及敏感数据进行识别,对不同等级不同标识的敏感数据采用不同的脱敏加密算法。来满足数据保护以及合规要求。
2、保障业务正常运营
各业务对数据运营的需求各不相同,如BI人员需要明文数据,客服人员需要脱敏数据,技术人员需要使用遮盖脱敏,运营人员需要使用数据混淆脱敏。需要将敏感数据脱敏方式 权限管控 动态策略相结合的方式来解决复杂的业务场景。
3、系统侵入性
企业发展到一定规模,数据合规的需求日益增长,意味着在做数据脱敏的时候已经存在大量的应用系统,数据脱敏如何做到对系统侵入小或者无感接入。
4、系统稳定性
对于企业来讲,业务是根本,任何事情都要在保障系统稳定的前提下进行,数据脱敏对系统稳定性的影响如何评估,如何保障稳定性。
四、数据脱敏现有技术
1、数据库代理层脱敏
优点:
1)无业务侵入性,代理应用系统后只需更改前端请求后端的IP地址即可实现脱敏要求。
2)可实现根据用户信息、路径进行脱敏,满足应用系统角色和权限脱敏的需求。
缺点:
1)稳定性风险:使用代理模式,代理服务器出现问题会导致产品不可用。
2)学习成本大,需要充分了解业务才能对返回字段进行脱敏规则配置。
3)配置工作量大,需要对每个应用、每个接口、每个字段进行脱敏配置,容易疏漏。
4)存在绕过风险,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库。
5)性能差,结果集脱敏是在接收到返回数据包后解析成结果集,再逐行完成解析与脱敏。
6)无精细化配置脱敏策略能力,无法根据表级别字段进行脱敏。
2、应用层结果脱敏
优点:
1)无业务侵入性,代理应用系统后只需更改前端请求后端的IP地址即可实现脱敏要求。
2)可实现根据用户信息、路径进行脱敏,满足应用系统角色和权限脱敏的需求。
缺点:
1)稳定性风险:使用代理模式,代理服务器出现问题会导致产品不可用。
2)学习成本大,需要充分了解业务才能对返回字段进行脱敏规则配置。
3)配置工作量大,需要对每个应用、每个接口、每个字段进行脱敏配置,容易疏漏。
4)存在绕过风险,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库。
5)性能差,结果集脱敏是在接收到返回数据包后解析成结果集,再逐行完成解析与脱敏。
6)只能针对HTTP协议进行脱敏,无法对其他协议数据进行脱敏,无法对系统之间流转的数据进行脱敏。
3、API层结果集改写
优点:
1)API脱敏在应用系统中,可跟随应用一起伸缩。
2)影响范围可控,只在调用API返回结果中进行脱敏。
3)API脱敏针对系统所有对外和对内输出的API,保证系统之间流转的数据是已脱敏数据。
缺点:
1)学习成本大,需要充分了解业务才能对返回字段进行脱敏规则配置。
2)配置工作量大,需要对每个应用、每个接口、每个字段进行脱敏配置,容易疏漏。
3)存在绕过风险,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库。
4)性能差,结果集脱敏是在接收到返回数据包后解析成结果集,再逐行完成解析与脱敏。
4、数据库代理层SQL改写
优点:
1)无业务侵入性,代理数据库后只需更改请求数据库IP地址即可实现脱敏要求。
2)可以根据数据库账号信息进行单独鉴权配置和脱敏策略配置,降低数据泄漏的风险。
3)脱敏效率高,通过改写原SQL方式实现脱敏效果,将脱敏通过数据库函数处理。
缺点:
1)稳定性风险:使用代理模式,代理服务器出现问题会导致产品不可用。
2)无法处理select * 的语句,代理服务器在应用系统和应用数据库之间,获取不到应用数据库的表结构,对*无法翻译,无法根据字段进行脱敏。
3)存在绕过风险,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库。
5、混脱(数据库代理SQL改写 API结果集脱敏)
优点:
混脱方式可以解决数据库代理SQL改写不能翻译select *的问题,包含select * 由API对结果进行脱敏处理,不包含select * 由数据库代理SQL改写处理
缺点:
1)稳定性风险:使用代理模式,代理服务器出现问题会导致产品不可用。
2)维护成本高,数据库代理和应用端都需要维护。
3)两端配合脱敏,无法保证流量全覆盖。
4)存在绕过风险,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库。
6、 Apache Ranger动态脱敏插件技术
优点:
1)维护成本低,只需在数据库server安装脱敏插件即可。
2)无法绕过风险,通过插件的方式安装在数据库服务端,使数据库具有脱敏能力。
3)不同于结果集脱敏是通过查询完结果集后在应用层脱敏,插件方式是在服务端通过SQL改写的方式进行脱敏,SQL改写脱敏使用数据库自带的函数进行脱敏,所有脱敏工作由数据库来完成,效率高。
4)脱敏是在服务端中,对字段包含*的查询语句可以从查询上下文中获取表字段详情并通过SQL转译后进行脱敏。
缺点:
1)plugin安装/升级,需要重启集群,无法热更新。
2)兼容性,需要适配不同server版本。
3)学习成本大,需要充分了解业务才能对返回字段进行脱敏规则配置。
4)配置工作量大,需要对需要配置的脱敏的每个字段进行脱敏配置且容易遗漏。
5)ranger sql改写基于子查询改写原理,对多表JOIN,where条件中带脱敏字段查询操作处理不好,无法拿到预期结果。
7、总结
上面介绍到技术方案各有优缺点,代理类实现方案存在性能,稳定性,绕过风险,使用成本高等问题,动态脱敏插件/sql改写方案存在查询结果集不符合预期,兼容性等问题。
五、用九智汇脱敏实现
1、采用数据识别和脱敏分离的架构实现,能够大幅提升api/plugin脱敏性能。
2、通过用户权限,数据资产,以及个人账号信息构建用户数据资产画像,当用户访问某个资产(应用/数据库等)时,能够根据用户的数据资产画像快速得出用户有没有权限访问、是否需要脱敏、采用什么样的脱敏算法。
3、通过建立对用户数据资产发现和敏感数据识别打标技术能力,为数据脱敏提供数据分级和标识依据,结合脱敏策略和脱敏算法配置,满足对不同分级不同标识的敏感数据采用不同的脱敏加密算法。对不同身份对同一分级同一标识不同脱敏算法实现的业务需求。
4、通过脱敏策略和脱敏算法配置的实现方式,在访问数据时能够根据访问用户权限等信息动态计算出本次访问的脱敏算法,无需对每个数据源每个表每个字段进行配置,大幅降低运营成本。
5、数据脱敏提供动态脱敏插件和API脱敏SDK两种集成方式,满足客户对不同防控需求选择不同的集成方式。