首頁>技術>

前言:

在資料經濟時代資料要素已經成為了企業重要資產,對於企業不同的業務部門來說,每時每刻不在通過共享資料方式進行業務協作。一些企業會將大量的敏感客戶資料、訂單資料拷貝到開發、測試、資料分析環境,但並沒有採取任何對資料脫敏的措施。這將面臨重大的監管及資料洩露風險。為了保證資料在企業內外部依法依規使用,需要相應的資料脫敏技術來實現對敏感資料的保護。

目錄:

1.為什麼需要對資料進行脫敏

2.資料脫敏定義及分類

3.資料脫敏核心演算法

4.資料脫敏工具技術架構設計

5.資料脫敏技術的實現

1.為什麼需要對資料進行脫敏

為了便於市場研究人員和資料探勘人員利用客戶資訊、訂單資料來分析客戶購買行為,需要提供一個與生產環境資料真實性相近的資料,進行資料建模測試新分析演算法或功能,同時IT人員測試、修補程式也需要將生產資料複製到測試和開發環境中,以便進行程式的測試。因此一些企業會將大量的敏感客戶資料、訂單資料拷貝到開發、測試、資料分析環境,但並沒有採取任何對資料脫敏的措施。

據安全情報供應商Risk Based Security (RBS) 的2019年Q3季度的報告,2019年1月1日至2019年9月30日,全球披露的資料洩露事件有5183起,洩露的資料量達到了79.95億條記錄!從資料洩露事件數量來看,整體呈現出遞增趨勢,其中2019年洩露事件(5183)比2018年(3886)上漲33.3%。2019年洩露記錄數量(37.66億)比2018年(79.95億)上漲112%。

從政策法規方面無論是歐盟的GDPR法案還是國家網際網路資訊辦公室釋出的《資料安全管理辦法(徵求意見稿)》,都有明確對個人隱私資訊的儲存、使用的規定和處罰措施。歐盟在2018年出臺《通用資料保護條例》(GDPR),規定了企業如何收集、使用和處理歐盟公民的個人資料。2019年5月28日,國家網際網路資訊辦公室釋出的《資料安全管理辦法(徵求意見稿)》中,明確要求對於個人資訊的儲存和提供要經過匿名化處理,以切實降低在資料應用中個人資訊可能存在的洩露風險。

2.資料脫敏定義及分類

百度百科對資料脫敏的定義為:指對某些敏感資訊通過脫敏規則進行資料的變形,實現敏感隱私資料的可靠保護。在涉及客戶安全資料或者一些商業性敏感資料的情況下,在不違反系統規則條件下,對真實資料進行改造並提供測試使用,如身份證號、手機號、卡號、客戶號等個人資訊都需要進行資料脫敏。

從個人理解來說,資料脫敏就是為原始資料建立結構類似但不真實的資料的方法,以便將資料在開發、測試、培訓、分析等非生產環境下的使用。在資料脫敏中只是改變資料值但資料的格式和原始資料保持一致,需要注意的是原始資料不能探測到或者經過轉換還原出原始資料。資料脫敏將被廣泛應用於遵守政策、法規需求、防止資料洩露、防止資料被意外接觸等方面。

資料脫敏工具通過將真實敏感資料按照資料脫敏規則進行轉換、處理,去除敏感資訊,從而幫助組織實現生產資料的依法依規共享。資料脫敏可以通過各種不同的方法進行實現,但是這些方法都必須遵循資料脫敏的五項基本原則。

1)防逆向破解原則

無論採用哪種脫敏方法,都不能夠通過破解方法獲取到原始敏感資料。

2)表徵原始資料原則

脫敏後資料要保持一定的真實性以便資料能夠應用開發、測試、分析的環境。例如對姓名處理,脫敏後形式類似王*凱,而不能採用隨意的值來替換姓名。

3)引用完整性原則

經過脫敏後資料要保持引用完整性,例如對銀行卡號進行脫敏處理(銀行卡號是一個主鍵)所有引用了銀行卡號資訊的實體,經過脫敏處理後要能夠關聯到一起。

4)防資料推理原則

資料脫敏不需要將所有的資料進行脫敏處理,只處理被定義為敏感資料內容。但需要注意的是有些非敏感資料能夠被用來重新生成敏感資料或者能夠回溯到敏感資料,這些非敏感資料同樣需要進行脫敏處理。

5) 自動化原則

針對一個數據源只需要配置一次,就可以重複進行脫敏處理。開發和測試環境的資料需要能夠及時反映生產資料的變化。分析資料也需要每天甚至每小時來生成。如果不是通過自動化的方式進行,那麼資料脫敏就是一個低效且耗費成本的工作。

3.資料脫敏核心演算法

常用的脫敏有混淆、替換、置空、加密:

混淆演算法:打亂現有資料的位置,使資料不再表示其原有的含義。

可以使用java的Collection類對資料內容的ArrayList進行順序打亂,經實際試驗效果不太好,無法保證資料項順序和原來順序完全不一致。

任意替換:替換敏感資料的內容,使資料看上去和原始資料類似,但實際上兩者沒有任何關聯。常用於姓名替換、數值替換、日期替換及卡號替換等。

資料加密:敏感資料進行加密處理,加密後的資料與原始資料差異較大。

可以使用的資料脫敏演算法包括:MD5加密、AES對稱加密、FPE格式保留加密等方法。

4.資料脫敏工具技術架構設計

資料脫敏型別可以分為靜態脫敏和動態脫敏:

靜態資料脫敏(SDM),是資料儲存時脫敏,儲存的是脫敏資料。一般用在非生產環境,如開發、測試、外包和資料分析等環境。

動態資料脫敏(DDM),在資料使用時脫敏,儲存的是明文資料或直接儲存密文。一般用在生產環境,動態脫敏可以實現不同使用者擁有不同的脫敏策略。

