作為數(shù)據(jù)密集型和科技驅(qū)動型行業(yè),越來越多的金融行業(yè)機(jī)構(gòu)開始嘗試采用數(shù)據(jù)驅(qū)動的方法來促進(jìn)自身業(yè)務(wù)的升級轉(zhuǎn)型。然而,隨著大量生產(chǎn)數(shù)據(jù)應(yīng)用在開發(fā)、測試、提取和分析挖掘等場景,敏感隱私數(shù)據(jù)泄露的風(fēng)險也愈加嚴(yán)重。同時,國家在保護(hù)敏感、涉密數(shù)據(jù)安全方面也不斷出臺、完善相關(guān)法律法規(guī)、方針政策,防止敏感數(shù)據(jù)泄露。
01金融行業(yè)法規(guī)要求
1、《中國銀行業(yè)“十二五”信息科技發(fā)展規(guī)則監(jiān)管指導(dǎo)意見》:“加強(qiáng)數(shù)據(jù)、文檔的安全管理,逐步建立信息資產(chǎn)分類分級保護(hù)機(jī)制。完善敏感信息存儲和傳輸?shù)雀唢L(fēng)險環(huán)節(jié)的控制措施,對數(shù)據(jù)、文檔的訪問應(yīng)建立嚴(yán)格的審批機(jī)制。對用于測試的生產(chǎn)數(shù)據(jù)要進(jìn)行脫敏處理,嚴(yán)格防止敏感數(shù)據(jù)泄露?!?/span>
2、《金融行業(yè)網(wǎng)絡(luò)安全等級保護(hù)實(shí)施指引》:應(yīng)將開發(fā)環(huán)境、測試環(huán)境、實(shí)際運(yùn)行環(huán)境相互分離,敏感數(shù)據(jù)經(jīng)過脫敏后才可在開發(fā)或測試中使用。
3、《金融數(shù)據(jù) 安全數(shù)據(jù)生命周期安全規(guī)范》:開發(fā)測試等過程的數(shù)據(jù),應(yīng)事先進(jìn)行脫敏處理,防止數(shù)據(jù)處理過程中的數(shù)據(jù)泄露,國家及行 業(yè)主管部門另有規(guī)定的除外。
4、《商業(yè)銀行信息科技風(fēng)險現(xiàn)場檢查指南》: “開發(fā)過程中是否使用了生產(chǎn)數(shù)據(jù),使用的生產(chǎn)數(shù)據(jù)是否得到高級管理層的批準(zhǔn)并經(jīng)過脫敏或相關(guān)限制。”“測試用例是否有生產(chǎn)數(shù)據(jù),當(dāng)使用生產(chǎn)數(shù)據(jù)測試時是否得到高級管理層的審批并采取相關(guān)限制及進(jìn)行脫敏處理?!?br />
02金融行業(yè)場景分析
1、安全管理要求較高:金融行業(yè)內(nèi)部組織架構(gòu)較為復(fù)雜,數(shù)據(jù)脫敏需求往往會涉及到安全、測試、業(yè)務(wù)、數(shù)據(jù)等多個部門,因此脫敏系統(tǒng)需要具備安全管理能力,如用戶多級管理功能、脫敏任務(wù)審批功能等。
2、數(shù)據(jù)類型較為復(fù)雜:金融行業(yè)的數(shù)據(jù)類型較為復(fù)雜,脫敏需求涉及到的數(shù)據(jù)庫種類較多,典型的如Oracle、MySQL、DB2、AS/400(DB2)、SQLServer等,還需要支持如TDSQL、星環(huán)、HIVE、IMPALA、PostgreSQL等數(shù)據(jù)類型,脫敏系統(tǒng)不光需要有較強(qiáng)的兼容性,快速對接一些新的數(shù)據(jù)源的能力,也十分重要。
3、數(shù)據(jù)規(guī)模較為龐大:金融行業(yè)開發(fā)測試任務(wù)較重,這就導(dǎo)致了脫敏需求較為旺盛,且需要脫敏的數(shù)據(jù)量往往較大。每周的脫敏數(shù)據(jù)量往往能夠達(dá)到TB級別,因此脫敏速度要求較高,脫敏系統(tǒng)還需要支持分布式部署,提升整體脫敏效率。
因此,滿足金融行業(yè)脫敏高要求的脫敏產(chǎn)品,具有以上特點(diǎn)。
03實(shí)施技術(shù)及過程解析
1數(shù)據(jù)脫敏使用場景
類型 | 常用場景 | 具體例子 |
靜態(tài)數(shù)據(jù)脫敏 | 靜態(tài)數(shù)據(jù)脫敏通常用于非實(shí)時場景。 | 將生產(chǎn)環(huán)境中的數(shù)據(jù)脫敏用于測試環(huán)境。 |
動態(tài)數(shù)據(jù)脫敏 | 動態(tài)數(shù)據(jù)脫敏通常用于生產(chǎn)環(huán)境等實(shí)時場景,在應(yīng)用或平臺用戶訪問敏感數(shù)據(jù)的同時進(jìn)行脫敏,用于解決根據(jù)不同情況對統(tǒng)一敏感數(shù)據(jù)讀取時需要進(jìn)行不同級別、類型脫敏的場景。 | 適用于對生產(chǎn)數(shù)據(jù)共享或時效性很高的數(shù)據(jù)訪問場景等,實(shí)現(xiàn)對生產(chǎn)數(shù)據(jù)庫中的敏感數(shù)據(jù)進(jìn)行透明、實(shí)時脫敏。 |
2脫敏實(shí)施流程
敏感數(shù)據(jù)識別
對生產(chǎn)系統(tǒng)中敏感數(shù)據(jù)的識別,主要包括:
a)存儲位置:明確敏感數(shù)據(jù)所在的數(shù)據(jù)庫、表、字段(列);
b)數(shù)據(jù)分類、分級:明確敏感數(shù)據(jù)所屬類別及敏感級別。
策略選擇、算法配置
脫敏算法配置主要包括:數(shù)據(jù)脫敏后保持原始特征的分析、數(shù)據(jù)脫敏算法的選擇和數(shù)據(jù)脫敏算法參數(shù)配置。
a)保持原始數(shù)據(jù)的格式、類型;
b)保持原有數(shù)據(jù)之間的依存關(guān)系;
c)保持引用完整性、統(tǒng)計特性、頻率分布、唯一性、穩(wěn)定性。配置需要脫敏的目標(biāo)(數(shù)據(jù)庫名/表名/字段名)以及適當(dāng)?shù)拿撁羲惴▍?shù),根據(jù)業(yè)務(wù)需求完成其他算法的參數(shù)配置。
數(shù)據(jù)脫敏處理到脫敏結(jié)束
動態(tài)脫敏處理步驟:
步驟1-協(xié)議解析:解析用戶、應(yīng)用訪問大數(shù)據(jù)組件網(wǎng)絡(luò)流量;步驟2-語法解析:對訪問大數(shù)據(jù)組件的語句進(jìn)行語法分析;
步驟3-脫敏規(guī)則匹配:根據(jù)用戶身份信息及要訪問的數(shù)據(jù);步驟4-下發(fā)脫敏任務(wù):由脫敏引擎調(diào)度脫敏任務(wù);
步驟5-脫敏結(jié)果輸出:將脫敏后的數(shù)據(jù)輸出,保證原始數(shù)據(jù)的不可見。
靜態(tài)脫敏處理步驟:步驟1-數(shù)據(jù)選擇/策略配置:選擇待脫敏的數(shù)據(jù)庫及表,配置脫敏策略及脫敏算法,生成脫敏任務(wù);步驟2-執(zhí)行脫敏處理:對不同類型數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)中的敏感信息進(jìn)行刪除或隱藏;步驟3-數(shù)據(jù)導(dǎo)出:將脫敏后的數(shù)據(jù)按用戶需求,裝載至不同環(huán)境中,包括文件至文件,文件至數(shù)據(jù)庫,數(shù)據(jù)庫至數(shù)據(jù)庫,數(shù)據(jù)庫至文件等多種裝載方式。
3大數(shù)據(jù)的數(shù)據(jù)脫敏技術(shù)
大數(shù)據(jù)平臺將所有數(shù)據(jù)整合起來,充分分析與挖掘數(shù)據(jù)的內(nèi)在價值,為業(yè)務(wù)部門提供數(shù)據(jù)平臺,數(shù)據(jù)產(chǎn)品與數(shù)據(jù)服務(wù)。用戶隱私數(shù)據(jù)保護(hù)與挖掘用戶數(shù)據(jù)價值是自相矛盾體,完整的數(shù)據(jù)脫敏需要抹去全部的用戶標(biāo)識信息,使得數(shù)據(jù)潛在的分析價值降低。針對于大數(shù)據(jù)脫敏平臺的設(shè)計目的在于數(shù)據(jù)泄露風(fēng)險可控、可管理、可審計。
1、流式數(shù)據(jù)脫密
流式數(shù)據(jù)是指不斷產(chǎn)生、實(shí)時計算、動態(tài)增加且要求及時響應(yīng)的數(shù)據(jù),它具有海量和實(shí)時性等特點(diǎn),一般將實(shí)時或準(zhǔn)實(shí)時的數(shù)據(jù)處理技術(shù)歸為流式數(shù)據(jù)處理技術(shù)。
a)基于storm的流式數(shù)據(jù)脫敏
STORM 是一個分布式,可靠的,容錯的數(shù)據(jù)流處理系統(tǒng)。Storm集群的輸入流由一個被稱作spout的組件管理,spout把數(shù)據(jù)傳遞給bolt,數(shù)據(jù)保存到某種存儲器,或者傳給另外一個bolt。Storm的數(shù)據(jù)處理方式是增量的實(shí)時處理,當(dāng)并沒有全量的數(shù)據(jù),可以去讀取歷史數(shù)據(jù)并結(jié)合相應(yīng)的算法進(jìn)行數(shù)據(jù)脫敏,依據(jù)脫敏規(guī)則將數(shù)據(jù)做泛化處理,它的優(yōu)勢就在于數(shù)據(jù)發(fā)生即進(jìn)行數(shù)據(jù)處理。不足之處是無法利用全量數(shù)據(jù)做復(fù)雜的關(guān)聯(lián)處理。
b) 基于sparkstreaming的流式數(shù)據(jù)脫敏
當(dāng)有微批處理,且有狀態(tài)計算恰好是一次的遞送,并且不介意高延遲,就可以考慮使用sparkstreaming,它的優(yōu)勢可以提供一體化編程模型,尤其是數(shù)據(jù)流算法并允許Spark實(shí)時決策的促進(jìn)。
2、批量數(shù)據(jù)脫敏
適用場景數(shù)據(jù)源是一個穩(wěn)定的、基本不變的存儲介質(zhì),并通過數(shù)據(jù)掃描的方式一次性將數(shù)據(jù)采集到大數(shù)據(jù)平臺來,數(shù)據(jù)以歷史數(shù)據(jù)為主,包括一般文件、關(guān)系型數(shù)據(jù)庫、nosqL數(shù)據(jù)庫等。處理技術(shù)包括:flume、sqoop等。批量數(shù)據(jù)脫敏可以在數(shù)據(jù)導(dǎo)入的過程中進(jìn)行脫敏,也可以在數(shù)據(jù)進(jìn)行大數(shù)據(jù)平臺后,調(diào)用脫敏模塊來進(jìn)行脫敏。Sqoop是適用于關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)采集,可以通過建立中間表,編寫udf程序的方式,最后通過任務(wù)調(diào)度程序,批量的對數(shù)據(jù)進(jìn)行數(shù)據(jù)脫敏。
4、數(shù)據(jù)脫敏策略
在設(shè)定具體場景下數(shù)據(jù)脫敏策略時應(yīng)充分考慮數(shù)據(jù)脫敏后數(shù)據(jù)自身可用性及數(shù)據(jù)保密性尋求兩者間的平衡。數(shù)據(jù)脫敏策略的選擇如下顯示。數(shù)據(jù)脫敏的目標(biāo)包括:
a) 避免攻擊者識別出原始個人信息主體;
b) 控制重標(biāo)識的風(fēng)險,確保重標(biāo)識風(fēng)險不會增加;
c) 在控制重標(biāo)識風(fēng)險的前提下,確保脫敏后的數(shù)據(jù)集盡量滿足其預(yù)期目的;
d) 選擇合適的數(shù)據(jù)處理方式保證信息攻擊成本不足以支撐攻擊動機(jī)。
5脫敏算法規(guī)則
算法 | 描述 | 適用數(shù)據(jù)類型 | 推薦脫敏形態(tài) |
重排 | 跨行隨機(jī)互換原始敏感數(shù)據(jù),打破原始敏感數(shù)據(jù)與本行其他數(shù)據(jù)關(guān)聯(lián)關(guān)系。 | 通用 | 動態(tài)脫敏、靜態(tài)脫敏 |
關(guān)系映射 | 原始敏感數(shù)據(jù)間存在業(yè)務(wù)關(guān)聯(lián)關(guān)系,需要在數(shù)據(jù)脫敏后仍舊保持關(guān)系。因此在脫敏處理中,利用算法表達(dá)式對脫敏后的數(shù)據(jù)進(jìn)行函數(shù)映射,使其脫敏后仍舊保持業(yè)務(wù)關(guān)聯(lián)關(guān)系。 | 通用 | 動態(tài)脫敏、靜態(tài)脫敏 |
偏移取整 | 按照一定粒度進(jìn)行偏移取整。 | 日期、時間、數(shù)字 | 動態(tài)脫敏、靜態(tài)脫敏 |
散列 | 對原始數(shù)據(jù)通過散列算法計算,使用計算后的散列來代替原始數(shù)據(jù)。 | 通用 | 動態(tài)脫敏、靜態(tài)脫敏 |
加密 | 通過加密密鑰和算法對原始數(shù)據(jù)進(jìn)行加密,從而使敏感數(shù)據(jù)變成不可讀的密文。 | 通用 | 靜態(tài)脫敏 |
格式保留算法(FPE) | 一種特殊的加密脫敏算法,對敏感數(shù)據(jù)進(jìn)行加密脫敏,密文與原始數(shù)據(jù)保持格式一致。 | 通用 | 靜態(tài)脫敏 |
常量替換 | 使用常量偽裝數(shù)據(jù)對原始數(shù)據(jù)進(jìn)行替換(偽裝數(shù)據(jù)生成與原始數(shù)據(jù)值無關(guān))。 | 通用 | 動態(tài)脫敏、靜態(tài)脫敏 |
隨機(jī)替換 | 保持?jǐn)?shù)據(jù)格式,按照特定原始數(shù)據(jù)的編碼規(guī)則重新生成一份新的數(shù)據(jù)。 | 通用 | 動態(tài)脫敏、靜態(tài)脫敏 |
截斷 | 截斷內(nèi)容 | 通用 | 動態(tài)脫敏、靜態(tài)脫敏 |
標(biāo)簽化 | 按照預(yù)定類別進(jìn)行分類,將使用類別標(biāo)簽替換原始敏感數(shù)據(jù)。 | 通用 | 動態(tài)脫敏、靜態(tài)脫敏 |
泛化 | 用更一般的值取代原始數(shù)據(jù),降低敏感數(shù)據(jù)精確度,達(dá)到無法識別個體的目的。 | 通用 | 動態(tài)脫敏、靜態(tài)脫敏 |
匿名 | 通過對數(shù)據(jù)內(nèi)容的處理,保證在數(shù)據(jù)表發(fā)布時,數(shù)據(jù)中存在一定量的準(zhǔn)標(biāo)識符上不可區(qū)分的記錄。 | 通用 | 靜態(tài)脫敏 |
差分隱私 | 在原數(shù)據(jù)中加入噪音信息,使得滿足差分隱私的數(shù)據(jù)集能夠抵抗任何對隱私數(shù)據(jù)的分析。 | 數(shù)據(jù)集 | 數(shù)據(jù)脫敏 |
浮動 | 通過浮動脫敏算法,上浮、下降5%。 | 數(shù)據(jù)集 | 靜態(tài)脫敏 |
歸零 | 通過歸零算法對原數(shù)據(jù)381.38進(jìn)行脫敏。 | 數(shù)據(jù)集 | 靜態(tài)脫敏 |
均化 | 通過均化算法進(jìn)行脫敏。 | 數(shù)據(jù)集 | 靜態(tài)脫敏 |
分檔 | 將數(shù)據(jù)按照規(guī)模分為高、中、低三檔,分別進(jìn)行脫敏。 | 數(shù)據(jù)集 | 靜態(tài)脫敏 |
掩碼 | 對原始數(shù)據(jù)的部分內(nèi)容用通用字符進(jìn)行統(tǒng)一替換,從而使敏感數(shù)據(jù)僅保持部分內(nèi)容公開。 | 字符串 | 動態(tài)脫敏、靜態(tài)脫敏 |
6數(shù)據(jù)脫敏的常用算法與實(shí)例
1)美創(chuàng)目前已經(jīng)內(nèi)置的脫敏算法
算法名稱 | 算法說明 | 示例 | 使用場景(僅做參考) |
固定映射 | 通過設(shè)置映射種子,在映射種子不變的情況下,相同原數(shù)據(jù)脫敏后結(jié)果相同,并保留原始業(yè)務(wù)特征 | 映射種子:111 原數(shù)據(jù):張三 一次脫敏結(jié)果:李四 二次脫敏結(jié)果:李四 | 中文姓名、身份證、電話、銀行卡、電子郵箱、地址、IP地址 日期、通用字符串、鍵、貨幣金額 醫(yī)療機(jī)構(gòu)登記號、醫(yī)師資格證書、醫(yī)師執(zhí)業(yè)證書 營業(yè)執(zhí)照、社會統(tǒng)一信用代碼、組織機(jī)構(gòu)代碼、稅務(wù)登記證、開戶許可證 護(hù)照、軍官證、中國護(hù)照、港澳通行證、永久居住證、臺灣同胞大陸通行證 證券名稱、證券代碼、基金名稱、基金代碼 |
隨機(jī)映射 | 對數(shù)值、字符或字符串進(jìn)行隨機(jī),并保留原業(yè)務(wù)特征 | 原數(shù)據(jù):19841222 脫敏結(jié)果:19900211 | 中文姓名、身份證、電話、銀行卡、電子郵箱、地址、郵政編碼、IP地址 CCV碼 貨幣金額、通用字符串、字符串 醫(yī)療機(jī)構(gòu)登記號、醫(yī)師資格證書、醫(yī)師執(zhí)業(yè)證書 營業(yè)執(zhí)照、社會統(tǒng)一信用代碼、稅務(wù)登記證、開戶許可證、組織機(jī)構(gòu)代碼、組織機(jī)構(gòu)名稱 護(hù)照、軍官證、中國護(hù)照、港澳通行證、永久居住證、臺灣同胞大陸通行證 證券名稱、證券代碼、基金名稱、基金代碼 |
遮蓋 | 通過設(shè)置遮蓋符,對原數(shù)據(jù)全部或部分進(jìn)行遮蓋處理 | 遮蓋符:* 原數(shù)據(jù):13512345678 脫敏結(jié)果:135****5678 | 中文姓名、身份證、電話、銀行卡、電子郵箱、地址、CCV碼、IP地址 組織機(jī)構(gòu)代碼、組織機(jī)構(gòu)名稱、營業(yè)執(zhí)照、社會統(tǒng)一信用代碼 醫(yī)療機(jī)構(gòu)登記號、醫(yī)師資格證書、醫(yī)師執(zhí)業(yè)證書 護(hù)照、稅務(wù)登記證、開戶許可證、軍官證、中國護(hù)照、港澳通行證、永久居住證、臺灣同胞大陸通行證 證券名稱、證券代碼、基金名稱、基金代碼 |
范圍內(nèi)隨機(jī) (泛化脫敏) | 對日期或金額,在一個指定的范圍內(nèi)進(jìn)行隨機(jī),并保留原業(yè)務(wù)特征 | 范圍1000至9999 原數(shù)據(jù):38472.00 脫敏結(jié)果:8394.00 | 日期 貨幣金額 通用數(shù)值 |
保留隨機(jī) | 選中分段保留,其他分段隨機(jī) | 原數(shù)據(jù):2020年10月10日 脫敏算法:【1900-2018】年、【01-12】月、【01-30】日 | 日期 |
浮動 | 對日期或金額,上浮或下降固定值或百分比,并保留原業(yè)務(wù)特征 | 上浮、下降5% 原數(shù)據(jù):1000.00 脫敏結(jié)果:1049.00 | 日期 |
歸零 | 對于數(shù)值,清空并置為0.00 | 原數(shù)據(jù):381.38 脫敏結(jié)果:0.00 | 通用數(shù)值 |
截取 | 對字符串按照起始位置進(jìn)行截取 | 開始位置:2,結(jié)束位置6 原數(shù)據(jù):abcdefghijk 脫敏結(jié)果:bcdef | 通用字符串 |
截斷 | 對字符串保留除起始位置意外的內(nèi)容 | 開始位置:2,結(jié)束位置6 原數(shù)據(jù):abcdefghijk 脫敏結(jié)果:aghijk | 通用字符串 |
數(shù)字截斷 | 將數(shù)字截斷,只保留指定位數(shù) | 如12345678,保留“3位”,則為678。 | 通用數(shù)值 |
加密 | 通過不同的加密算法進(jìn)行加密,脫敏后顯示的數(shù)據(jù)為密文數(shù)據(jù) | SHA1加密、MD5加密、SHA256加密、AES對稱加密、RSA非對稱加密、SMS4加密等 | 中文姓名、身份證、電話、銀行卡、電子郵箱、地址、IP地址 郵政編碼(SHA1加密、MD5加密) 營業(yè)執(zhí)照、社會統(tǒng)一信用代碼、組織機(jī)構(gòu)代碼、稅務(wù)登記證、開戶許可證 醫(yī)療機(jī)構(gòu)登記號、醫(yī)師資格證書、醫(yī)師執(zhí)業(yè)證書 護(hù)照、稅務(wù)登記證、開戶許可證、軍官證、中國護(hù)照、港澳通行證、永久居住證、臺灣同胞大陸通行證 證券名稱、證券代碼、基金名稱、基金代碼 |
替換 | 將數(shù)據(jù)替換為一個常量,常用作不需要改敏感字段時 | 原值:566 原值:789 脫敏后: 566 - 0 789 - 0 | 通用字符串 |
匹配替換 | 通過EXCL表格導(dǎo)入替換規(guī)則,完成匹配替換 | 1111替換為2222 3333替換為4444 | 通用字符串 |
水印 | 通過數(shù)字水印打上水印標(biāo)簽 | 偽行、偽列或者不可見字符 | 日期 |
偏移 | 小數(shù)點(diǎn)往左或往右進(jìn)行偏移 | 如設(shè)定偏移量【2】,則脫敏結(jié)果可能為【28.00】 | 貨幣金額 通用數(shù)值 |
取整 | 對數(shù)字位數(shù)進(jìn)行取整 | 如取整位數(shù)為2,則1988.65脫敏后為1900 如12345678,整數(shù)“3位”,則為12345000 | 貨幣金額 通用數(shù)值 |
分段 | 主要針對數(shù)字進(jìn)行脫敏,可以將同一范圍的數(shù)值脫敏為相同的數(shù)值 | 如1~99的數(shù)值,統(tǒng)一脫敏未1 100~199的數(shù)值,統(tǒng)一脫敏為2 200~299的數(shù)值,統(tǒng)一脫敏為3 | 貨幣金額 |
2)其它脫敏算法
算法名稱 | 算法說明 | 示例 | 使用場景(僅做參考) |
均值脫敏 | 我們先計算它們的均值,然后使脫敏后的值在均值附近隨機(jī)分布,從而保持?jǐn)?shù)據(jù)的總和不變。 | 如學(xué)科總分500分 脫敏后各科學(xué)分相加還是為500分。 | 貨幣金額 |
哈希 | 將數(shù)據(jù)映射為一個hash值 | Jim,Greenà456393 34453 | 用作將不定長的數(shù)據(jù)映射為定場的hash值。 |