数据动态脱敏方法和装置与流程

文档序号:31199885发布日期:2022-08-20 01:26阅读:622来源:国知局
数据动态脱敏方法和装置与流程

1.本发明属于数据脱敏技术领域,具体涉及一种数据动态脱敏方法和装置。


背景技术:

2.在当前信息安全热潮中,数据脱敏作为数据安全的重要一环得到了业界的认可与重视。按照数据使用场景,将数据脱敏分为静态数据脱敏(static data masking-sdm)与动态数据脱敏(dynamic data masking-ddm)。
3.静态数据脱敏(sdm):一般用在非生产环境,将敏感数据从生产环境抽取并脱敏后给到非生产环境使用,常用于培训、分析、测试、开发等非生产系统的数据库。静态脱敏输出内容包括脱敏后的文件、表格和备库等。备库服务可以用于非实时任务要求的业务环境,如医院叫号系统。
4.动态数据脱敏(ddm):常用在生产环境,在访问敏感数据即时进行脱敏,一般用来解决在生产环境需要根据不同情况对同一敏感数据读取时进行不同级别脱敏的场景。
5.现有的动态脱敏技术包括改写sql语句动态脱敏的方案,其原理为:当应用程序、维护、开发工具请求通过动态数据脱敏(ddm)时,实时筛选请求的sql语句,通过改写sql语句实现依据用户角色、权限和其他脱敏规则屏蔽敏感数据。改写sql语句动态脱敏系统逻辑上串行部署,物理上可以串行部署,也可以通过反向代理和路由引流等方式旁路部署。原应用系统与数据库建立直接连接,为了实现数据脱敏处理,应用系统的sql数据连接请求被转发到脱敏代理系统,由动态脱敏系统解析并修改请求后,再将sql语句转发到数据库服务器,数据库服务器返回的数据同样经过动态脱敏系统后由脱敏系统返回给应用服务器。图1为改写sql语句动态脱敏的原理图。这种脱敏方式由于在改写sql语句时,sql语句的长度发生改变,导致不能适配现有的数据库协议以及传输协议都需要进行相应的改变,改写难度大,应用受限制。
6.现有的动态脱敏技术还包括直接修改数据库返回结果的方案,如图2所示,直接修改数据库返回结果的脱敏方案是根据动态脱敏规则,直接修改数据库服务器的返回结果,重新构造返回数据库数据,实现动态脱敏。此动态脱敏方式同样要求完全掌握数据库协议,由于商业数据库协议不开放原因,大规模数据库协议支持不现实,开源数据库如mysql,postgresql理论上可以。但是,此种方式必须解析返回数据库数据,并根据脱敏结果,重新封装返回数据。数据脱敏后,返回数据长度一定产生变化,而且,涉及数据库用户真实海量数据,数据长度变化跟踪根本不可能,根本无法用包处理网关实现,只能启用应用代理网关。此应用代理网关直接处理数据库返回的数据,比“动态改写sql语句”负载大得太多,性能严重下降,同时具有“动态改写sql语句”所有缺陷。
7.现有动态脱敏技术还包括中间件程序动态脱敏的方案,包括以下两种方式:通过中间件数据源输出时,对结果进行转换脱,如图3所示;通过替换含有动态改写sql语句的中间件进行动态脱敏,如图4所示。业务应用提交sql语句到中间件,中间件依据策略改写sql语句,然后通过jdbc\odbc等中间件到真实数据库执行,进而脱敏。中间件程序动态脱敏方
案不同于改写sql语句动态脱敏方案,中间件程序动态脱敏方案是在语句提交环节进行语句改写,数据库网络传输的sql语句无变化,而改写sql语句动态脱敏方案,数据库协议在网络上产生变化。中间件程序动态脱敏方案要求数据库客户端支持中间件连接方式,通常用于业务应用场景,不支持中间件连接的第三方应用,无法使用此方式动态脱敏。中间件程序动态脱敏方案本质上是修改数据库客户端软件,使用支持动态脱敏的数据库中间件构建应用,可以实现针对业务和运维的数据库实时脱敏。缺点:对于不支持中间件连接的应用和已经存在的第三方数据库客户端,动态脱敏无法支持。
8.现有动态脱敏技术还包括利用新创建用户配合视图动态脱敏的方案,该方案完全依赖脱敏用户,用新创建的脱敏用户登录数据库,访问配置好的动态脱敏视图,可以实现数据脱敏,任何非此新创建的脱敏用户,不主动或者不显示的访问设置好的视图,都不能实现动态脱敏。