其總體技術架構如下:

資料脫敏技術架構整體可以劃分為管理端、執行端。執行端又分為靜態脫敏執行端和動態脫敏執行端。管理端負責資料來源維護、敏感資料掃描規則配置、資料脫敏規則配置、脫敏任務管理、日誌檢視、掃描結果檢視等核心功能。資料脫敏執行端(Excecutor)負責處理具體脫敏工作,按照管理端資料來源、脫敏規則配置,進行脫敏任務執行。

靜態資料脫敏是比較常見的脫敏任務,也有很多常見的開源工具能夠實現資料的靜態脫敏。比如DataX工具。動態脫敏技術,通常是基於資料庫中介軟體技術來實現的,這裡可以採用了Apache ShardingSphere 生態圈中的 ShardingSphere-JDBC來實現。

5.資料脫敏技術的實現

通過程式對敏感資料的自動識別,能夠自動識別的敏感欄位包括:電話號碼,姓名、地址、郵件、身份證號、銀行卡號等。識別資料的方法使用到了正則表示式和關鍵字識別,身份證號、郵箱、電話號碼都可以採用正則表示式的方法來識別。

電話號碼識別,正則表示式((((010)|(0[2-9]\\d{1,2}))[-\\s]?)[1-9]\\d{6,7}$)|((\\+?0?86\\-?)?1[3|4|5|7|8][0-9]\\d{8}$)

銀行卡號識別,正則表示式(([13-79]\\d{3})|(2[1-9]\\d{2})|(20[3-9]\\d)|(8[01-79]\\d{2}))\\s?\\d{4}\\s?\\d{4}\\s?\\d{4}(\\s?\\d{3})?$

身份證號識別,正則表示式 [1-9]\\d{5}(19|20)\\d{9}[0-9Xx]$

郵箱識別,正則表示式 [a-zA-Z0-9_%+-]{1,}@[a-zA-Z0-9-]{1,}\\.[a-zA-Z]{2,4}$

姓名、地址採用關鍵字識別方法,例如姓名中內建三百個姓來做姓名的自動識別,地址中通過街道、區、市、縣、村、棟等關鍵字來匹配。

這裡我們使用了Python來實現敏感資料的掃描,只需要配置資料庫連線引數,就能自動進行全庫掃描。在進行全庫掃描時為了防止佔用的資源會比較多,通常會設定自動掃描引數,引數包括掃描最大資料量、取樣資料量等,當表的資料量少於最大資料量這個閥值時,會進行全表掃描配置。另外一個引數是取樣資料量,當表的資料量超過最大資料量時,會對錶的資料進行取樣,選取其中的一定量的資料(取樣資料量)進行掃描。掃描的同時需要對掃描到的敏感資料記錄下來。記錄的資訊包括:資料庫IP、資料庫使用者、資料庫、掃描表、掃描欄位、敏感資料內容、敏感資料型別、敏感資料率等。

資料動態脫敏使用ShardingSphere分散式治理子功能模組。它通過對使用者輸入的SQL進行解析,並依據使用者提供的脫敏配置對SQL進行改寫,從而實現對原文資料進行加密,並將原文資料(可選)及密文資料同時儲存到底層資料庫。在使用者查詢資料時,它又從資料庫中取出密文資料,並對其解密,最終將解密後的原始資料返回給使用者。Apache ShardingSphere分散式資料庫中介軟體遮蔽了資料脫敏過程,讓使用者無需關注資料脫敏的實現細節,像使用普通資料那樣使用脫敏資料。先看下動態資料脫敏的的實現原理:

在使用 ShardingSphere-JDBC進行動態脫敏配置時,有幾項關鍵的脫敏規則配置。

1)資料來源配置,可以使用了Druid來做資料來源配置,配置多個數據源。ShardingSphere-JDBC可以相容的資料庫連線池比較多,類似於DBCP,C3P0,BoneCP,Druid,HikariCP都可以用來和shardingsphere配合使用。採用Druid做為資料庫連線池需要設定驅動、資料庫連線地址、使用者名稱、密碼即可,filter引數為Druid連線池引數,用於配置監控sql語句的執行。

2)加密器配置, ShardingSphere-JDBC內建了AES/MD5兩種加密演算法。這裡採用了AES對稱加密演算法,當然使用者還可以通過實現ShardingSphere提供的介面,自行實現一套加解密演算法。

3)脫敏表配置,比如要把user表中的使用者密碼進行加密儲存。在脫敏表的列配置中plainColumn對應欄位儲存密碼明文、cipherColumn對應欄位儲存加密後密碼。對應的開發人員使用的是邏輯列pwd,開發人員在進行開發過程中,直接面向pwd進行程式設計即可,不需要關注是否進行加密和解密問題。下面是開發人員使用的mybatis進行的配置,直接使用的pwd欄位進行開發。如下圖:

參考資料:

1、/file/2020/08/20/20200820165707_1619.jpg shardingshpere官網資料

2、A project report on“Masquerade - Data Masking Tool”

3、Risk Based Security. Data Breach QuickViewReport 2019 Q3 trends. 2019-11.

4、/file/2020/08/20/20200820165707_1620.jpg 資料脫敏技術發展現狀及趨勢研究

關於作者:川楓,普元雲端計算和大資料產品部架構師,主要負責普元大資料治理產品研發和專案實施,十年大型企業資訊資料治理架構設計與建設經驗,為多家大型金融機構、企業設計與規劃資料管理整體框架和專案實施。資料行業有著深入的研究和洞察,並對企業資訊化平臺建設,資料治理及大資料平臺建設有著豐富經驗。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 使用VSCode 打包你的第一個flutter應用(安卓篇)