全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210639407.3 (22)申请日 2022.06.08 (71)申请人 杭州比智科技有限公司 地址 311121 浙江省杭州市余杭区仓前街 道仓兴路1号23幢2-4楼 (72)发明人 卢薇  (74)专利代理 机构 北京云科知识产权代理事务 所(特殊普通 合伙) 11483 专利代理师 张飙 (51)Int.Cl. G06F 21/62(2013.01) G06F 16/242(2019.01) G06F 16/2453(2019.01) G06F 16/2455(2019.01) G06F 16/248(2019.01) (54)发明名称 一种Hive动态脱敏 方法及系统 (57)摘要 本发明公开了一种Hive动态脱敏方法和系 统, 基于敏感数据发现和字段血缘解析来实现, 所述方法包括以下步骤: 步骤S1: HQL语法树解 析, 对提交的HQLs进行逐个解析, 生成对应的抽 象语法树节点; 步骤S2: 通过正则表达式以及语 法树结构特征判断HQL是否 是查询语句; 步骤S3: 被判定为是查询语句时, HQL字段血缘解析; 步骤 S4: 对Hive  JDBC ResultSet实现类中获取列值 的方法进行改写, 完成脱敏处理。 本发明的方法 和系统能够实现基于敏感数据发现和字段血缘 解析的透明化、 自动化动态脱敏, 有效提高实际 生产环境中数据的安全性。 权利要求书2页 说明书8页 附图6页 CN 114861229 A 2022.08.05 CN 114861229 A 1.一种Hive动态脱敏方法, 所述方法基于敏感数据发现和字段血缘解析来实现, 其特 征在于, 所述方法包括以下步骤: 步骤S1: HQ L语法树解析, 对提交的HQ Ls进行逐个解析, 生成对应的抽象语法树节点; 步骤S2: 通过正则表达式以及语法树结构特 征判断HQ L是否是查询语句; 步骤S3: 被判定为是查询语句时, HQ L字段血缘解析; 步骤S4: 对Hive  JDBC ResultSet实现类中获取列值的方法进行改写, 完成脱敏处 理。 2.根据权利要求1所述的Hive动态脱敏方法, 其特征在于, 步骤S1中, HQL语法树解析利 用Hive提供的ParseDriver对HQ L进行解析, 得到相应的ASTN ode。 3.根据权利要求2所述的Hive动态脱敏方法, 其特征在于, 步骤S2中, 判断HQL为查询语 句的ASTNode的充分必要条件如下: 从ASTNode的根出发, 其0号子节点必须为TOK_QUERY类 型, 并且TOK_QUERY子节点必须包含一个TOK_INSERT类型的子节点, 该节点的子树索引序列 0→0→0对应的To ken类型必须为TOK_DESTI NATION→TOK_DIR→TOK_TMP_FI LE。 4.根据权利要求3所述的Hive动态脱敏方法, 其特征在于, 步骤S2中, 在一个HQL被判定 为查询语句的情况下, 进入步骤S3; 若一个HQL被判定为非查询语句, 则直接交由HiveJDBC 提交到HiveServer 2上去执行。 5.根据权利要求4所述的Hive动态脱敏方法, 其特征在于, 步骤S3中, HQL字段血缘解析 包括以下步骤: S31.通过字符串匹配和字符串替换 方式将HQ L调整为以select开头; S32.改写HQ L为“insert overwrite  table temp + HQL”的形式; S33.利用ParseDriver对改写后的HQ L进行抽象语法树 解析, 获得ASTN ode; S34.对步骤S33中生成的ASTNode进行左递归遍历, 收集输入表、 输出表、 子查询、 列集 信息, 最终获得“temp”表与HQL中输入表的字段血缘关系; 当节 点为以下几种类型的特殊节 点时要进行相应的信息收集: 当节点为TOK_TABREF类型 时, 获取其子节点所对应的表, 将其加入输入表集合, 并将子 查询对象添加到 子查询列表和子查询映射表中; 当节点为TOK_SELEXPR类型时, 若其子节点为TOK_ALLCOLREF,则代表查询输入表所有 列, 输入表可以从最新的子查询映射表中通过键值获取, 将所有键关联的子查询的列集进 行汇聚, 作为目标表的列集, 存到全局列集中, 供父查询引用, 若最新子查询列集为空, 查看 子查询键值所对应的表是否在全局 输入表集中, 通过Hive  Meta的客户端查询表的列元数 据作为列集; 当节点为TOK_SUBQUERY类型时, 创建子查询对象, 以其1号子节点作为当前表, 并且将 当前全局列集设为子查询对 象的列集, 之后清空全局列集, 将子查询对 象插入子查询列表 中, 然后清除子查询映射表中除与自己有相同父查询之外的其它子查询, 并添加子查询列 表中与自己有相同父查询的子查询; 当节点为TOK_TAB类型时, 将其子节点所对应的表加入输出表; 当ASTNode遍历完成后, 对收集的输入表、 全局列集以及输出表进行表字段血缘分析, 得出表字段 血缘关系图。 6.根据权利要求5所述的Hive动态脱敏方法, 其特征在于, 步骤S4中, 对Hive  JDBC  ResultSet实现类 中的getString(int  columnIndex)获取列值的方法进行改写, 改写的流权 利 要 求 书 1/2 页 2 CN 114861229 A 2程包括如下步骤: S41.根据co lumnIndex在表字段 血缘关系图中获取 结果字段 所对应的来源表和字段; S42.根据来源表和字段向动态脱敏规则管理模块 查询关联的动态脱敏规则; S43.根据动态脱敏规则对结果字段的值进行脱敏替换。 7.根据权利要求6所述的Hive动态脱敏方法, 其特征在于,  Hive动态脱敏还可以利用 Hive的安全认证机制提供的接口, 自定义 实现类将敏感数据 识别结果和 动态脱敏规则组合 起来对查询操作时的敏感字段 添加对应的脱敏表达式。 8.一种Hive动态脱敏系统, 所述系统基于敏感数据发现和字段血缘解析来实现, 其特 征在于, 所述系统用于实现根据权利要求 1‑9任一项所述的Hive动态脱敏方法, 所述系统包 括敏感数据发现单 元、 Hive动态脱敏 单元和动态脱敏规则管理单 元。 9.根据权利要求8所述的Hive动态脱敏系统, 其特征在于, 所述系统通过敏感数据发现 单元中的数据分级分类模块定义数据的安全等级和安全类别, 所述安全等级包括公开、 秘 密、 私密、 机密和绝密, 所述安全类别包括身份证或手机号等; 然后将安全类别与安全等级 进行关联, 继而识别规则管理模块为每一种安全类别设置基于正则的敏感字段识别规则; 规则开启生效后, 通过敏感数据识别任务获取Hive表元数据以及表的抽样数据, 敏感数据 识别模块利用规则进行敏感数据识别, 识别结果最终由敏感数据管理模块进行统一管理, 其中记录 了Hive表、 字段、 安全类别之间的映射关系。 10.根据权利要求8或9所述的Hive动态脱敏系统, 其特征在于, 所述动态脱敏规则管理 单元中为每一种安全类别定义动态脱敏方案, 所述动态脱敏方法包括适合字符类型的哈希 脱敏、 遮盖脱敏、 和顺序重排, 适合数值类型的数值取整和比特移位, 以及适合日期和布尔 类型的日期取整和随机替换。权 利 要 求 书 2/2 页 3 CN 114861229 A 3

PDF文档 专利 一种Hive动态脱敏方法及系统

文档预览
中文文档 17 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共17页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种Hive动态脱敏方法及系统 第 1 页 专利 一种Hive动态脱敏方法及系统 第 2 页 专利 一种Hive动态脱敏方法及系统 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-07 12:38:48上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。