CN114817974A - 动态数据脱敏方法及系统、数据安全处理方法及系统 - Google Patents
动态数据脱敏方法及系统、数据安全处理方法及系统 Download PDFInfo
- Publication number
- CN114817974A CN114817974A CN202210149216.9A CN202210149216A CN114817974A CN 114817974 A CN114817974 A CN 114817974A CN 202210149216 A CN202210149216 A CN 202210149216A CN 114817974 A CN114817974 A CN 114817974A
- Authority
- CN
- China
- Prior art keywords
- desensitization
- data
- configuration
- user
- sensitive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Abstract
本发明揭示了一种动态数据脱敏方法及系统、数据安全处理方法及系统,所述数据安全处理方法包括:接收用户提交的请求语句;获取对应用户的权限;判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则提交到计算层执行对应请求;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏方式,对请求语句进行改写后再提交到计算层执行。本发明提出的动态数据脱敏方法及系统、数据安全处理方法及系统,可降低开发成本、维护成本及硬件资源的成本;同时可降低系统性能损耗。
Description
技术领域
本发明属于大数据处理技术领域,涉及一种脱敏方法,尤其涉及一种动态数据脱敏方法及系统、数据安全处理方法及系统。
背景技术
大数据时代,数据安全建设受到越来越多企业的关注,但通常,数据安全性与大数据分析性能成反比,与架构部署难度及存储成本成正比。高昂的成本和复杂的架构成为了小型企业在实现大数据脱敏道路上的绊脚石,因此需要一种低成本、高效率、易扩展、易运维的大数据脱敏方案。
Apache Spark是开源大数据计算引擎,支持基于海量数据的分析、模型训练、图计算等功能,是大数据计算领域的主流计算引擎,被广泛应用于各大公司的离线数据、准实时数据分析处理场景。
数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。对敏感信息通过脱敏规则进行数据的变形、模糊化、伪装,从而实现敏感隐私数据的可靠保护。数据脱敏分为静态脱敏和动态脱敏两种类型,本申请主要针对动态脱敏。
现有的数据脱敏方式主要包括如下三种:
(1)一般而言,很多规模较大的公司在数仓数据安全方面采用敏感库-脱敏库形式,数据冗余两份存储,采用遮盖、加密或Hash等方式对数据进行脱敏操作。同时每日新增数据需要在脱敏库维护一份脱敏数据,通过跑批方式导入。该方案很多小型企业出于成本方面的考虑,受限于计算资源和存储成本,无法采用一般的脱敏形式。
(2)基于Apache Ranger的列屏蔽和行过滤功能做数据脱敏。该方案也采用动态脱敏,以插件形式接入各个组件,对各个组件的版本有强依赖,部署难度相对较大;该方案目前不支持对Spark引擎数据进行脱敏。
(3)对数仓中全量敏感数据进行对称加密,各部门使用不同的密钥进行解密。加密时需要先分析出敏感数据所涉及的表及字段,制定解密规则后对逐步加密数仓中的数据。解密方法是开发专用的解密客户端以支持数据解密。该方案调整牵扯到整个公司的业务及人员调度,调整代价较大,并且还需要花费大量人力成本去开发和调整业务逻辑,而在计算效率也会因加密算法而降低。
由此可见,现有数据脱贫技术存在如下缺点:
(1)目前没有支持Spark计算引擎的动态脱敏技术方案案例;
(2)常规脱敏方案需要冗余一份数据,占用量存储资源,随数据量增长,存储成本将会爆炸式增长,同时由于计算量的增多,需要提供的计算资源也成倍增长,计算硬件成本增长不可估量;
(3)即使不做冗余脱敏数据存储,加密算法开发仍然需要在服务端和客户端进行,不仅占用更多计算资源导致运算效率下降,而且耗费大量人力成本进行开发和调整;
(4)开源的Ranger脱敏框架目前不支持Spark引擎,且对相关组件版本有强依赖关系,版本过低或过高都无法兼容,落地部署需要做大量适配工作,门槛较高。
有鉴于此,如今迫切需要设计一种新的数据脱敏方式,以便克服现有数据脱敏方式存在的上述至少部分缺陷。
发明内容
本发明提供一种动态数据脱敏方法及系统、数据安全处理方法及系统,可降低开发成本、维护成本及硬件资源的成本;同时可降低系统性能损耗。
为解决上述技术问题,根据本发明的一个方面,采用如下技术方案:
一种动态数据脱敏方法,所述动态数据脱敏方法包括:
步骤S1、接收用户提交的请求语句,根据用户提交的请求语句生成逻辑计划;
步骤S2、获取查询的表,获取对应用户的权限;
步骤S3、判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则转至步骤S7;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏算法,转至步骤S4;
步骤S4、创建应用脱敏用户自定义函数的全局临时视图,替换对应的请求语句;转至步骤S5;
步骤S5、将修改后的请求语句进行语法检测;转至步骤S6;
步骤S6、根据修改后的请求语句生成新的逻辑计划;转至步骤S7;
步骤S7、将逻辑计划提交到计算层执行。
作为本发明的一种实施方式,所述动态数据脱敏方法进一步包括脱敏配置更新步骤;所述脱敏配置更新步骤包括:
步骤A1、初始化脱敏规则库与脱敏配置库;
步骤A2、实时更新迭代脱敏配置;实时监控敏感数据变化以实现自动维护脱敏配置库;
获取元数据库的变更操作,进而得知元数据中新增、删除、修改的表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
作为本发明的一种实施方式,步骤A1中,手动设定不同类型敏感数据默认脱敏方式,手机号、身份证号、银行卡号、姓名默认采用的脱敏方式分别为遮盖后四位、遮盖中间某几位、遮盖中间某几位、遮盖首个字符后的几位;
脱敏规则库支持使用设定符号作为通配符,如果公司的数仓比较规范,某一类数据的字段名大多是一致的,比如客户姓名都叫cust_name或custname,所以通过通配符实现配置所有含cust_name的表都采用某种脱敏方式;
当然通配方法虽然支持绝大部分表的敏感字段脱敏,但不排除有用户会恶意使用其他字段名存敏感数据或者用敏感字段名存其他数据,因此通过敏感数据实时自动发现程序来对通用配置进行“纠错”;
步骤A2中,开启Hive元数据Mysql的Binlog,通过Flink消费Binlog得到元数据库的变更操作,进而得知Hive中新增、删除、修改的表格,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化;
首次运行后,脱敏配置库已经存有大量脱敏规则,这些规则随着时间的推移、随着数仓不断变化而变化。
根据本发明的另一个方面,采用如下技术方案:一种数据安全处理方法,所述数据安全处理方法包括上述的动态数据脱敏方法。
根据本发明的又一个方面,采用如下技术方案:一种数据安全处理方法,所述数据安全处理方法包括:
步骤1、接收用户提交的请求语句;
步骤2、获取对应用户的权限;
步骤3、判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则提交到计算层执行对应请求;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏方式,对请求语句进行改写后再提交到计算层执行。
根据本发明的又一个方面,采用如下技术方案:一种动态数据脱敏系统,所述动态数据脱敏系统包括:
逻辑计划生成模块,用以接收用户提交的请求语句,根据用户提交的请求语句生成逻辑计划;
查询表获取模块,用以获取查询的表;
用户权限获取模块,用以获取对应用户的权限;
权限判断模块,用以判断对应用户具有设定表中设定字段敏感字段的访问权限;
脱敏算法选择模块,用以在对应用户没有对应敏感字段的权限时,根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏算法;
全局临时视图创建模块,用以创建应用脱敏用户自定义函数的全局临时视图,替换对应的请求语句;
语法检测模块,用以将修改后的请求语句进行语法检测;
逻辑计划更新模块,用以根据修改后的请求语句生成新的逻辑计划;以及
执行提交模块,用以将逻辑计划提交到计算层执行。
作为本发明的一种实施方式,所述动态数据脱敏系统进一步包括脱敏配置更新模块,用以更新脱敏配置;所述脱敏配置更新模块包括:
初始化模块,用以初始化脱敏规则库与脱敏配置库;以及
脱敏配置更新迭代模块,用以实时更新迭代脱敏配置,实时监控敏感数据变化以实现自动维护脱敏配置库;获取元数据库的变更操作,进而得知元数据中新增、删除、修改的表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
作为本发明的一种实施方式,所述初始化模块用以设定不同类型敏感数据默认脱敏方式,手机号、身份证号、银行卡号、姓名默认采用的脱敏方式分别为遮盖后四位、遮盖中间某几位、遮盖中间某几位、遮盖首个字符后的几位;
脱敏规则库支持使用设定符号作为通配符,如果公司的数仓比较规范,某一类数据的字段名大多是一致的,比如客户姓名都叫cust_name或custname,所以通过通配符实现配置所有含cust_name的表都采用某种脱敏方式;
当然通配方法虽然支持绝大部分表的敏感字段脱敏,但不排除有用户会恶意使用其他字段名存敏感数据或者用敏感字段名存其他数据,因此通过敏感数据实时自动发现程序来对通用配置进行“纠错”;
该程序首次初始化脱敏配置库的整体思路是,分析数仓中已有数据,对表、字段取样后根据正则来归类;
所述脱敏配置更新迭代模块开启Hive元数据Mysql的Binlog,通过Flink消费Binlog得到元数据库的变更操作,进而得知Hive中新增、删除、修改了哪些表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
根据本发明的又一个方面,采用如下技术方案:一种数据安全处理系统,所述数据安全处理系统包括上述的动态数据脱敏系统。
根据本发明的又一个方面,采用如下技术方案:一种数据安全处理系统,所述数据安全处理系统包括:
请求语句接收模块,用以接收用户提交的请求语句;
用户权限获取模块,用以获取对应用户的权限;
动态数据脱敏模块,用以判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则提交到计算层执行对应请求;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏方式,对请求语句进行改写后再提交到计算层执行。
本发明的有益效果在于:本发明提出的动态数据脱敏方法及系统、数据安全处理方法及系统,可降低开发成本、维护成本及硬件资源的成本;同时可降低系统性能损耗。
在本发明的一种使用场景下,本发明可在极大节约成本及性能损耗的前提下,为使用Spark作为计算引擎的大数据体系架构提供实时动态数据脱敏能力。
附图说明
图1为本发明一实施例中数据安全处理方法的流程图。
图2为本发明一实施例中数据安全处理系统的组成示意图。
图3为发明一实施例中动态数据脱敏方法的流程图。
图4为发明一实施例中数据安全处理系统的架构图。
图5为发明一实施例中自动敏感数据发现与脱敏配置更新流程图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。
该部分的描述只针对几个典型的实施例,本发明并不仅局限于实施例描述的范围。相同或相近的现有技术手段与实施例中的一些技术特征进行相互替换也在本发明描述和保护的范围内。
说明书中各个实施例中的步骤的表述只是为了方便说明,本申请的实现方式不受步骤实现的顺序限制。说明书中的“连接”既包含直接连接,也包含间接连接。
本发明揭示一种数据安全处理方法,图1为本发明一实施例中数据安全处理方法的流程图;请参阅图1,所述数据安全处理方法包括:
步骤1、接收用户提交的请求语句;
步骤2、获取对应用户的权限;
步骤3、判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则提交到计算层执行对应请求;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏方式,对请求语句进行改写后再提交到计算层执行。
在本发明的一种使用场景中,某公司业务人员采用SQL做数据分析,Spark提供了SQL分析数仓数据的入口,所以采用了Spark作为主要计算引擎。动态脱敏大体流程可以参考图1,用户提交一条SQL到计算引擎,引擎层面对登陆的用户做鉴权,如果该用户开通了某张表某个字段的敏感数据访问权限,则SQL会正常提交到计算层执行。大多数情况下,用户没有该敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定该字段如何脱敏,对SQL进行一定的改写后再提交到计算层执行。
本发明还揭示了一种动态数据脱敏方法,图3为发明一实施例中动态数据脱敏方法的流程图;请参阅图3,所述动态数据脱敏方法包括:
步骤S1、接收用户提交的请求语句,根据用户提交的请求语句生成逻辑计划;
步骤S2、获取查询的表,获取对应用户的权限;
步骤S3、判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则转至步骤S7;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏算法,转至步骤S4;
步骤S4、创建应用脱敏用户自定义函数的全局临时视图,替换对应的请求语句;转至步骤S5;
步骤S5、将修改后的请求语句进行语法检测;转至步骤S6;
步骤S6、根据修改后的请求语句生成新的逻辑计划;转至步骤S7;
步骤S7、将逻辑计划提交到计算层执行。
在本发明的一种使用场景中,动态脱敏功能实现的具体流程包括:用户提交的SQL经过Spark会生成一个逻辑计划(Unresolved Logical Plan),在未加入脱敏功能前,这个逻辑计划会直接提交到Spark计算层做进一步的解析、元数据映射、优化、并最终转换为RDD和算子提交给集群做计算。加入脱敏功能后,切入点是SQL生成逻辑计划的过程,通过对SQL的修改、重新生成逻辑计划并覆盖原有逻辑计划,实现了修改实际提交的任务为脱敏处理后的任务。
通过一些已有的脱敏规则和脱敏配置来决定如何对SQL做修改,实现了“用户-表-字段-行”粒度级别的脱敏,因为脱敏配置中定义了哪些表、字段,不同用户使用时字段的脱敏方式,所以可以最终确定一张表在哪些条件下,哪些数据采用什么UDF(User DefinedFunction,我们根据支持的脱敏规则实现了具有数据脱敏功能的自定义函数)进行脱敏。然后对用户提交的SQL进行正则解析,拿到该SQL涉及的所有数据表,通过HiveContext(一种获取Hive表对象及元信息的接口)获取到该数据表的所有字段,并根据字段名及对应的脱敏UDF,将该表创建为一张Session级别的临时视图,这也相当于在数据源层做了脱敏,只要用户有任何操作该表的动作,都无法绕过数据加密脱敏。有了视图名称和原表名称,即可替换原SQL,得到经过处理后的SQL,再通过SparkSQL模块提供的ParsePlan方法将修改后的SQL转换为Spark可以识别的逻辑计划(Unresolved Logical Plan),代替原有逻辑计划提交给引擎计算层执行。返回的结果即为脱敏后的结果。
图5为发明一实施例中自动敏感数据发现与脱敏配置更新流程图;请参阅图5,在本发明的一实施例中,所述动态数据脱敏方法进一步包括脱敏配置更新步骤;所述脱敏配置更新步骤包括:
步骤A1、初始化脱敏规则库与脱敏配置库;
在本发明的一实施例中,步骤A1中,手动设定不同类型敏感数据默认脱敏方式,比如手机号、身份证号、银行卡号、姓名默认采用的脱敏方式分别为遮盖后四位、遮盖中间某几位、遮盖中间某几位、遮盖首个字符后的几位。
脱敏规则库支持使用*作为通配符,如果公司的数仓比较规范,某一类数据的字段名大多是一致的,比如客户姓名都叫cust_name或custname,所以可以通过通配符实现配置所有含cust_name的表都采用某种脱敏方式。当然通配方法虽然可以支持绝大部分表的敏感字段脱敏,但不排除有用户会恶意使用其他字段名存敏感数据或者用敏感字段名存其他数据,因此我们开发了一个敏感数据实时自动发现程序来对通用配置进行“纠错”。
该程序首次初始化脱敏配置库的整体思路是,分析数仓中已有数据(TBLS是一个mysql表,包含Hive数仓中所有Hive表的基本元信息,拿到SD_ID),对表、字段取样后根据正则来归类。
步骤A2、实时更新迭代脱敏配置;实时监控敏感数据变化以实现自动维护脱敏配置库。获取元数据库的变更操作,进而得知元数据中新增、删除、修改的表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
在本发明的一实施例中,步骤A2中,开启Hive元数据Mysql的Binlog(一种记录读写操作的日志),通过Flink消费Binlog得到元数据库的变更操作,进而得知Hive中新增、删除、修改了哪些表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
首次运行后,脱敏配置库已经存有大量脱敏规则,这些规则随着时间的推移、随着数仓不断变化而变化。
在本发明一实施例中,所述数据安全处理方法包括上述的动态数据脱敏方法。
本发明还揭示一种数据安全处理系统,图2为本发明一实施例中数据安全处理系统的组成示意图;请参阅图2,所述数据安全处理系统包括:请求语句接收模块1、用户权限获取模块2及动态数据脱敏模块3。
所述请求语句接收模块1用以接收用户提交的请求语句;所述用户权限获取模块2用以获取对应用户的权限。
所述动态数据脱敏模块3用以判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则提交到计算层执行对应请求;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏方式,对请求语句进行改写后再提交到计算层执行。
图4为发明一实施例中数据安全处理系统的架构图;请参阅图4,在本发明的一实施例中,本系统提供SQL接口以及计算能力的服务名为Spark-ThriftServer,是一个Spark子服务,图4揭示了系统各模块之间的依赖关系。Spark上层即为客户端,用户通过JDBC协议连接到Spark。Spark下层是依赖Hive提供的数据仓库管理能力,实现对数据仓库中数据的分析。Hive则依赖Hadoop提供的存储能力以及资源分配能力,并且Hive依赖Mysql提供元数据管理能力。Mysql提供了Spark引擎中脱敏信息、脱敏配置的存储能力。
本发明进一步揭示一种动态数据脱敏系统,所述动态数据脱敏系统包括:逻辑计划生成模块、查询表获取模块、用户权限获取模块、权限判断模块、脱敏算法选择模块、全局临时视图创建模块、语法检测模块、逻辑计划更新模块及执行提交模块。
所述逻辑计划生成模块用以接收用户提交的请求语句,根据用户提交的请求语句生成逻辑计划。
所述查询表获取模块用以获取查询的表;所述用户权限获取模块用以获取对应用户的权限。所述权限判断模块用以判断对应用户具有设定表中设定字段敏感字段的访问权限。
所述脱敏算法选择模块用以在对应用户没有对应敏感字段的权限时,根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏算法。
所述全局临时视图创建模块用以创建应用脱敏用户自定义函数的全局临时视图,替换对应的请求语句。所述语法检测模块用以将修改后的请求语句进行语法检测。
所述逻辑计划更新模块用以根据修改后的请求语句生成新的逻辑计划。所述执行提交模块用以将逻辑计划提交到计算层执行。
在本发明的一实施例中,所述动态数据脱敏系统进一步包括脱敏配置更新模块,用以更新脱敏配置;所述脱敏配置更新模块包括:初始化模块、脱敏配置更新迭代模块。
所述初始化模块用以初始化脱敏规则库与脱敏配置库。
在本发明的一实施例中,所述初始化模块用以设定不同类型敏感数据默认脱敏方式,手机号、身份证号、银行卡号、姓名默认采用的脱敏方式分别为遮盖后四位、遮盖中间某几位、遮盖中间某几位、遮盖首个字符后的几位。
脱敏规则库支持使用设定符号(如*)作为通配符,如果公司的数仓比较规范,某一类数据的字段名大多是一致的,比如客户姓名都叫cust_name或custname,所以通过通配符实现配置所有含cust_name的表都采用某种脱敏方式。
当然通配方法虽然支持绝大部分表的敏感字段脱敏,但不排除有用户会恶意使用其他字段名存敏感数据或者用敏感字段名存其他数据,因此通过敏感数据实时自动发现程序来对通用配置进行“纠错”。
该程序首次初始化脱敏配置库的整体思路是,分析数仓中已有数据(TBLS是一个mysql表,包含Hive数仓中所有Hive表的基本元信息,拿到SD_ID),对表、字段取样后根据正则来归类。
所述脱敏配置更新迭代模块用以实时更新迭代脱敏配置,实时监控敏感数据变化以实现自动维护脱敏配置库;获取元数据库的变更操作,进而得知元数据中新增、删除、修改的表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
在本发明的一实施例中,所述脱敏配置更新迭代模块开启Hive元数据Mysql的Binlog(一种记录读写操作的日志),通过Flink消费Binlog得到元数据库的变更操作,进而得知Hive中新增、删除、修改了哪些表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
在本发明的一实施例中,所述数据安全处理系统包括上述的动态数据脱敏系统。
在本发明的一种使用场景中,本发明需要实现对关联操作无影响。用户关联多张表的场景下,如果每张表都在数据源层做了脱敏,且关联字段为敏感字段的情况下,则关联结果可能会不准确(依据脱敏算法而定),如果脱敏算法为Hash,且可以容忍一定哈希冲突带来的误差,则不做处理;如果脱敏算法为遮盖,则关联起来误差会非常大,无法容忍,这时动态脱敏模块会根据原始SQL的操作类型(select or create)以及是否包含join操作来决定是否关闭对关联字段的脱敏,具体做法是将需要关联的敏感字段暂时不脱敏,允许其关联,把该查询做为一个子查询,在其上层单独对关联的敏感字段做脱敏。即可实现关联无误差且输出结果集无敏感信息。
用户开通敏感权限后将敏感数据导入临时表,若遇到数据泄漏,需要一套数仓数据层敏感数据自动发现系统,会对新增表数据进行取样、分析,发现敏感数据会自动更新到脱敏配置库并生效;从而实现了敏感数据临时表的脱敏管理、审计。
综上所述,本发明提出的动态数据脱敏方法及系统、数据安全处理方法及系统,可降低开发成本、维护成本及硬件资源的成本;同时可降低系统性能损耗。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施;例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中;例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现;例如,作为与处理器配合从而执行各个步骤或功能的电路。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。实施例中所涉及的效果或优点可因多种因素干扰而可能不能在实施例中体现,对于效果或优点的描述不用于对实施例进行限制。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。
Claims (10)
1.一种动态数据脱敏方法,其特征在于,所述动态数据脱敏方法包括:
步骤S1、接收用户提交的请求语句,根据用户提交的请求语句生成逻辑计划;
步骤S2、获取查询的表,获取对应用户的权限;
步骤S3、判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则转至步骤S7;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏算法,转至步骤S4;
步骤S4、创建应用脱敏用户自定义函数的全局临时视图,替换对应的请求语句;转至步骤S5;
步骤S5、将修改后的请求语句进行语法检测;转至步骤S6;
步骤S6、根据修改后的请求语句生成新的逻辑计划;转至步骤S7;
步骤S7、将逻辑计划提交到计算层执行。
2.根据权利要求1所述的动态数据脱敏方法,其特征在于:
所述动态数据脱敏方法进一步包括脱敏配置更新步骤;所述脱敏配置更新步骤包括:
步骤A1、初始化脱敏规则库与脱敏配置库;
步骤A2、实时更新迭代脱敏配置;实时监控敏感数据变化以实现自动维护脱敏配置库;
获取元数据库的变更操作,进而得知元数据中新增、删除、修改的表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
3.根据权利要求2所述的动态数据脱敏方法,其特征在于:
步骤A1中,手动设定不同类型敏感数据默认脱敏方式,手机号、身份证号、银行卡号、姓名默认采用的脱敏方式分别为遮盖后四位、遮盖中间某几位、遮盖中间某几位、遮盖首个字符后的几位;
脱敏规则库支持使用设定符号作为通配符,如果公司的数仓比较规范,某一类数据的字段名大多是一致的,比如客户姓名都叫cust_name或custname,所以通过通配符实现配置所有含cust_name的表都采用某种脱敏方式;
当然通配方法虽然支持绝大部分表的敏感字段脱敏,但不排除有用户会恶意使用其他字段名存敏感数据或者用敏感字段名存其他数据,因此通过敏感数据实时自动发现程序来对通用配置进行“纠错”;
步骤A2中,开启Hive元数据Mysql的Binlog,通过Flink消费Binlog得到元数据库的变更操作,进而得知Hive中新增、删除、修改的表格,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化;
首次运行后,脱敏配置库已经存有大量脱敏规则,这些规则随着时间的推移、随着数仓不断变化而变化。
4.一种数据安全处理方法,其特征在于,所述数据安全处理方法包括:权利要求1至3任一所述的动态数据脱敏方法。
5.一种数据安全处理方法,其特征在于,所述数据安全处理方法包括:
步骤1、接收用户提交的请求语句;
步骤2、获取对应用户的权限;
步骤3、判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则提交到计算层执行对应请求;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏方式,对请求语句进行改写后再提交到计算层执行。
6.一种动态数据脱敏系统,其特征在于,所述动态数据脱敏系统包括:
逻辑计划生成模块,用以接收用户提交的请求语句,根据用户提交的请求语句生成逻辑计划;
查询表获取模块,用以获取查询的表;
用户权限获取模块,用以获取对应用户的权限;
权限判断模块,用以判断对应用户具有设定表中设定字段敏感字段的访问权限;
脱敏算法选择模块,用以在对应用户没有对应敏感字段的权限时,根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏算法;
全局临时视图创建模块,用以创建应用脱敏用户自定义函数的全局临时视图,替换对应的请求语句;
语法检测模块,用以将修改后的请求语句进行语法检测;
逻辑计划更新模块,用以根据修改后的请求语句生成新的逻辑计划;以及
执行提交模块,用以将逻辑计划提交到计算层执行。
7.根据权利要求6所述的动态数据脱敏系统,其特征在于:
所述动态数据脱敏系统进一步包括脱敏配置更新模块,用以更新脱敏配置;所述脱敏配置更新模块包括:
初始化模块,用以初始化脱敏规则库与脱敏配置库;以及
脱敏配置更新迭代模块,用以实时更新迭代脱敏配置,实时监控敏感数据变化以实现自动维护脱敏配置库;获取元数据库的变更操作,进而得知元数据中新增、删除、修改的表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
8.根据权利要求7所述的动态数据脱敏系统,其特征在于:
所述初始化模块用以设定不同类型敏感数据默认脱敏方式,手机号、身份证号、银行卡号、姓名默认采用的脱敏方式分别为遮盖后四位、遮盖中间某几位、遮盖中间某几位、遮盖首个字符后的几位;
脱敏规则库支持使用设定符号作为通配符,如果公司的数仓比较规范,某一类数据的字段名大多是一致的,比如客户姓名都叫cust_name或custname,所以通过通配符实现配置所有含cust_name的表都采用某种脱敏方式;
当然通配方法虽然支持绝大部分表的敏感字段脱敏,但不排除有用户会恶意使用其他字段名存敏感数据或者用敏感字段名存其他数据,因此通过敏感数据实时自动发现程序来对通用配置进行“纠错”;
该程序首次初始化脱敏配置库的整体思路是,分析数仓中已有数据,对表、字段取样后根据正则来归类;
所述脱敏配置更新迭代模块开启Hive元数据Mysql的Binlog,通过Flink消费Binlog得到元数据库的变更操作,进而得知Hive中新增、删除、修改了哪些表,针对这些变动的表进行取样分析,并根据正则发现包含敏感数据的表及字段,生成脱敏配置,更新到脱敏配置库;形成脱敏配置管理的自动化。
9.一种数据安全处理系统,其特征在于,所述数据安全处理系统包括:权利要求6至8任一所述的动态数据脱敏系统。
10.一种数据安全处理系统,其特征在于,所述数据安全处理系统包括:
请求语句接收模块,用以接收用户提交的请求语句;
用户权限获取模块,用以获取对应用户的权限;
动态数据脱敏模块,用以判断用户是否具有对应权限;若对应用户具有设定表中设定字段敏感字段的访问权限,则提交到计算层执行对应请求;若对应用户没有对应敏感字段的权限,则引擎根据已有的脱敏配置库和脱敏规则库来决定对应敏感字段的脱敏方式,对请求语句进行改写后再提交到计算层执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210149216.9A CN114817974A (zh) | 2022-02-18 | 2022-02-18 | 动态数据脱敏方法及系统、数据安全处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210149216.9A CN114817974A (zh) | 2022-02-18 | 2022-02-18 | 动态数据脱敏方法及系统、数据安全处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817974A true CN114817974A (zh) | 2022-07-29 |
Family
ID=82527510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210149216.9A Pending CN114817974A (zh) | 2022-02-18 | 2022-02-18 | 动态数据脱敏方法及系统、数据安全处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817974A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495769A (zh) * | 2022-11-16 | 2022-12-20 | 江苏曼荼罗软件股份有限公司 | 一种数据脱敏方法、系统、可读存储介质及设备 |
CN117633901A (zh) * | 2024-01-25 | 2024-03-01 | 深圳昂楷科技有限公司 | 数据库动态脱敏方法及系统 |
-
2022
- 2022-02-18 CN CN202210149216.9A patent/CN114817974A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495769A (zh) * | 2022-11-16 | 2022-12-20 | 江苏曼荼罗软件股份有限公司 | 一种数据脱敏方法、系统、可读存储介质及设备 |
CN115495769B (zh) * | 2022-11-16 | 2023-03-10 | 江苏曼荼罗软件股份有限公司 | 一种数据脱敏方法、系统、可读存储介质及设备 |
CN117633901A (zh) * | 2024-01-25 | 2024-03-01 | 深圳昂楷科技有限公司 | 数据库动态脱敏方法及系统 |
CN117633901B (zh) * | 2024-01-25 | 2024-05-07 | 深圳昂楷科技有限公司 | 数据库动态脱敏方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392586B2 (en) | Data protection method and device and storage medium | |
Zhang et al. | A scalable two-phase top-down specialization approach for data anonymization using mapreduce on cloud | |
US20210234669A1 (en) | Using cache objects to store events for adding corresponding objects in a blockchain | |
CN114817974A (zh) | 动态数据脱敏方法及系统、数据安全处理方法及系统 | |
US11620378B2 (en) | Systems and methods for proactive and reactive data security | |
US10503923B1 (en) | Centralized data store for multiple data processing environments | |
CN110135184B (zh) | 一种静态数据脱敏的方法、装置、设备及存储介质 | |
CN116137908A (zh) | 动态确定端到端链路的信任级别 | |
US11544229B1 (en) | Enhanced tracking of data flows | |
US11704114B2 (en) | Data structures for managing configuration versions of cloud-based applications | |
US11966732B2 (en) | Data structures for managing configuration versions of cloud-based applications | |
US11816119B2 (en) | System and methods for querying and updating databases | |
US11962686B2 (en) | Encrypting intermediate data under group-level encryption | |
US20230188327A1 (en) | Handling pre-existing containers under group-level encryption | |
US11683161B2 (en) | Managing encryption keys under group-level encryption | |
WM Ribeiro et al. | OLAP parallel query processing in clouds with C‐ParGRES | |
US11500837B1 (en) | Automating optimizations for items in a hierarchical data store | |
US20210377718A1 (en) | Pattern affinity for discovery | |
US11526446B1 (en) | Modifying caching amongst services from a history of requests and responses | |
US11500874B2 (en) | Systems and methods for linking metric data to resources | |
JP2023523704A (ja) | 分散データ・ストレージ環境におけるセキュアなデータ複製 | |
CN113127906A (zh) | 基于c/s架构的统一权限管理平台、方法及存储介质 | |
EP4091066B1 (en) | Systems and methods for performing updated query requests in a system of multiple database engine | |
US11899811B2 (en) | Processing data pages under group-level encryption | |
US11886413B1 (en) | Time-sliced approximate data structure for storing group statistics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |