本发明涉及计算机技术与信息安全的交叉技术领域,具体是一种零拷贝全镜像的大数据静态数据库脱敏的方法与系统。
背景技术:
当今,社会信息化与网络化的发展导致数据爆炸式的增长,随着各个行业业务的快速发展,这些业务生产系统中积累了大量与个人、企业、政府相关的敏感数据。在实际的开发、测试、外包和其他非生产环境中直接使用业务系统的真实数据,极易造成敏感数据的泄露。因此,大多数用户借助于数据脱敏技术,对敏感信息通过脱敏规则进行数据变形,实现敏感隐私数据的保护。
目前,用户使用的数据脱敏方式主要包括以下几种:
1.基于数据库命令的数据脱敏
基于数据库命令的数据脱敏方式是直接采用数据库的sql命令,对数据库中需要脱敏的字段进行遮挡或者替换,以达到数据脱敏的目的。该方法操作简单方便,但是存在很多弊端,具体如下:
1)通过数据库命令配置脱敏规则时,用户需要对数据库的敏感数据非常了解,一旦用户遗漏敏感数据,会造成敏感数据泄露;
2)当数据库中的表与字段数量庞大,用户需要花费大量时间配置脱敏规则,耗时且耗力;
3)基于数据库命令设置脱敏规则,会占用数据库的资源,对数据库性能造成影响。
4)在开发和测试环境下,基于数据库命令的方式,无法保持脱敏后数据的业务关联性和一致性,影响脱敏数据的正常使用。
2.基于数据落地的数据脱敏
基于数据落地的数据脱敏方式一般是首先使用数据抽取工具将用户的数据抽取到本地,之后在本地进行敏感数据发现后,采用脱敏算法对敏感数据进行数据脱敏。该方式可以满足用户在非生产环境下的定时、增量脱敏及脱敏数据的一致性与关联性需求,但是还存在一些问题,具体如下:
1)基于数据落地的数据脱敏是将数据从生产环境中抽取到本地,当数据量比较大时,数据抽取对数据库的性能造成严重的影响,甚至会影响用户数据库的正常使用;
2)基于数据落地的数据脱敏将抽取的生产数据存储至本地,增加了数据泄露的风险,一旦存储设备被窃取,会给用户造成巨大的损失;
3)基于数据落地的数据脱敏方式在进行数据库定时增量脱敏任务时,为提升脱敏速度,会对用户数据库做相关改动,可能影响用户数据库的性能;
4)基于数据落地的数据脱敏方式只考虑对全库进行定时增量的数据脱敏,但是并不支持表级定时增量脱敏与视图级别的定时增量脱敏,无法满足用户需求的全部场景。
由上可知,现有的数据脱敏方式还存在以下挑战:
1)如何在对数据库性能影响最小的情况下,支持定时增量的数据脱敏;
2)如何对数据采取零拷贝全镜像的数据脱敏方式,保证数据不落地,降低敏感数据泄露的风险;
3)如何在保证脱敏速率的情况,不改动用户数据库,实现定时与增量的脱敏任务;
4)如何实现数据库级、表级、视图级别的数据脱敏,保留整库级脱敏后的数据库约束关系与视图,满足用户多样化的场景需求;
5)如何保证整库级数据脱敏后,数据的业务关联性与一致性。
技术实现要素:
为了解决上述问题,本发明提供一种零拷贝全镜像的大数据静态数据库脱敏系统及方法。
一种零拷贝全镜像的大数据静态数据库脱敏系统,包括对系统的基础功能进行管理的系统管理模块、对系统的源数据库地址和目标地址进行管理的数据源管理模块、实现对脱敏任务的配置和执行以及监控的数据脱敏任务执行模块、为脱敏任务提供配置基础的脱敏配置管理模块。
其中,所述系统管理模块包括角色管理模块、用户管理模块、设备管理模块、集群管理模块。所述数据源管理模块包括对源数据库的注册、修改、删除、查询、启用及禁用功能进行管理的源数据库地址管理模块;所述数据源管理模块还包括对脱敏后数据的存储地址的注册、修改、删除、查询、启用及禁用能够进行管理的目标地址管理模块。所述数据脱敏任务执行模块包括对整库级的数据脱敏任务进行配置的整库级静态数据脱敏模块、对表级的数据脱敏任务进行配置的表级静态数据脱敏模块、对视图级的数据脱敏任务进行配置的视图级静态数据脱敏模块、监控所有数据脱敏任务的数据脱敏任务监控模块。所述脱敏配置管理模块包括敏感分类体系管理模块、数据脱敏策略管理模块、自定义敏感字段管理模块、数据脱敏算法管理模块、自定义敏感数据管理模块、日志查询与分析模块。
本发明的一种零拷贝全镜像大数据静态数据库脱敏方法,采用一种零拷贝全镜像大数据静态数据库脱敏系统,对数据进行脱敏,包括如下步骤:
s1、获取数据库,转到步骤s2;
s2、输入数据库数据源信息,进行数据库数据源注册,转到步骤s3;
s3、配置数据脱敏任务,并启动脱敏任务,转到步骤s4;
s4、数据同步,转到步骤s5;
s5、监测目标库是否连接成功,若是,转到步骤s6;若否,转到步骤s7;
s6、判断脱敏任务类型并选择任务,若脱敏任务类型为整库级脱敏,则执行整库级脱敏任务;若脱敏任务类型为表级脱敏,则执行表级脱敏任务;拖脱敏任务类型为视图级脱敏,则执行视图级脱敏任务;
s7、脱敏任务执行失败,结束流程。
其中,进行数据库数据源注册包括如下步骤:
y1、输入注册的源数据库数据源信息,转到步骤y2;
y2、判断步骤y1中输入的信息是否正确,若否,源数据库数据源信息注册失败,转到步骤y3;若是,转到步骤y4;
y3、数据源注册结束;
y4、获取数据库的表结构,转到步骤y5;
y5、获取数据库约束关系信息,转到步骤y6;
y6、获取数据库视图信息,转到步骤y7;
y7、采用随机抽样算法抽取数据库数据样本,转到步骤y8;
y8、采用智能化自适应敏感数据识别方式对样本进行敏感数据识别,转到步骤y9;
y9、输出敏感数据识别结果,转到步骤y10;
y10、源数据库数据源注册成功。
数据同步包括如下步骤:
t1、系统接收同步数据库事件,启动数据同步任务,转到步骤t2;
t2、自动连接数据库,转到步骤t3;
t3、判断数据库连接是否成功,若是,转到步骤t4,若否,数据库连接失败,转到步骤t10;
t4、获取数据库结构,转到步骤t5;
t5、将步骤t4获取到的数据库结构与数据源注册时的表结构进行比对,转到步骤t6;
t6、判断步骤t5中的比对结构是否一致,若是,转到步骤t10;若否,转到步骤t7;
t7、更新注册时的表结构,转到步骤t8;
t8、基于多线程的敏感数据自动发现方式发现更新后的数据库中的敏感数据,转到步骤t9;
t9、数据同步成功;
t10、结束。
执行整库级脱敏任务包括如下步骤:
z11、获取脱敏任务配置信息,执行脱敏任务,转到步骤z12;
z12、执行数据同步流程,转到步骤z13;
z13、检测目标库是否连接成功,若是,转到步骤z14,若否,脱敏任务执行失败,结束退出;
z14、判断脱敏任务是否为整库级脱敏,若是,转到步骤z15,若否,转到其他类型脱敏;
z15、判断目标库是否存在关系,若是,转到步骤z16,若否,转到步骤z17;
z16、删除目标库关系,转到步骤z17;
z17、对源数据库作任务分发,转到步骤z18;
z18、获取数据脱敏规则,转到步骤z19;
z19、判断目标库表结构与源数据库是否一致,若是,转到步骤z110;若否,转到步骤z114;
z110、判断脱敏任务是否为定时增量任务,若是,转到步骤z111,若否,转到步骤z113;
z111、对增量的数据脱敏,并追加到目标库,转到步骤z112;
z112、判断追加是否成功,若是,转到步骤z115;若否,转到步骤z114;
z113、删除与脱敏任务目标库表相同的表,转到步骤z114;
z114、重新对表进行敏感数据发现、脱敏及导入,转到步骤z115;
z115、写入关系及视图。
执行表级脱敏任务包括如下步骤:
z21、获取脱敏任务配置信息,执行脱敏任务,转到步骤z22;
z22、执行数据同步流程,转到步骤z23;
z23、检测目标库是否连接成功,若是,转到步骤z24,若否,脱敏任务执行失败,结束退出;
z24、判断脱敏任务是否为表级脱敏,若是,转到步骤z25,若否,转到其他类型脱敏;
z25、对源数据库作任务分发,转到步骤z26;
z26、获取数据脱敏规则,转到步骤z27;
z27、判断目标库表结构与源数据库是否一致,若是,转到步骤z28;若否,转到步骤z212;
z28、判断脱敏任务是否为定时增量任务,若是,转到步骤z29,若否,转到步骤z211;
z29、对增量的数据脱敏,并追加到目标库,转到步骤z210;
z210、判断追加是否成功,若是,转到转到步骤z213;若否,转到步骤z212;
z211、删除与脱敏任务目标库表相同的表,转到步骤z212;
z212、重新对表进行敏感数据发现、脱敏及导入,转到步骤z213;
z213、写入关系及视图。
执行视图级脱敏任务包括如下步骤:
z31、获取脱敏任务配置信息,执行脱敏任务,转到步骤z32;
z32、执行数据同步流程,转到步骤z33;
z33、检测目标库是否连接成功,若是,转到步骤z34,若否,脱敏任务执行失败,结束退出;
z34、判断脱敏任务是否为视图级脱敏,若是,转到步骤z35,若否,转到其他类型脱敏;
z35、对源数据库作任务分发,转到步骤z36;
z36、获取数据脱敏规则,转到步骤z37;
z37、判断目标库表结构与源数据库是否一致,若是,转到步骤z38;若否,转到步骤z312;
z38、判断脱敏任务是否为定时增量任务,若是,转到步骤z39,若否,转到步骤z311;
z39、对增量的数据脱敏,并追加到目标库,转到步骤z310;
z310、判断追加是否成功,若是,转到转到步骤z313;若否,转到步骤z312;
z311、删除与脱敏任务目标库表相同的表,转到步骤z312;
z312、重新对表进行敏感数据发现、脱敏及导入,转到步骤z313;
z313、写入关系及视图。
本发明提出了一种零拷贝全镜像的大数据静态数据库脱敏的方法与系统,有效的解决了目前大数据静态脱敏存在的问题。数据脱敏过程中,分批抽取数据,对数据零拷贝,且数据不落地,保证了数据脱敏过程中数据的安全;通过分布式集群的方式,提升了数据脱敏任务处理的速度;在对数据库性能影响最小的情况下,支持定时增量的数据脱敏;在保证脱敏速率的情况,不改动用户数据库,实现定时与增量的脱敏任务;通过研究数据库脱敏技术,实现了数据库级、表级、视图级别的数据脱敏,并可保留数据库的约束关系,满足用户多样化的场景需求;通过一致性脱敏算法,保证了整库级的数据脱敏后数据的一致性与业务关联性。
附图说明
图1是本发明的一种零拷贝全镜像的大数据静态数据库脱敏系统架构示意图;
图2是本发明的一种零拷贝全镜像的大数据静态数据库脱敏方法主要流程示意图;
图3是本发明的一种零拷贝全镜像的大数据静态数据库脱敏方法数据源注册流程示意图;
图4是本发明的一种零拷贝全镜像的大数据静态数据库脱敏方法数据同步流程示意图;
图5是本发明的一种零拷贝全镜像的大数据静态数据库脱敏方法整库级数据脱敏流程示意图;
图6是本发明的一种零拷贝全镜像的大数据静态数据库脱敏方法表级数据脱敏流程示意图;
图7是本发明的一种零拷贝全镜像的大数据静态数据库脱敏方法视图级数据脱敏流程示意图。
具体实施方式
为了更好的理解本发明,下面结合附图详细说明本发明。
一种零拷贝全镜像的大数据静态数据库脱敏系统主要包括系统管理模块、数据源管理模块、数据脱敏任务执行模块及脱敏配置管理模块四大模块,其中数据脱敏任务执行模块是整个系统的核心。如图1所示,本发明一种零拷贝全镜像的大数据静态数据库脱敏系统,包括对系统的基础功能进行管理的系统管理模块、对系统的源数据库地址和目标地址进行管理的数据源管理模块、实现对脱敏任务的配置和执行以及监控的数据脱敏任务执行模块、为脱敏任务提供配置基础的脱敏配置管理模块。具体地说,所述系统管理模块包括角色管理模块、用户管理模块、设备管理模块、集群管理模块。角色管理模块执行对系统的角色增、删、查、改等操作,并为角色授权。用户管理模块执行对系统的操作用户增、删、查、改等操作,并为用户进行角色与数据源的授权。
所述数据源管理模块包括对源数据库的注册、修改、删除、查询、启用及禁用功能进行管理的源数据库地址管理模块;所述数据源管理模块还包括对脱敏后数据的存储地址的注册、修改、删除、查询、启用及禁用能够进行管理的目标地址管理模块。源数据库地址管理模块实现源数据库的注册、修改、删除、查询、启用及禁用等功能。目标地址管理模块实现对脱敏后数据的存储地址的注册、修改、删除、查询、启用及禁用等功能,包括目标数据库的地址管理与文件夹地址管理。
所述数据脱敏任务执行模块包括对整库级的数据脱敏任务进行配置的整库级静态数据脱敏模块、对表级的数据脱敏任务进行配置的表级静态数据脱敏模块、对视图级的数据脱敏任务进行配置的视图级静态数据脱敏模块、监控所有数据脱敏任务的数据脱敏任务监控模块。数据库脱敏任务执行模块实现对整库级、表级及视图级的数据脱敏任务的配置、执行与监控,是整个系统的核心。整库级静态数据脱敏对整库级的数据脱敏任务进行配置,配置信息包括定时、增量、敏感数据发现、子集抽取、目标输出地址等。表级静态数据脱敏模块对表级的数据脱敏任务进行配置,配置信息包括定时、增量、敏感数据发现、子集抽取、目标输出地址等。视图级静态数据脱敏模块对视图级的数据脱敏任务进行配置,配置信息包括定时、增量、敏感数据发现、子集抽取、目标输出地址等。据脱敏任务监控模块监控所有数据脱敏任务,支持对任务的修改、删除与停止等操作。
所述脱敏配置管理模块包括敏感分类体系管理模块、数据脱敏策略管理模块、自定义敏感字段管理模块、数据脱敏算法管理模块、自定义敏感数据管理模块、日志查询与分析模块。脱敏配置管理是数据脱敏任务配置的基础,包括敏感分类体系管理、数据脱敏策略管理、自定义敏感字段、自定义敏感数据、数据脱敏算法管理及日志的查询与分析。敏感分类体系管理模块支持用户查看系统默认的敏感分类体系,支持用户自建敏感分类体系;数据脱敏策略管理模块支持基于敏感分类体系的数据脱敏策略的增、删、查、改等操作;自定义敏感字段管理模块支持用户自定义数据库中的敏感字段及其所属的敏感类型;自定义敏感数据管理模块支持用户自定义敏感数据及其替换规则;数据脱敏算法管理模块支持用户自定义数据脱敏算法,并对自定义的算法进行增、删、查、改等操作;日志查询与分析模块记录系统日志与业务日志,对日志进行查询与统计分析。
如图2所示,本发明的一种零拷贝全镜像大数据静态数据库脱敏方法,采用一种零拷贝全镜像大数据静态数据库脱敏系统,对数据进行脱敏,包括如下步骤:
s1、获取数据库,转到步骤s2;
s2、输入数据库数据源信息,进行数据库数据源注册,转到步骤s3;
s3、配置数据脱敏任务,并启动脱敏任务,转到步骤s4;
s4、数据同步,转到步骤s5;
s5、监测目标库是否连接成功,若是,转到步骤s6;若否,转到步骤s7;
s6、判断脱敏任务类型并选择任务,若脱敏任务类型为整库级脱敏,则执行整库级脱敏任务;若脱敏任务类型为表级脱敏,则执行表级脱敏任务;拖脱敏任务类型为视图级脱敏,则执行视图级脱敏任务;
s7、脱敏任务执行失败,结束流程。
其中,数据源注册是源数据库管理的核心,该部分通过提取源数据库的数据结构、约束关系及敏感数据发现,支撑数据库脱敏任务,如图3所示,进行数据库数据源注册包括如下步骤:
y1、输入注册的源数据库数据源信息,转到步骤y2;
y2、判断步骤y1中输入的信息是否正确,若否,源数据库数据源信息注册失败,转到步骤y3;若是,转到步骤y4;
y3、数据源注册结束;
y4、获取数据库的表结构,转到步骤y5;
y5、获取数据库约束关系信息,转到步骤y6;
y6、获取数据库视图信息,转到步骤y7;
y7、采用随机抽样算法抽取数据库数据样本,转到步骤y8;
y8、采用智能化自适应敏感数据识别方式对样本进行敏感数据识别,转到步骤y9;
y9、输出敏感数据识别结果,转到步骤y10;
y10、源数据库数据源注册成功。
数据同步作为数据脱敏任务的基础,数据同步能有效地保障数据脱敏任务成功执行,如图4所示,数据同步包括如下步骤:
t1、系统接收同步数据库事件,启动数据同步任务,转到步骤t2;
t2、自动连接数据库,转到步骤t3;
t3、判断数据库连接是否成功,若是,转到步骤t4,若否,数据库连接失败,转到步骤t10;
t4、获取数据库结构,转到步骤t5;
t5、将步骤t4获取到的数据库结构与数据源注册时的表结构进行比对,转到步骤t6;
t6、判断步骤t5中的比对结构是否一致,若是,转到步骤t10;若否,转到步骤t7;
t7、更新注册时的表结构,转到步骤t8;
t8、基于多线程的敏感数据自动发现方式发现更新后的数据库中的敏感数据,转到步骤t9;
t9、数据同步成功;
t10、结束。
整库级的数据脱敏,是以整个数据库为最小粒度进行数据脱敏任务的配置与执行,如图5所示,执行整库级脱敏任务包括如下步骤:
z11、获取脱敏任务配置信息,执行脱敏任务,转到步骤z12;
z12、执行数据同步流程,转到步骤z13;
z13、检测目标库是否连接成功,若是,转到步骤z14,若否,脱敏任务执行失败,结束退出;
z14、判断脱敏任务是否为整库级脱敏,若是,转到步骤z15,若否,转到其他类型脱敏;
z15、判断目标库是否存在关系,若是,转到步骤z16,若否,转到步骤z17;
z16、删除目标库关系,转到步骤z17;
z17、对源数据库作任务分发,转到步骤z18;
z18、获取数据脱敏规则,转到步骤z19;
z19、判断目标库表结构与源数据库是否一致,若是,转到步骤z110;若否,转到步骤z114;
z110、判断脱敏任务是否为定时增量任务,若是,转到步骤z111,若否,转到步骤z113;
z111、对增量的数据脱敏,并追加到目标库,转到步骤z112;
z112、判断追加是否成功,若是,转到步骤z115;若否,转到步骤z114;
z113、删除与脱敏任务目标库表相同的表,转到步骤z114;
z114、重新对表进行敏感数据发现、脱敏及导入,转到步骤z115;
z115、写入关系及视图。
表级的数据脱敏,是以表为最小粒度进行数据脱敏任务的配置与执行,如图6所示,执行表级脱敏任务包括如下步骤:
z21、获取脱敏任务配置信息,执行脱敏任务,转到步骤z22;
z22、执行数据同步流程,转到步骤z23;
z23、检测目标库是否连接成功,若是,转到步骤z24,若否,脱敏任务执行失败,结束退出;
z24、判断脱敏任务是否为表级脱敏,若是,转到步骤z25,若否,转到其他类型脱敏;
z25、对源数据库作任务分发,转到步骤z26;
z26、获取数据脱敏规则,转到步骤z27;
z27、判断目标库表结构与源数据库是否一致,若是,转到步骤z28;若否,转到步骤z212;
z28、判断脱敏任务是否为定时增量任务,若是,转到步骤z29,若否,转到步骤z211;
z29、对增量的数据脱敏,并追加到目标库,转到步骤z210;
z210、判断追加是否成功,若是,转到转到步骤z213;若否,转到步骤z212;
z211、删除与脱敏任务目标库表相同的表,转到步骤z212;
z212、重新对表进行敏感数据发现、脱敏及导入,转到步骤z213;
z213、写入关系及视图。
视图级的数据脱敏,是以视图为最小粒度进行数据脱敏任务的配置与执行,如图7所示,执行视图级脱敏任务包括如下步骤:
z31、获取脱敏任务配置信息,执行脱敏任务,转到步骤z32;
z32、执行数据同步流程,转到步骤z33;
z33、检测目标库是否连接成功,若是,转到步骤z34,若否,脱敏任务执行失败,结束退出;
z34、判断脱敏任务是否为视图级脱敏,若是,转到步骤z35,若否,转到其他类型脱敏;
z35、对源数据库作任务分发,转到步骤z36;
z36、获取数据脱敏规则,转到步骤z37;
z37、判断目标库表结构与源数据库是否一致,若是,转到步骤z38;若否,转到步骤z312;
z38、判断脱敏任务是否为定时增量任务,若是,转到步骤z39,若否,转到步骤z311;
z39、对增量的数据脱敏,并追加到目标库,转到步骤z310;
z310、判断追加是否成功,若是,转到转到步骤z313;若否,转到步骤z312;
z311、删除与脱敏任务目标库表相同的表,转到步骤z312;
z312、重新对表进行敏感数据发现、脱敏及导入,转到步骤z313;
z313、写入关系及视图。
本发明提出了一种零拷贝全镜像的大数据静态数据库脱敏的方法与系统,有效的解决了目前大数据静态脱敏存在的问题。数据脱敏过程中,分批抽取数据,对数据零拷贝,且数据不落地,保证了数据脱敏过程中数据的安全;通过分布式集群的方式,提升了数据脱敏任务处理的速度;在对数据库性能影响最小的情况下,支持定时增量的数据脱敏;在保证脱敏速率的情况,不改动用户数据库,实现定时与增量的脱敏任务;通过研究数据库脱敏技术,实现了数据库级、表级、视图级别的数据脱敏,并可保留数据库的约束关系,满足用户多样化的场景需求;通过一致性脱敏算法,保证了整库级的数据脱敏后数据的一致性与业务关联性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。