在企业数字化转型的过程中,尤其随着互联网+、云计算、大数据等信息技术与通信技术的迅猛发展,海量数据在各种信息系统上被存储和处理,其中包含大量有价值的敏感数据,这意味着数据泄露的风险也不断增加。
数据泄露可能由各种因素引起,包括恶意攻击、黑客入侵、员工失误、设备丢失或盗窃等。一旦数据泄露,个人隐私将面临泄露风险,可能导致身份盗窃、金融欺诈、个人信息滥用等问题。此外,一些行业和法规要求组织必须采取措施来保护敏感数据,例如金融机构需要保护客户的个人身份信息,医疗机构需要保护患者的病历数据。
为了应对这些挑战,数据脱敏技术应运而生。数据脱敏是一种数据保护方法,通过对敏感数据进行修改、转换或隐藏,以保护数据的安全性和隐私性。脱敏后的数据仍然保留其原始数据的结构和格式,但不包含直接识别个人的敏感信息。
数据脱敏也成为大部分企业在数据管控中的必修课。
CloudQuery 的数据脱敏能力
CloudQuery 目前已经搭载了静态脱敏和动态脱敏两种数据脱敏方式。
静态脱敏是一种在数据存储或传输过程中对数据进行脱敏处理的方法,采用“先脱敏-后分发”的方式。它通常在数据收集和存储阶段对敏感信息进行脱敏,以确保数据在存储和传输过程中的安全性。静态脱敏的目标是通过对敏感信息进行不可逆的处理,使其无法还原为原始数据,以保护个人隐私。
而动态脱敏一种在数据使用过程中动态地对敏感信息进行脱敏处理的方法。与静态脱敏不同,动态脱敏是在需要使用敏感信息时进行加密,其他情况下仍保持数据的明文状态。可以说,动态脱敏的核心概念是根据实际需求和使用场景,在数据使用过程中灵活调整脱敏级别和方式,以实现更高级别的隐私保护和数据可用性的平衡。
动态数据脱敏和静态数据脱敏适用于不同的场景,两者之间没有优劣之分,主要是以使用场景来选择合适的脱敏模式。 目前 CloudQuery 静态脱敏功能仅对企业版客户开放,本文将主要介绍几个版本的通用能力——动态脱敏。
CloudQuery 动态脱敏解决方案
目前主流的动态脱敏技术路线分为「结果集解析」和「语句改写」两条路径:
- 结果集解析:
不改写发给数据库的语句,需要提前获悉数据表结构,待数据库返回结果后再根据表结构判断集合内哪些数据需要脱敏,并逐条改写结果数据。 - 语句改写:
将包含敏感字段查询的语句改写,对于查询中涉及的敏感字段(表列)通过外层嵌套函数的方式改写,使得数据库运行查询语句时返回不包含敏感数据的结果集。
但两种方法各有优劣。「结果集解析」具备更高的灵活性和数据可用性,但同时在处理大规模数据时会带来一定的性能开销。「语句改写」效率更高,其在查询语句中改写敏感字段的方式更确保敏感数据不会传输到应用层或其他环节,保证较高的数据安全性,同时语句改写还具备良好的可移植性。但相对的,因为在查询语句中进行修改,「语句改写」势必会限制一些复杂查询,其可定制性较弱。
针对两种方法的不同,CloudQuery 在动态脱敏的实现上融合了 SQL 语句改写与结果集改写两种技术路线优点,实现了性能和适用性的平衡,用户可基于不同的场景根据 SQL 语句的不同,触发不同方式的脱敏,全面覆盖运维场景和业务场景下数据实时脱敏需求。
例如: select * from table1;
该语句由于语句中是查询的所有列,这时我们不会进行前置脱敏,转而在执行结束之后,对比结果集中的列名,判断与已配置的列名是否相同,去进行结果集解析的脱敏。
而下面这种:select a from table1;
在语句中有显式的查询 a 这个列,则会对 a 进行改写,将语句改写成 select func(a) from table1;
去执行,这样就只会使用前置脱敏,而不用去遍历结果集。
使用过程中可以根据数据量和性能要求使用不同的 SQL 语句去查询。
CQ 的动态脱敏功能如何使用?
CloudQuery 社区版 v2.0.0 的动态脱敏功能无须改变生产数据库中的数据,即可依据用户级别、数据级别,对数据库返回数据进行差异化脱敏。可以确保不同角色的用户能够差异化地访问数据库中的敏感数据。支持截取、加密、隐藏、替换等脱敏算法。
在 CloudQuery 的主页面点击「数据保护管理」菜单按钮可进入数据保护设置页面。
我们这里给 AAA 字段设置一个保留前三位的截取算法。
之后也可在该处或者该表的父级节点选择是否开启规则。
改写前后如下图所示:
(改写前)
(改写后)
CloudQuery 动态脱敏展望
在之后的版本中,CloudQuery 会陆续推出更多功能来完善动态数据脱敏图谱,如:
- 自定义结果集数据解析规则: 即在一个 schema 下指定一个正则表达式,如手机号码或身份证号,如果查询结果有符合格式的数据,则会按照相应改规则进行脱敏。并且支持内置脱敏规则的自定义添加,该方式可以捕捉到没有被配置的脱敏算法拦截到的敏感数据,进一步保障数据安全。
- 通过分级方式脱敏: 即支持对字段设置等级,对用户设置等级。不同用户只能查询到其对应等级的数据,不符合要求的数据则会被脱敏,提供更加个性化和精确的隐私保护能力。
- 数据扫描: 自动识别敏感数据项和敏感数据的位置,扫描后数据可被分类为不同的敏感级别或类别,以便为每个类别应用相应的脱敏规则。同时,数据扫描可以分析敏感数据之间的关联性,确保在脱敏过程中保持数据的一致性和完整性。通过理解敏感数据之间的关系,可以确保脱敏后的数据仍然具有可用性和实用性。
- 字段脱敏算法推荐: 针对不同的应用场景和需求推荐不同的字段脱敏算法,结合多种算法和策略,以实现对不同类型的敏感数据进行灵活、安全和高效的脱敏处理。
动态数据脱敏是 CloudQuery 数据保护管理能力里的重要组成部分。通过实时对敏感数据进行脱敏处理,在数据使用和共享的过程中减少了对敏感信息的可见性,从而降低了数据泄露和滥用的风险。
后续 CloudQuery 不仅会完善动态脱敏功能,更会不断补充数据保护能力。目前在 CloudQuery 企业版中就已经实现了国密支持、审计日志、数据备份等能力。 综合运用这些数据保护措施,企业可以建立起完善的数据安全和隐私保护体系,保障数据的安全性、完整性和可用性。