您好, 访客   登录/注册

一种实现Apache Kylin数据脱敏的方法和系统

来源:用户上传      作者:

  摘要:为解决Kylin查询时,敏感数据随意暴露的安全问题时,可以为Kylin提供一种脱敏策略算法来适用于不同用户需求场景的敏感数据保护模式,同时实现一套系统来满足各种脱敏策略的自定义配置。
  关键词:Kylin;脱敏;系统
  中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2020)02-0186-02
  0 引言
  Apache Kylin(后续简称Kylin)是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据。它采用多维立方体预计算技术,可以将大数据的SQL查询速度提升到亚秒级别。相对于以前的分钟乃至小时级别的查询速度,Kylin将查询速度提升了百倍到千倍。
  从技术上来讲,在用户认证方面,Kylin支持了预定义用户认证(testing模式)、LDAP认证(ldap模式)、SSO认证(saml模式)的三种用户身份认证方式;在用户授权方面,Kylin支持了针对Project维度设置用户的操作权限,针对数据表维度设置用户的查询权限。
  1 改进方案与系统
  为解决Kylin查询时,敏感数据随意暴露的安全问题时,可以为Kylin提供一种脱敏策略算法来适用于不同用户需求场景的敏感数据保护模式,同时实现一套系统来满足各种脱敏策略的自定义配置。我们可以利用Kylin系统管理员的控制,针对各个用户,各个数据表中的各个敏感字段,实时地设置各种数据脱敏策略;并通过数据脱敏策略,在客户端查询Kylin业务数据时,自动对查询后的原始数据依照脱敏策略进行二次处理,最终返回脱敏后的数据交给客户端。
  本文通过引入了一套可构建、可扩展、可视化的脱敏策略算法来支持Kylin敏感数据的安全保护模式解决上述问题。该方法具备以下特点:(1)该方法提供了一套数据脱敏算法,来适配不同用户对敏感数据的不同使用场景的展示需求,配置不同脱敏策略,如数据全脱敏策略,数据部分脱敏策略,数据自定义脱敏策略,等等。(2)该方法使用了Kylin查询模块,通过插件注入方式,对查询结果调用脱敏算法进行处理,将脱敏后的数据返回给客户端模块。
  基于上述方法,我们还实现了一套系统,该系统包含:脱敏配置模块,脱敏配置存储模块,查询扩展插件,脱敏处理模块。
  1.1 脱敏配置模块
  该配置模块部署在Kylin客户端,它负责如下两方面工作。
  其一,负责脱敏算法的集中管理。系统管理员负责导入初始的脱敏算法,并维护后续的脱敏算法更新,这些脱敏算法的配置信息会保存到脱敏算法存储模块(下面的B模块)。
  其二,负责脱敏策略配置数据的更新和维护。从Kylin服务器同步用户和用户组信息,然后系统管理员根据不同用户组的需求设定脱敏策略配置数据,并将设置好的配置数据保存到脱敏策略存储模块(下面的B模块)。
  脱敏配置模块的模型信息如下:(1)用户配置信息,包括:用户名,用户组,脱敏策略ID等。(2)脱敏配置信息,包括:1)脱敏算法信息:包括,脱敏算法ID,脱敏算法函数等。其中脱敏算法函数包括,数据全脱敏函数,数据部分脱敏函数,自定义脱敏函数等等。2)脱敏策略信息:包括,脱敏策略ID,数据表名,字段名,脱敏算法ID等。
  1.2 脱敏配置存储模块
  负责将系统管理员定制的数据脱敏策略配置信息持久化,并负责响应脱敏处理模块(下面的D模块)的策略获取请求。
  1.3 查询扩展插件
  该插件部署在Kylin服务器,负责拦截查询后的原始结果,并将其传入脱敏处理模块(下面的D模块)进行处理,然后将处理后的脱敏数据返回给Kylin客户端。
  1.4 脱敏处理模块
  负责接收查询扩展插件(上面的C模块)的数据脱敏请求,并从脱敏策略存储模块(上面的B模块)获取用户对应的脱敏策略,根据策略中的脱敏算法进行数据处理,最后返回给查询扩展插件。
  2 改进方案实施
  下面对技术方案的实施作进一步的详细描述:
  2.1 脱敏方案实施的模块说明
  脱敏配置模块部署在Kylin客户端上。系统管理员通过配置模块来管理脱敏算法库,并设置各个用户的脱敏策略信息。
  系统管理员在Kylin客户端上配置好批量脱敏算法后,脱敏配置模块将脱敏算法配置信息通过HTTP通讯协议发送给Kylin服务器的脱敏配置存储模块,进行持久化。
  然后,系统管理员在Kylin客户端上根据不同的用户使用场景,选择用户组、数据表、字段,并针对这些维度信息选择合适的脱敏算法,最终设定脱敏策略配置数据;同样地,脱敏配置模块将脱敏策略配置信息通过HTTP通讯协议发送给Kylin服务器的脱敏配置存储模块,进行持久化。
  有了用户的脱敏配置信息后,当用户在Kylin客户端发起数据查询时,Kylin服務器接收到查询请求,按照原有流程查询出原始数据结果。此后,调用查询扩展插件对原始数据进行拦截,并请求脱敏处理模块进行数据脱敏操作。
  脱敏处理模块接收到查询扩展插件的数据脱敏请求,并从脱敏策略存储模块获取用户对应的脱敏策略,根据策略中的脱敏算法进行数据处理,最后将处理后的数据结果返回给查询扩展插件。
  查询扩展插件将处理后的数据返回给查询模块,并通过HTTP通讯协议回应给Kylin客户端的查询请求,最终在Kylin客户端界面上输出脱敏数据结果。
  2.2 脱敏配置信息的结构分布
  包括用户配置信息,脱敏算法信息,脱敏策略信息。
  用户配置信息包括:用户名,用户组,脱敏策略ID。其中用户配置信息中的脱敏策略ID是需要和脱敏策略信息中的脱敏策略ID关联的,说明该用户配置了哪种脱敏策略。   脫敏策略信息包括:脱敏策略ID,数据表名,字段名,脱敏算法ID。其中数据表名和字段名表示该策略配置的维度信息,即针对哪张数据表的哪个字段配置脱敏策略。脱敏策略信息中的脱敏算法ID是需要和脱敏算法信息中的脱敏算法ID关联的。一个脱敏策略ID可以关联多个脱敏算法ID。
  脱敏算法信息包括:脱敏算法ID,脱敏算法函数。其中脱敏算法函数可以包括数据全脱敏算法,数据部分脱敏算法,数据自定义脱敏算法等待。
  2.3 新增脱敏配置的流程说明
  进入Kylin客户端的脱敏配置模块后,配置模块会自动从Kylin服务器的脱敏配置存储模块中加载脱敏算法,加载成功后,系统管理员选择需要配置脱敏策略的用户组,再选择需要脱敏的数据表,接着选择该数据表中需要脱敏的字段,然后选择脱敏算法,提交脱敏规则。
  脱敏配置模块会将提交的新脱敏策略通过HTTP通讯协议发送至Kylin服务器的脱敏存储模块,进行持久化。
  2.4 发起查询的数据脱敏流程说明
  进入Kylin客户端发起查询,Kylin服务器查询模块接收到查询请求后,调用原有查询流程进行查询,接着拦截原始查询结果,触发查询扩展插件,然后插件调用脱敏处理模块进行数据脱敏处理,最后返回脱敏后的查询数据。
  3 结语
  本文基于开源Apache Kylin的数据安全缺陷,提出了一种实现Kylin用户数据脱敏的方法和系统,从而保证了Kylin大数据集群的用户数据安全。当然,大数据安全是一个长期的研究方向,还有更多更好的Kylin集群用户数据的安全管理方法值得去继续探究。
  参考文献
  [1] 邢宇恒,张冰,毛一凡.数据脱敏在海量数据系统中的应用[J].电信科学,2017(S1):16-22.
  [2] 陈天莹,陈剑锋.大数据环境下的智能数据脱敏系统[J].通信技术,2016(07):915-922.
  A Method and System for Implementing Apache Kylin Data Desensitization
  Wu Ke-hua1,Zhang Yi-xi2
  (1.Nanjing Zhongxing New Software Co., Ltd., Nanjing  Jiangsu  210000;
  2.Nanjing Control Network Technology Co., Ltd., Nanjing  Jiangsu  210000)
  Abstract:In order to solve the security problem that sensitive data is exposed at will when kylin queries, a desensitization strategy algorithm can be provided for kylin to apply to the sensitive data protection mode of different user demand scenarios, and a set of system can be implemented to meet the customized configuration of various desensitization strategies.
  Key words:kylin; desensitization; system
转载注明来源:https://www.xzbu.com/8/view-15192161.htm