一种Hive动态脱敏方法及系统技术方案

技术编号:34427634 阅读:41 留言:0更新日期:2022-08-06 16:01
本发明专利技术公开了一种Hive动态脱敏方法和系统,基于敏感数据发现和字段血缘解析来实现,所述方法包括以下步骤:步骤S1:HQL语法树解析,对提交的HQLs进行逐个解析,生成对应的抽象语法树节点;步骤S2:通过正则表达式以及语法树结构特征判断HQL是否是查询语句;步骤S3:被判定为是查询语句时,HQL字段血缘解析;步骤S4:对Hive JDBC ResultSet实现类中获取列值的方法进行改写,完成脱敏处理。本发明专利技术的方法和系统能够实现基于敏感数据发现和字段血缘解析的透明化、自动化动态脱敏,有效提高实际生产环境中数据的安全性。生产环境中数据的安全性。生产环境中数据的安全性。

【技术实现步骤摘要】
一种Hive动态脱敏方法及系统


[0001]本专利技术涉及计算机网络及数据处理
,尤其是涉及一种基于敏感数据发现和字段血缘解析的Hive动态脱敏方法及系统。

技术介绍

[0002]近年来,随着互联网的快速发展,企业数据呈现爆炸性地增长趋势。数据智能成为企业保持核心竞争力的关键。数据中台战略是企业打通数据孤岛,实现“业务数据化和数据业务化”的必然选择。与此同时,数据中台离不开以Hadoop为核心的大数据技术生态支撑。其中,Hive是数据中台建设离线数仓、进行OLAP(Online Analysis Process, OLAP)分析的必要工具。它能够为业务开发人员屏蔽大数据底层复杂的分布式计算编程框架,如MapReduce、弹性分布式数据集(Resillient Distributed Dataset, RDD)等,提供一种被称为HiveQL或HQL的SQL方言,来查询存储在Hadoop集群中的海量数据。然而,新的数据存储和分析模型对传统建立在关系型数据库基础上的数据安全系统提出了变革性挑战。
[0003]数据安全必须覆盖数据的整个生命周期,如数据产生、存储、传输、使用、共享以及销毁。在每一个环节都需要面向不同开发人员提供安全的数据接入。因此,数据安全必须借助多种技术手段实现,其中数据脱敏是必不可少。数据脱敏可以在数据传输、共享和展示时通过对敏感信息进行脱敏处理来防止用户隐私数据、商业机密等敏感信息泄露。针对不同的场景,数据脱敏可以分为静态脱敏和动态脱敏。静态脱敏适用于数据脱离生产环境进行共享和迁移场景,在数据迁移过程中对敏感数据进行脱敏替换;动态脱敏适用于数据不脱离生产环境对敏感数据查询进行展示脱敏,即“边脱敏,边使用”。作为大数据查询引擎,为Hive赋予动态脱敏能力是数据中台数据安全架构建设中必须要进行的技术创新。
[0004]目前企业常用的Hive脱敏实现,如大数据权限管控组件Apache Ranger的基于策略的字段脱敏,大多是基于Hive提供的自定义函数(User Defined Function, UDF)相关接口,通过在查询字段上添加具有脱敏功能的UDF来实现。这一类脱敏实现方案存在以下问题:1)HQL查询必须精确到字段级别,对于“select *”这类查询操作,必须对“*”进行字段拆分,然后将脱敏UDF函数应用到具体需要脱敏的字段上,这一方面给编写业务SQL带来不便,另一方面使得原本可以通过“select *”来避免触发MapReduce任务变得不可行,增加了HQL查询执行的复杂度。2)脱敏UDF函数必须人工应用到字段,无法实现自动化动态脱敏。
[0005]综上,在以数据服务能力作为核心的数据中台上,为其必不可少的大数据查询引擎Hive提供基于敏感数据发现和字段血缘解析的透明化、自动化动态脱敏方案是十分必要的。这里,透明化是指敏感字段的脱敏无需人工参与,而自动化是指字段一旦被识别为敏感就会在HQL查询中自动脱敏展示。

技术实现思路

