吳科樺 張藝夕
摘要:為解決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