技术实现要素:

9.鉴于上述,本发明的目的是提供一种数据动态脱敏方法和装置,能够针对所有类型数据库,实现高性能、高稳定性以及实时的完全动态数据脱敏。
10.为实现上述发明目的,实施例提供的一种数据动态脱敏方法,包括以下步骤:
11.在目标数据库上创建与需要脱敏的目标表或目标视图的名称长度相等的新视图,所述新视图包括脱敏策略,依据脱敏策略实现数据动态脱敏;
12.应用网关动态修改包含目标sql语句中的数据库应用协议数据,即将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图,保证替换后目标sql语句长度不变,修改后的数据库应用协议数据转发至目标数据库服务器,实现动态脱敏。
13.在一个实施例中,创建新视图时,需要根据目标数据库服务器的要求和语法进行创建。
14.在一个实施例中,创建新视图时,针对同一个需要脱敏的目标表或目标视图,为每类脱敏策略单独创建一个新视图,新视图语句实现脱敏策略要求的对特定数据字段的动态脱敏。
15.在一个实施例中,所述应用网关包括基于网络包的安全网关,基于网络包的安全网关在tcp层将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图后,进行tcp校验和ip校验计算,校验结束后,转发修好后的数据库应用协议数据。
16.在一个实施例中,所述基于网络包的安全网关包括网络防火墙、ips、数据库防火墙等,即这些基于网络包字符替换的设备实现将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图。
17.在一个实施例中,所述应用网关包括应用代理网关,应用代理网关将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图后,直接进行修改后的数据库应用协议数据的转发。
18.为实现上述发明目的,实施例还提供了一种数据动态脱敏装置,包括:创建模块和应用网关;
19.所述创建模块用于在目标数据库上创建一个与需要脱敏的目标表或目标视图的名称长度相等的新视图,所述新视图包括脱敏策略,依据脱敏策略实现数据动态脱敏;
20.所述应用网关用于动态修改包含目标sql语句中的数据库应用协议数据,即将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图,保证替换后目标sql语句长度不变;还用于将修改后的数据库应用协议数据转发至目标数据库服务器,实现动态脱敏。
21.在一个实施例中,所述创建模块在创建新视图时,需要根据目标数据库服务器的要求和语法进行创建。
22.在一个实施例中,所述创建模块在创建新视图时,针对同一个需要脱敏的目标表或目标视图,为每类脱敏策略单独创建一个新视图,新视图语句实现脱敏策略要求的对特定数据字段的动态脱敏。
23.在一个实施例中,所述应用网关包括基于网络包的安全网关,基于网络包的安全网关在tcp层将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图后,进行tcp校验和ip校验计算,校验结束后,转发修好后的数据库应用协议数据;
24.所述应用网关包括应用代理网关,应用代理网关将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图后,直接进行修改后的数据库应用协议数据的转发。
25.与现有技术相比,本发明具有的有益效果至少包括:
26.本发明提供的数据动态脱敏方法和装置,先创建与需要脱敏的目标表或目标视图的名称长度相等的新视图,并在应用网关中利用新视图直接替换目标sql语句中的目标表或目标视图以修改目标sql语句,使得修改后的目标sql语句长度无任何变化,这样在进行数据库应用协议数据传输时,不受任何约束限制,支持任何数据库客户端及其子版本,同时支持业务应用场景和数据库运维场景,数据库业务客户端、数据库业务中间件无需做任何改变,可以对任何数据库用户访问数据库实现动态实时脱敏。
27.在整个脱敏过程中,需要保证视图名称长度相等新视图创建和目标sql语句长度不变的视图替换,具有理论简单、易于实现、高稳定性、高性能、高突发、高并发、低时延的特性,完全满足各类业务应用要求。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
29.图1是改写sql语句动态脱敏的方案原理图;
30.图2是直接修改数据库返回结果的动态脱敏方案的原理图;
31.图3是通过中间件数据源输出时对结果进行转换脱的脱敏方案原理图;
32.图4是通过替换含有动态改写sql语句的中间件进行动态脱敏的原理图;
33.图5是实施例提供的数据动态脱敏方法的流程图;
34.图6是实施例提供的数据动态脱敏方法中数据动态脱敏的原理图;
35.图7是实施例提供的数据动态脱敏方法中应用代理网关实现的动态脱敏原理;
36.图8是实施例提供的数据动态脱敏方法中基于网络包的应用网关实现的动态脱敏
原理;
37.图9是实施例提供的数据动态脱敏装置的流程图;
38.图10是安全网关直接改写数据包中sql语句的原理图;
39.图11是应用网关代理转发动态改写sql语句的原理图;
40.图12是sql语句级代理网关动态改写sql语句的原理图。
具体实施方式
41.为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
42.针对现有数据动态脱敏方法存在的技术问题,实施例提供了一种数据动态脱敏方法,采用动态修改sql语句方法,结合目标数据库视图技术,实现真正的完全实时的高稳定性的数据动态脱敏。
43.图5是实施例提供的数据动态脱敏方法的流程图。图6是实施例提供的数据动态脱敏方法中数据动态脱敏的原理图。如图5和图6所示,实施例提供的数据动态脱敏方法,包括以下步骤:
44.步骤1,在目标数据库上创建与需要脱敏的目标表或目标视图的名称长度相等的新视图,所述新视图包括脱敏策略,依据脱敏策略实现数据动态脱敏。
45.目前主流数据库都支持视图创建,且视图对数据库服务器安全性、性能基本没有影响,是目前数据库分级及隐私保护的主要技术。基于此,在目标数据库上依据脱敏策略,针对目标数据库需要脱敏的目标表或目标视图)创建一个与之对应的新视图,要求创建的新视图的名称字符长度与需要脱敏的表(或视图)名称长度相同,这样可以保证在进行视图替换时不改变sql语句长度。
46.实施例中,在创建新视图时,需要根据目标数据库服务器的要求和语法进行创建。例如针对oracle数据库,新视图名称统一用大写英文字母创建。
47.实施例中,创建新视图时,针对同一个需要脱敏的目标表或目标视图,为每类脱敏策略单独创建一个新视图,即不同的脱敏策略,创建不同的随机的与目标表或目标视图名称长度相同的新视图,以实现灵活的动态脱敏需求。创建的新视图语句实现脱敏策略要求的对特定数据字段的动态脱敏。
48.步骤2,应用网关动态修改包含目标sql语句中的数据库应用协议数据,即将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图,保证替换后目标sql语句长度不变,修改后的数据库应用协议数据转发至目标数据库服务器,实现动态脱敏。
49.新视图创建后,应用网关采用动态修改目标sql语句方式,用创建的新视图动态替换目标sql语句中的目标表或目标视图名称,且保证目标sql语句长度不会变化,进而可以使程序实现方式灵活,程序实现简单,程序稳定性提高,程序性能几乎无影响。再将修改之后的数据库协议数据转发至目标数据库服务器,实现动态脱敏。
50.实施例中,应用网关的开发简单,用于数据库应用协议数据的转发,应用网关可以是应用代理网关,此种情况下,如图7所示,应用代理网关将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图后,无需任何处理,直接进行修改后的数据库应用协
议数据的转发,即可实现数据动态脱敏。
51.实施例中,应用网关还可以是基于网络包的安全网关,此情况下,如图8所示,基于网络包的安全网关在tcp层将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图后,进行tcp校验和ip校验计算,校验结束后,转发修好后的数据库应用协议数据,实现数据动态脱敏。其中,基于网络包的安全网关包括网络防火墙、ips、数据库防火墙等,即这些基于网络包字符替换的设备实现将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图。
52.如图9所示,实施例还提供了一种数据动态脱敏装置,包括创建模块610和应用网关620;其中,创建模块610用于在目标数据库上创建一个与需要脱敏的目标表或目标视图的名称长度相等的新视图,所述新视图包括脱敏策略,依据脱敏策略实现数据动态脱敏;应用网关620用于动态修改包含目标sql语句中的数据库应用协议数据,即将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图,保证替换后目标sql语句长度不变;还用于将修改后的数据库应用协议数据转发至目标数据库服务器,实现动态脱敏。
53.其中,所述创建模块在创建新视图时,需要根据目标数据库服务器的要求和语法进行创建;针对同一个需要脱敏的目标表或目标视图,为每类脱敏策略单独创建一个新视图,新视图语句实现脱敏策略要求的对特定数据字段的动态脱敏。
54.数据动态脱敏装置中的应用网关可以是基于网络包的安全网关,基于网络包的安全网关在tcp层将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图后,进行tcp校验和ip校验计算,校验结束后,转发修好后的数据库应用协议数据;还可以是应用代理网关,应用代理网关将目标sql语句中的需要脱敏的目标表或目标视图替换为创建的新视图后,直接进行修改后的数据库应用协议数据的转发。
55.需要说明的是,上述实施例提供的数据动态脱敏装置在进行数据动态脱敏时,应以上述各功能模块的划分进行举例说明,可以根据需要将上述功能分配由不同的功能模块完成,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据动态脱敏装置与数据动态脱敏方法实施例属于同一构思,其具体实现过程详见数据动态脱敏方法实施例,这里不再赘述。
56.上述实施例提供的数据动态脱敏方法和装置,通过替换目标sql语句中的目标表或目标视图,将目标sql语句中对目标表或目标视图的操作,透明的转移到对创建的新视图进行操作;再由创建的新视图去实现要求的动态脱敏逻辑。创建的新视图名称只有同目标表或目标视图名称长度相同,才能不破坏数据库应用协议sql语句与长度相关的协议封装和网络传输tcp/ip协议中包长度相关字段,才有可能简单、方便、高效、稳定地实现“动态修改包含sql语句的数据库应用协议数据流”的应用网关或者网络数据包处理网关,即动态脱敏网关。
57.下面将实施例提供的数据动态脱敏方法和装置,与现有的动态脱敏方案进行比对,以突出实施例提供的数据动态脱敏方法和装置的技术效果:
58.1、与现有改写sql语句动态脱敏方案相比
59.现有改写sql语句动态脱敏方案的实现方式包括:(1)网络包直接改写;(2)应用代理程序实现数据转发,在数据转发中对应用数据进行改写,国内数据库安全公司普遍采用此方式实现动态脱敏系统;(3)实现sql级代理,针对每个sql语句进行改写,然后发起新的
针对目标数据库的连接,实现sql请求动态脱敏,国外informatica动态脱敏系统、开源软件mycat动态脱敏模块采用此方式实现动态脱敏。这三种方式均不需要在数据库服务器与应用务器上安装软件,就能实现针对业务应用和运维的动态脱敏处理。
60.如图10所示的基于网络包处理的安全网关直接改写数据包中sql语句的脱敏方案,存在以下缺点:网络包直接改写sql语句方式实现非常困难,不仅要彻底理解和解码各类数据库协议及其分支版本,实现时还必须对网络数据包tcp和ip协议部分进行连接保持和变化跟踪。改写sql语句类动态脱敏系统在sql语句被改写后,sql语句长度产生变化,不但数据库协议数据部分要重新计算,承载数据库数据的tcp层和ip层,都要进行相应变化跟踪,典型的就是tcp协议的seq和ack字段的跟踪和修改。每次sql语句改写,后续连接所有双向数据包都要依据sql变化的长度进行相应的seq和ack修改,多次改写依次叠加。此种改写sql语句动态脱敏系统原理简单,但实现极为复杂,且由于数据库协议的多样性和复杂性,基本属于不可实现方式,目前市面上没有此类方式实现的动态脱敏系统。
61.如图11所示的应用网关代理转发动态改写sql语句的脱敏方案是在数据库客户端和服务器端之间引入代理服务器,数据库客户端先和代理服务器建立数据库连接,代理服务器再和真实数据库服务器建立连接,之后代理服务器在客户端和服务器端之间转发数据,在数据转发过程中改写客户端的sql语句请求,然后依据数据库协议,重新组装数据库协议数据,发往真实数据库服务器进行脱敏操作。此种方式实现的动态脱敏,由于是采用的应用代理机制,存在如下缺点:(1)改写sql语句依然会使sql语句长度产生变化,重组数据库协议数据比较困难,各种数据库协议及其子版本都必须兼容,实现极为不易。因此,国内数据库安全厂商采用此类实现方式的动态脱敏系统,只能针对少数数据库,如oracle和sql server,甚至只能针对某具体数据库的具体子版本,其余概不支持。(2)由于采用的是应用代理技术,并发和突发性能低下,难以支撑低时延的业务应用需求。应用代理技术一般有2种实现方式,一种是针对每连接的多进程方式,即每个数据库连接派生一个进程,然后此进程再连接真实数据库;另一种是单进程多连接方式,代理服务器有限进程处理海量连接,单一进程处理多连接代理转发。单连接单进程实现方式由于每个连接都需要额外派生一个进程并与真实数据库建立连接,连接建立慢,难以支撑突发连接大场景,且由于每个连接一个进程,难以支撑并发连接大的业务应用。国内厂商基本采用此方式实现动态脱敏,由于技术路线的局限性,常用于运维动态脱敏,不能应用于业务的动态脱敏要求。单进程多连接代理转发,开发难度大,如果某个连接处理异常,容易影响其它连接的正常代理转发,稳定性差,容易形成单点故障,造成大面积灾难。
62.如图12所示的sql语句级代理动态脱敏的实现方式类似于应用代理动态脱敏系统,都是在数据库客户端和服务端之间建立一个代理服务器。不同点在于,sql语句级代理动态脱敏系统代理服务器必须完全模仿真实数据库服务器,必须完全支持各种数据库协议,数据库客户端真实交互的对象是代理服务器,代理服务器在接收到sql语句后,开始向目标数据库服务器建立连接,提交请求,获取请求数据,断开与真实数据库的连接,之后,再将数据协议封装,发给真实数据库客户端。此种方式难点在于:支持的协议,由于数据库协议都是国外巨头发明并垄断,商业数据库支撑基本不可能,国外informatica有数据库协议便利性,采用此方式实现。国内厂商只有开源数据库如mysql,postgresql可以采用此方式实现,能够完全模拟数据库协议。开源mycat动态脱敏模块就采用此方式实现。
63.与上述改写sql语句方式动态脱敏方案相比,实施例提供的数据动态脱敏方法和装置仅仅改写sql语句中目标表或目标视图名称,且脱敏逻辑是在替换的新视图中实现的;而改写sql语句方式动态脱敏方案改写的是非目标表或目标视图名称外的字段,且脱敏逻辑是在的sql语句中实现的。由于实施例利用新视图名称同sql语句中目标数据库的目标表或目标视图名称长度相同,替换后的sql语句长度不变,因而无需任何数据库协议细节处理和协议适配,可以广泛支持各种数据库及其子版本,不存在兼容性和稳定性问题。
64.2、与现有利用新创建用户配合视图动态脱敏方案的对比
65.利用新创建用户配合视图动态脱敏方案亦可以实现动态脱敏。该方案逻辑重点是给新创建的用户配置动态脱敏视图,新创建的用户登录数据库,访问配置的视图,即可以实现对数据库数据的动态脱敏。cn109815742a申请的动态脱敏技术就属于此类动态脱敏方案。此技术方案采用视图,可以根据待脱敏数据构建灵活方便的脱敏函数和脱敏策略,此技术方案的重点也落在如何利用现有数据构建灵活的脱敏函数和脱敏策略等方面。此方案的缺点是,动态脱敏完全依赖脱敏用户,用新创建的脱敏用户登录数据库,访问配置好的动态脱敏视图,可以实现数据脱敏,任何非此新创建的脱敏用户,不主动或者不显示的访问设置好的视图,都不能实现动态脱敏。在生产实践中,业务系统预置的业务账号,一般不可变动,业务系统访问的表格或者视图,开发时已经写好;数据库运维用户,一般不会主动的去访问脱敏视图。利用此原理生产的动态脱敏装置,可以用于新开发的需要动态脱敏的业务系统,在开发过程中,直接访问设置好的动态脱敏视图,实现对生产数据的动态脱敏,适应场景有限。该技术方案的最大缺点,是访问客户端需要整改或者重新开发,强制内置新创建的脱敏用户,强制访问新构建的脱敏视图。对已经存在的业务系统,不经过改造,没有任何脱敏效果;对数据库运维,必须强制使用新创建的脱敏用户,通过账号安全(密码保密)的方式,限制访问敏感表格,强制只能访问新创建的脱敏视图方式实现敏感数据动态脱敏,对于任何非新创建的数据库用户和业务账号,数据库运维实践中不会有任何脱敏效果。
66.总之,利用新创建用户配合视图动态脱敏方案完全依赖新创建的脱敏用户及其权限限制,在新创建的脱敏用户下,创建脱敏视图实现动态脱敏逻辑,而利用本发明提供的数据动态脱敏方法和装置不依赖任何特定用户。
67.利用新创建用户配合视图动态脱敏方案必须显示的直接访问脱敏视图,其中,业务系统依赖开发时必须使用实现动态脱敏逻辑的视图,数据库运维中必须依赖新创建的用户密码和新创建用户的权限控制;而利用本发明提供的数据动态脱敏方法和装置中,终端用户和业务客户端完全不知道脱敏视图的存在,访问用户,客户端软件,部署方式等,无需任何改变。
68.利用新创建用户配合视图动态脱敏方案生产的脱敏装置,数据库客户端软件直接连接数据库服务器,数据库访问数据流不流经脱敏装置,而本发明提供的数据动态脱敏方法和装置,数据库数据访问流量必须经过脱敏装置,在脱敏装置中隐秘完成视图或者表格替换,实现无感知透明动态实时脱敏。
69.以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1