动态数据脱敏技术分析
在当前国内信息安全热潮中,数据脱敏作为数据安全的重要一环得到了业界的认可与重视。早在2012年,数据脱敏首次作为一个单独的魔力象限由Gartner发布,Gartner在2014年又提出了:按照数据使用场景,将数据脱敏分为静态数据脱敏(Static data masking-SDM )与动态数据脱敏(Dynamic data masking-DDM )。
可能有人望文生义,认为动态数据脱敏一定比静态数据脱敏高级。非也非也,静态or动态,取决于脱敏的使用场景,主要是以使用场景为由来选择合适的数据脱敏的模式。
今天咱们就来理一理动态数据脱敏和静态数据脱敏之间的区别,着重和大家分析下动态数据脱敏的原理、使用场景、部署方式等,一窥动态数据脱敏如何在隐私数据安全保护中发挥至关重要的左右。
动静态数据脱敏“半斤八两”
前面提到了,静态数据脱敏与动态数据脱敏是按脱敏数据的使用场景来区分的。所谓的数据使用环境,主要是指业务系统脱敏之后的数据在哪些环境中使用,一般可分为生产环境和非生产环境(开发、测试、外包、数据分析等)。
静态数据脱敏(SDM):一般用在非生产环境,将敏感数据从生产环境抽取并脱敏后给到非生产环境使用,常用于培训、分析、测试、开发等非生产系统的数据库;
动态数据脱敏(DDM):常用在生产环境,在访问敏感数据即时进行脱敏,一般用来解决在生产环境需要根据不同情况对同一敏感数据读取时进行不同级别脱敏的场景。
动态数据脱敏实现原理
动态数据脱敏是在用户层对数据进行独特屏蔽、加密、隐藏、审计或封锁访问途径的流程,当应用程序、维护、开发工具请求通过动态数据脱敏(DDM) 时,实时筛选请求的SQL语句,依据用户角色、权限和其他脱敏规则屏蔽敏感数据,并且能运用横向或纵向的安全等级,同时限制响应一个查询所返回的行数。
动态数据脱敏实现原理示意图
动态数据脱敏(DDM)以这种方式确保业务人员、运维人员以及外包开发人员严格根据其工作所需和安全等级访问敏感数据。
动态脱敏系统的使用场景
本文选取业务脱敏、运维脱敏、数据交换脱敏三个使用场景分别展开介绍。
1. 业务脱敏
动态脱敏系统首先要解决的问题是,业务系统的普通用户访问应用系统时对数据权限的控制。正常情况下,业务系统开发时会依据用户身份标识进行身份验证后,不同的用户进行限制数据的访问。
如业务用户在访问某行数据时,只需要查看客户个人信息的姓名、电话等信息,而不需要查看身份证号或家庭住址,故对身份证或家庭住址的显示信息实行*号或其他方式进行脱敏处理。
对于遗留系统(旧系统无法再作升级改造)以及开发时未考虑《网络安全法》中要求的个人隐私保护问题,如若重新更改代码过于复杂,只能依赖于外部技术实现数据的隐私保护,这个时候也需要使用动态脱敏技术。
2. 运维脱敏
在信息安全的职责分离中,针对数据有三类人员:数据所有者、数据管理员、系统管理员。数据所有者是业务人员,而数据管理员(DBA)与系统管理员是运维人员.。
动态脱敏需求最为迫切需要的一个场景,就是针对数据库的运维人员。运维人员拥有的是管理员帐号DBA账号,但业务系统的数据是属于业务单位而不是运维部门。从职责分离的原则上,如何实现既允许运维人员访问业务生产数据库又不能让他们看到敏感数据?
以员工的工资表为例,当数据库的运维人员使用高权限账号查询这类敏感表时,动态脱敏系统将自动将此敏感表(如工资表)的关键信息(工资)全部进行脱敏处理后再进行显示,防止敏感信息泄露。
之前的技术手段是DAM技术方案,针对数据库作访问审计管理,针对DBA登陆后的一切操作进行记录作为事后追溯。但这是一种被动的(事后)检测性能力,对于隐私保护同时还需要有预防性(事前)的技术能力。这种针对DBA维护时数据脱敏就是动态脱敏中的运维脱敏。
3. 数据交换脱敏
动态脱敏还有一种不常见的使用场景:业务系统与业务系统之间的数据访问(称作数据交换更合适)。在满足隐私保护时需要对交换的数据进行脱敏处理,但又不像传统的静态脱敏一样需导出数据脱敏后再移交,而是通过业务系统之间的接口直接调用。这就属于应用系统之间不落地的数据交换,针对这种交换的数据需要作脱敏处理。
动态脱敏系统的部署方式
1. 代理网关式
动态脱敏系统常见的一种部署模式,逻辑上是旁路,物理上是串行的方式。原本应用系统与数据库建立连接,为了实现数据脱敏处理,应用系统的SQL数据连接请求转发到脱敏代理系统,由动态脱敏系统解析请求后,再将SQL语句转发到数据库服务器,数据库服务器返回的数据同样经过动态脱敏系统后由脱敏系统返回给应用服务器。
这种部署方式可以实现,不在数据库服务器与应用务器上安装软件就能进行脱敏处理,但这也需要更改应用务器对数据库的调用地址,也就是说原来是由应用务器连接数据库,现在改成应用服务器连接动态脱敏的代理网关。这种部署模式能针对应用用户实现粗粒度的脱敏,也可实现针对运维脱敏的处理。存在的问题是,针对应用用户无法实现用户级的不同脱敏算法与效果,同时运维脱敏也存在被绕过的危险,DBA可能会绕过动态脱敏系统直接访问数据库地址。(国外Informatica 的产品就是常以这种方式部署)。
2. 透明网关式
这种部署模式是将动态脱敏系统串接在应用服务器与数据库之间,由于动态脱敏系统能在OSI二层上工作,不需要IP地址,对应用服务器与数据库服务器来说,都像原来一样访问各自的真实IP地址,动态脱敏系统通过协议解析分析出流量中的SQL语句来实现脱敏。这种部署方式不需要更改应用服务器与数据库服务器的连接设置,但在网络中会形成单点故障,虽然常常有BYPASS技术作为支撑,但所有流量都会经过网关,会造成网关性能瓶颈问题。(国外做数据库防火墙的Imperva 等会采用这种方式,但动态脱敏只是其中小的功能,也只是针对少量的敏感数据采用这种脱敏方式。)
3. 软件Agent代理方式
这种方式在数据库服务器上安装Agent, 监控对数据的访问请求。当请求的数据是敏感数据时,Agent 会利用脱敏算法来对数据进行脱敏处理。这种部署方式需要在数据库服务器上安装软件,带来了好处是运维人员无法绕过。
动态脱敏在隐私保护与数据安全方案中作用
数据脱敏不只是一种新颖的数据操作,它已成为软件生命周期和数据管理的核心内容。其中,静态数据脱敏技术已被纳入集成到软件生命周期(SLC),动态数据脱敏技术则成为数据管理过程中不可缺少的组成部分。
相关阅读