[0006]针对现有技术存在的问题,本专利技术的目的在于提供一种Hive动态脱敏方法及系统,能够实现基于敏感数据发现和字段血缘解析的透明化、自动化动态脱敏,有效提高实际
columnIndex)获取列值的方法进行改写,改写的流程包括如下步骤:S41.根据columnIndex在表字段血缘关系图中获取结果字段所对应的来源表和字段;S42.根据来源表和字段向动态脱敏规则管理模块查询关联的动态脱敏规则;S43.根据动态脱敏规则对结果字段的值进行脱敏替换。
[0014]进一步, Hive动态脱敏还可以利用Hive的安全认证机制提供的接口,自定义实现类将敏感数据识别结果和动态脱敏规则组合起来对查询操作时的敏感字段添加对应的脱敏表达式。
[0015]另一方面,本专利技术提供一种Hive动态脱敏系统,所述系统基于敏感数据发现和字段血缘解析来实现,所述系统用于实现根据本专利技术所述的Hive动态脱敏方法,所述系统包括敏感数据发现单元、Hive动态脱敏单元和动态脱敏规则管理单元。
[0016]进一步,所述系统通过敏感数据发现单元中的数据分级分类模块定义数据的安全等级和安全类别,所述安全等级包括公开、秘密、私密、机密和绝密,所述安全类别包括身份证或手机号等;然后将安全类别与安全等级进行关联,继而识别规则管理模块为每一种安全类别设置基于正则的敏感字段识别规则;规则开启生效后,通过敏感数据识别任务获取Hive表元数据以及表的抽样数据,敏感数据识别模块利用规则进行敏感数据识别,识别结果最终由敏感数据管理模块进行统一管理,其中记录了Hive表、字段、安全类别之间的映射关系。
[0017]进一步,所述动态脱敏规则管理单元中为每一种安全类别定义动态脱敏方案,所述动态脱敏方法包括适合字符类型的哈希脱敏、遮盖脱敏、和顺序重排,适合数值类型的数值取整和比特移位,以及适合日期和布尔类型的日期取整和随机替换。
[0018]本专利技术提出的基于敏感数据发现和字段血缘解析的Hive动态脱敏方法和系统,同时解决敏感数据发现、脱敏规则、自动化动态脱敏三大核心问题;通过基于正则的识别规则进行敏感数据发现技术;基于数据类型的动态脱敏规则设计;实现不侵入大数据集群的Hive动态脱敏方案,能够有效提高实际生产环境中数据的安全性。
附图说明
[0019]图1示出了根据本专利技术实施例中Hive动态脱敏方案的方法和系统的设计架构示意图;图2示出了根据本专利技术实施例中创建敏感字段识别规则示意图;图3示出了根据本专利技术实施例中Hive表safe_test的元数据和内容示意图;图4示出了根据本专利技术实施例中Hive表safe_test敏感字段识别结果示意图;图5示出了根据本专利技术实施例中创建动态脱敏规则示意图;图6示出了根据本专利技术实施例中Hive表safe_test预期查询结果示意图;图7示出了根据本专利技术实施例中HQL为查询语句的ASTNode充分必要条件的结构示意图;图8示出了根据本专利技术实施例中HQL的ASTNode结构示意图;图9示出了根据本专利技术实施例中HQL的字段血缘分析结果示意图;图10示出了根据本专利技术实施例中目标表temp数据的示意图。
具体实施方式
[0020]下面将结合附图,对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0021]在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0022]在本专利技术的描述中,需要说明的是,除非另有明确的规定和限本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Hive动态脱敏方法,所述方法基于敏感数据发现和字段血缘解析来实现,其特征在于,所述方法包括以下步骤:步骤S1:HQL语法树解析,对提交的HQLs进行逐个解析,生成对应的抽象语法树节点;步骤S2:通过正则表达式以及语法树结构特征判断HQL是否是查询语句;步骤S3:被判定为是查询语句时,HQL字段血缘解析;步骤S4:对Hive JDBC ResultSet实现类中获取列值的方法进行改写,完成脱敏处理。2.根据权利要求1所述的Hive动态脱敏方法,其特征在于,步骤S1中,HQL语法树解析利用Hive提供的ParseDriver对HQL进行解析,得到相应的ASTNode。3.根据权利要求2所述的Hive动态脱敏方法,其特征在于,步骤S2中,判断HQL为查询语句的ASTNode的充分必要条件如下:从ASTNode的根出发,其0号子节点必须为TOK_QUERY类型,并且TOK_QUERY子节点必须包含一个TOK_INSERT类型的子节点,该节点的子树索引序列0
→0→
0对应的Token类型必须为TOK_DESTINATION

TOK_DIR

TOK_TMP_FILE。4.根据权利要求3所述的Hive动态脱敏方法,其特征在于,步骤S2中,在一个HQL被判定为查询语句的情况下,进入步骤S3;若一个HQL被判定为非查询语句,则直接交由HiveJDBC提交到HiveServer2上去执行。5.根据权利要求4所述的Hive动态脱敏方法,其特征在于,步骤S3中,HQL字段血缘解析包括以下步骤:S31.通过字符串匹配和字符串替换方式将HQL调整为以select开头;S32.改写HQL为“insert overwrite table temp + HQL”的形式;S33.利用ParseDriver对改写后的HQL进行抽象语法树解析,获得ASTNode;S34.对步骤S33中生成的ASTNode进行左递归遍历,收集输入表、输出表、子查询、列集信息,最终获得“temp”表与HQL中输入表的字段血缘关系;当节点为以下几种类型的特殊节点时要进行相应的信息收集:当节点为TOK_TABREF类型时,获取其子节点所对应的表,将其加入输入表集合,并将子查询对象添加到子查询列表和子查询映射表中;当节点为TOK_SELEXPR类型时,若其子节点为TOK_ALLCOLREF,则代表查询输入表所有列,输入表可以从最新的子查询映射表中通过键值获取,将所有键关联的子查询的列集进行汇聚,作为目标表的列集,存到全局列集中,供父查询引用,若最新子查询列集为空,查看子查询键值所对应的...

【专利技术属性】
技术研发人员:卢薇
申请(专利权)人:杭州比智科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1