前沿 | 《数据安全法》语境下看三代动态脱敏技术的演进
2021-07-28
来源: 中国信息安全
《数据安全法》的颁布,让数据安全建设进入了有法可依、依法建设的新时代。安全法的执行落地,需要政府、监管、企业、安全能力提供商、社会等多方力量一起努力,同时,也需要引入先进的技术、科学的治理方法、健全的制度流程等。其中,卓有成效的安全技术保障是关键。
在数据安全治理和数据全生命周期管理的框架下,需要针对数据采集、传输、加工、存储、使用、删除及销毁等的每一个环节和步骤建立相对应的技术应对措施,做到量体裁衣。今天,我们重点关注数据在传输、使用等共享流通过程中的安全应对之道——数据脱敏技术。
一、技术萌芽
数据对于企业的重要性不言而喻,企业的业务开展、决策分析、市场创新等都深深依赖于数据发挥价值。企业对数据资产的利用,既饱含了对数据价值最大化释放的期待,又对数据流通使用的过程抱持着一种审慎态度。所以借由不断进化的技术来千方百计保障数据流动安全。
数据一旦流动,就会面临身份复杂的各类接触方,如企业内部人员或外部人员。不同角色的岗位职责不同,允许被查看的数据范围也就不尽相同。一旦赋予不同角色相同且大于自身所需的权限,安全隐患就随之而来。所以,告别一刀切,对数据采用富有弹性的管理方法,才能实现数据安全性和数据的流通、利用对于数字经济的重要性之间的平衡。
怎么才算富有弹性的管理方法呢?我们先来看一个反例——对接触方缩小或者回收部分权限。鉴于业务的复杂性,想要做到精准回收权限难度非常大,一旦权限回收过激或失衡,势必影响日常工作的开展,因此这个思路走不通。那就换个思路——在不变更接触方权限的情况下解决数据越权访问的难题。为了走通这条路,就需要引入我们今天即将探讨的技术——数据脱敏技术。
二、技术分类
数据脱敏,顾名思义就是指对某些敏感信息通过脱敏算法进行数据的遮蔽、变形,将敏感级别降低后对外发放,或供访问使用,实现敏感隐私数据的可靠保护。脱敏技术针对接触方的不同权限、职责和场景,决定哪些数据以明文数据形式对其展示,哪些数据以遮蔽或变形后的形式对其展示,让各接触方都能恰如其分地查看和使用数据,并且不会因为权限的回收导致某些工作的开展受到影响。不同应用场景,催生出静态脱敏和动态脱敏两种技术形态,两者部署和实现原理迥异,各司其职,无法替代。
● 静态脱敏
应用场景——生产数据在离开生产环境之前,通常是在非生产环境或脱离原生业务系统使用。
培训、开发测试、分析、数据共享、科学研究等非生产系统的数据库,是静态脱敏的典型应用场景。静态脱敏是将全量数据中的敏感数据进行变形、漂白后再允许离开生产环境,绝大多数情况需要数据仿真技术和数据关联技术的配合,确保脱敏后的数据在使用上达到与真实数据相同的效果。
示例:原始数据为“18612345678”,使用静态脱敏技术变形后为“13587654321”,脱敏后的数据具备原始数据的一切特征,保障数据脱敏后的可用性和安全性。
● 动态脱敏
应用场景——生产数据在生产环境中访问、流转时。
动态脱敏的目的是防止真实敏感数据被越权查看,所以绝大多数情况并不需要保持数据特征,同时为了提升脱敏效率,满足大规模、高并发访问下的脱敏需求,通常使用数据遮蔽的脱敏方式。比如,当应用需要呈现数据,又不希望某些应用账号看到全部数据的场景下,可按照不同人员的角色和权限进行敏感数据的实时脱敏。以运维人员为例,当只需要他们履行维护表结构来进行系统调优的职责时,检索或导出某些敏感的真实数据是不被允许的,这时候就需要动态脱敏技术的配合。
示例:原始数据为“18612345678”,使用动态脱敏技术变形后为“186******78”,脱敏后的数据可以有效防止外泄,保障数据脱敏的时效性和安全性。
接下来,本文将重点围绕动态脱敏技术的一代、二代、三代演进展开分享。
三、技术演进
技术的进化和演进是靠真实的场景化需求来驱动。经过多年IT业务环境发展变化和对技术要求的不断提升,数据动态脱敏技术也保持着昂扬奋进的激情,一路迭代、进化。
市面上的主流或者说成熟动脱技术大致分成了第一代动脱技术之“结果集改写”;第二代动脱技术之“SQL语句改写”这两种类型。伴随应用场景和需求的复杂化,两种技术类型又继续衍生出四种细分技术路线(见下图表),这四种技术路线各有优劣,通过不断适应快速迭代进化的复杂业务环境和需求场景,完成了向第三代动脱技术-混合模式动态脱敏的一步步演进。
动态脱敏技术演进路线图
★ 第一代动态脱敏技
1、数据库层动态脱敏(结果集改写技术)
最早,动态脱敏技术正是通过结果集改写方式来实现,此为第一代动态脱敏技术。结果集改写技术是基于结果集解析技术,在数据库返回结果后,在脱敏设备上判断结果集中哪些数据需要脱敏,并在设备中进行脱敏处理的技术路线。该技术的部署方式:一般采用数据库协议反向代理技术,代理数据库访问请求,实现数据脱敏目标。
随着技术发展,从该技术衍生出了数据库层脱敏路线,指结果集返回到应用系统之前即进行脱敏处理,脱敏后数据方可返回到应用系统并在终端上进行展示。
(1)优势
兼容性高
结果集改写基于结果集解析技术,与数据库松耦合,理论上可以适用于任何数据库平台之上,兼容性极高。
模糊脱敏
当用户无法掌握目标数据所在位置时,可以仅指定目标数据类型作为脱敏目标,无论目标数据在什么位置,只要出现在结果集之中即可完成脱敏,保障数据的安全性。
易用性好
无需提前配置复杂的脱敏规则,无需梳理详细的目标库及表结构,只需指定待脱敏的数据类型,即可开展工作,降低用户的学习成本和使用成本。
(2)劣势
效率低下
结果集改写技术需要在脱敏设备处逐行进行数据改写,效率很低,且有可能成为业务流的性能瓶颈。
无法精准脱敏
如果结果集中含有多个相同字段,但是脱敏需求仅限于脱敏其中某个字段,那么靠结果集改写方式无法实现。
2、应用层动态脱敏(结果集改写技术)
市场对动态脱敏的要求越来越高,需求也越来越复杂,比如要能针对应用系统账号进行分权分角色脱敏。数据库层的动态脱敏技术对此表现的力不从心,原因在于数据库层动态脱敏是代理的数据库协议,部署在数据库之前,原理上无法获取应用系统账号信息。如果想通过在应用系统上安装插件获取登录账号信息并进行回传和联动,又会引发到插件的稳定性、可靠性以及对应用服务器的资源占用等问题,导致用户接受度不高,市场反响平平。
面对强烈的市场需求,技术的演进势在必行,经过研发和验证,应用层动态脱敏技术诞生了。它采用HTTP/HTTPS协议代理技术,部署在应用系统前,具备获取应用系统的登录账号信息的天然优势。
脱敏处理过程是在应用系统获取数据后,终端获取数据前,可以有效实现根据应用系统账号进行分权分角色的动态脱敏需求。应用层动态脱敏技术依然是使用结果集脱敏的原理,通过对代理协议以及部署位置的改变,满足了市场端的需求,但本质上看它依然属于第一代动脱的范畴。
(1)优势
分权脱敏
可以根据应用系统账号进行分权限分角色的脱敏目标。
兼容性高
兼容性高,与数据库类型无关,可应用于采用任意数据库类型的业务系统之中。
(2)劣势
适用范围窄
适用范围窄,只能解决应用侧脱敏,无法解决运维侧脱敏。
效率低下
采用结果集脱敏方式,需要针对结果逐条脱敏,效率偏低。
配置复杂
每一个页面均需要配置策略,且每一个页面还需要分帐号分角色配置策略,配置复杂。
实施复杂
需要调研所有目标业务系统的情况和业务流,需要调研每一个页面的URL、展示内容、使用人员、脱敏目标等信息,实施工作量大,实施周期长。
易用性差
配置复杂决定了用户的学习成本和使用成本高,易用性差。
3、API层动态脱敏(结果集改写技术)
当前出现了一种常见的业务模式,即多系统之间通过API接口进行数据交互,这不仅增加了数据在交互过程中的外泄风险,也带来数据在其他业务系统落地后的外泄风险,尤其是跨网、跨域、跨部门、跨企业的API数据交互,数据外泄风险极高。针对此场景,市场上又衍生出了API层动态脱敏技术。这一技术依然是使用结果集脱敏的原理,属于一代动脱技术的变种。它采用HTTP/HTTPS协议代理技术,部署在应用系统之间,脱敏处理过程是在应用系统A获取数据并传输后,应用系统B获取数据前。
(1)优势
易用性好
使用简单,确定好每个API接口的脱敏数据即可。
兼容性高
兼容性高,与数据库类型无关,可以应用于采用任意数据库类型的业务系统之中。
实施简单
实施起来很简单,且不容易造成风险。
(2)劣势
适用范围窄
适用范围十分有限,只能解决API脱敏,无法解决运维侧脱敏。
效率低下
采用结果集脱敏方式,需要针对结果逐条脱敏,效率偏低。
分析发现,结果集改写技术尽管有着适用范围广、兼容性高等优势,但随着使用场景的多元化,其低下的效率已经无法适应大型业务的使用场景,脱敏厂商开始研发效率更高的脱敏技术路线并推向市场。
从上述几种技术路线看,第一代动脱技术的最大瓶颈是效率问题。为了突破这一瓶颈,第一代动脱技术需要完成向第二代动脱技术的演进。
★ 第二代动态脱敏技术
4、数据库层动态脱敏(SQL语句改写技术)
SQL语句改写技术依然是通过对数据库协议的反向代理实现数据库层的动态脱敏目标,同样是在数据返回应用系统之前进行脱敏处理。该技术的面世解决了结果集改写方式效率低下的难题,可以称之为第二代动态脱敏技术。
其基于SQL语句解析技术,将包含敏感字段的查询语句进行改写,对敏感字段采用函数运算的方式,让数据库自行返回不包含敏感数据的改写后的结果。其运算过程快速,与标准SQL语句执行相差无几,且过程执行是在数据库之中,脱敏设备不会成为业务的性能瓶颈。
(1)优势
脱敏效率高
SQL语句改写技术可以将动态脱敏的效率提升到极致,速度极高。
摆脱性能瓶颈
使用SQL语句改写技术的动态脱敏对业务效率影响微弱,动态脱敏设备不会成为业务流的性能瓶颈。
针对性脱敏
当查询语句覆盖了多个存储相同数据类型的字段,且用户只需要脱敏其中的一个字段,其他相同字段不需脱敏时,SQL改写技术可以精确的进行针对性脱敏。
(2)劣势
兼容性低
SQL语句改写利用了数据库自身的语言机制,与数据库类型和语言机制紧耦合,兼容性低。
复杂语句难应对
面对拆包语句、嵌套语句、超长语句等复杂语句时,对SQL语句改写技术是极大挑战,甚至是无法解决的难题。
易用性差
SQL语句改写技术必须梳理目标数据库的表结构,在配置脱敏策略时较为繁琐,会极大的增加用户的学习成本。
无字段信息脱敏
动态脱敏针对的是查询语句,但很多查询语句中并不含字段信息,会导致SQL改写技术无法识别语句目标是否包含需要脱敏的数据,无法进行脱敏。针对此场景,SQL语句改写是有一定的应对能力的,比如select * from user,但不含敏感字段信息的语句极多,技术上无法全部应对,导致某些场景下的脱敏功能失效。
分析发现,SQL语句改写技术是与数据库紧耦合,利用数据库自身的语言机制进行脱敏,导致其数据库兼容性成为一大弱点,且数据库交互语言千变万化,如何应对各种查询语句成为需要解决的难题和痛点。因此,市场需要一种既能兼顾性能,又能满足兼容性的动脱技术。
从第二代动脱技术即SQL语句改写技术的具体场景应用看,需要解决的根本问题在于兼容性难题,为了突破这一瓶颈,第二代动脱技术需要完成向第三代动脱技术的演进。
★ 第三代动态脱敏技术
5、混合模式动态脱敏
无论是第一代、第二代动脱技术,还是作为不同应用模式的四个细分技术路线,都各有优劣,且某些场景无法互相替代,所以动脱技术的进化方向就变得清晰起来——一种能够兼顾两种技术类型优势,覆盖不同应用模式的动态脱敏技术。混合脱敏技术应运而生,它可以同时支持结果集改写和SQL语句改写两种技术,可以根据需求灵活改变部署位置覆盖四种应用场景,我们将其称为第三代动态脱敏技术。
第三代动脱技术兼具一二代技术的优势,一定程度突破了上述四种技术路线的瓶颈,由后台智能判断当前场景适合哪种脱敏技术,无需人工干预,实现兼容性、高性能、适用性的最佳平衡。当然,在某些单一场景下,第三代动脱技术依然存在第一代性能偏低的问题,但整体上是可以实现最佳平衡的。
(1)优势
可用性强
混合模式动脱具备一二代动脱技术的所有优势,且后台实现了智能判断,无需用户关注哪种场景适合哪种技术模式,焦点只需聚焦在待脱敏的目标数据即可,帮用户实现傻瓜式操作。
适用范围广
适用范围极广,可以覆盖数据库层、应用层以及API层全部的脱敏场景。
脱敏智能化
不是简单的堆叠技术,而是通过底层机制实现智能调用不同技术,无需使用者参与,达成智能化脱敏的目标。
五大动脱技术路线对比图
四、结语
只要需求在,技术的进步就没有止境。动脱技术的发展演进,就是市场在持续满足不同用户的多样化数据脱敏需求场景下得以完成的。当然,这些场景需求的满足又都是在《数据安全法》的大语境和数据安全治理的大框架下徐徐展开的。企业数据安全建设能力的提升,必然依赖于核心技术的不断迭代进化和强势驱动,我们相信,技术进步永远是安全进步的尺度。