葉水勇
(國網(wǎng)安徽省電力有限公司黃山供電公司,安徽 黃山 245000)
所謂數(shù)據(jù)脫敏就是利用脫敏規(guī)則將一些敏感信息(如身份證號、賬號、密碼、地址、電話號碼等)進行數(shù)據(jù)變形,從而實現(xiàn)對敏感、隱私的數(shù)據(jù)進行可靠有效的保護[1-2]。通過數(shù)據(jù)脫敏技術,有針對性地保護與當前分析無關的信息,并保證分析挖掘的有效進行。目前國內(nèi)大多數(shù)企業(yè)為了保護敏感數(shù)據(jù)的安全,通過設置防火墻、安裝防病毒軟件等措施來加強數(shù)據(jù)外圍保護。但是,這種保護方式限制了敏感數(shù)據(jù)的分析與利用。部分企業(yè)根據(jù)自身需求制定了一些以靜態(tài)脫敏為主的數(shù)據(jù)脫敏方案,其脫敏流程擴展性差、脫敏規(guī)則固定且簡單、脫敏能力有限,無法滿足規(guī)模日益增長且規(guī)則日益復雜的數(shù)據(jù)脫敏需求,無法有效解決背景知識攻擊等安全威脅。
本文通過分析評估當今主流數(shù)據(jù)脫敏技術特性,將多種脫敏方式相結合,建立敏感數(shù)據(jù)的發(fā)現(xiàn)、抽取與脫敏系統(tǒng)[3-4]。該系統(tǒng)通過對敏感數(shù)據(jù)分類,能夠快速處理大量脫敏數(shù)據(jù),支持脫敏算法與方案的配置管理,很好地適應不同的脫敏需求。系統(tǒng)建立脫敏任務的申請審核機制,通過權限管理使脫敏過程更有效安全。
該算法要求對任意一行的記錄,所歸屬的相等集內(nèi)的記錄總數(shù)量不得少于k條,即最少有(k-1)條記錄的半標識列的值與該條記錄相同。對k-Anonymity數(shù)據(jù)集內(nèi)的任意記錄,從理論上來說,攻擊者大約只有1/k的概率使被攻擊的記錄與具體的用戶進行關聯(lián)[5-6]。
該算法的缺點是容易受到鏈接式攻擊,對屬性泄露風險無法進行保護。攻擊者可通過背景知識和同質屬性兩種攻擊方式對k-Anonymity數(shù)據(jù)集內(nèi)的用戶屬性信息進行攻擊。對移除標識列的數(shù)據(jù)根據(jù)半標識列進行分組,每組最少有k條記錄,每組中至少有(k-1)條記錄的半標識列的值與該記錄相同。
如果任意相等集內(nèi)的所有記錄所對應敏感數(shù)據(jù)的集合中包含有l(wèi)個合適的值,則該相等集滿足l-Deversity算法。若數(shù)據(jù)集中的所有相等集全部滿足l-Deversity算法,則該數(shù)據(jù)集滿足l-Deversity算法。
與k-Anonymity算法相比,符合l-Deversity算法的數(shù)據(jù)集,數(shù)據(jù)泄漏所造成的風險明顯降低。對l-Derversity數(shù)據(jù)集內(nèi)的任意記錄,從理論上來說,攻擊者大約只有1/l的概率使被攻擊的記錄與具體的用戶進行關聯(lián)[7-8]。
該算法的缺點是可能難以實現(xiàn)且無必要實現(xiàn),且不足以阻止屬性公開。
如果敏感數(shù)據(jù)在一個相等類的分布與在全局的分布之間的距離比t小,則該相等類滿足t-Closeness算法。若數(shù)據(jù)集中的所有相等類全部滿足t-Closeness算法,則該數(shù)據(jù)集滿足t-Closeness算法。
由于t-Closeness算法對敏感信息在全局的分布與半標識列屬性之間的聯(lián)系進行限定。因而,減弱了特定的敏感信息與半標識列屬性之間的聯(lián)系,從而減少了攻擊者利用敏感信息內(nèi)部的分布信息來進行泄露攻擊的概率,但它也會造成部分數(shù)據(jù)的丟失。因此,管理者可以通過判斷t值的大小來平衡用戶的隱私保護與數(shù)據(jù)的可用性[9]。
對時間按一定的粒度進行向下或向上的偏移取整,保證時間數(shù)據(jù)按一定的分布特征對原始時間進行隱藏,即通過舍棄精度使原始數(shù)據(jù)的安全性得到保證。
例如:將時間20160301 01:01:09按照5秒鐘粒度向下取整得到20160301 01:01:05。
通過對脫敏數(shù)據(jù)進行加密處理,外部人員只能看到?jīng)]有任何意義的經(jīng)過處理后的加密數(shù)據(jù)[10]。在特定的情況下,可以給具有權限的有關人員提供密鑰,來對加密后的脫敏數(shù)據(jù)進行解密處理。如通過利用非對稱的加密技術,即利用數(shù)據(jù)請求方的公鑰進行加密處理,然后數(shù)據(jù)請求方用私鑰對獲得的數(shù)據(jù)進行解密處理,從而還原出被脫敏的加密數(shù)據(jù)。
例如:將編號12345加密為abcde或23456等。其安全程度取決于采用哪種加密算法,一般根據(jù)實際情況而定。
將原始數(shù)據(jù)按照特定的規(guī)則進行重新排列,對于跨行數(shù)據(jù),采用隨機互換來打破其與本行其他數(shù)據(jù)的關聯(lián)關系,從而實現(xiàn)脫敏[11]。
例如:序號12345重排為54321,按照一定的順序進行打亂,很像“替換”,方便在需要時還原信息,但易于破解。
舍棄必要信息來保證數(shù)據(jù)的模糊性,僅保留部分關鍵信息。這是比較常用的脫敏方法,但在生產(chǎn)方面存在一定弊端。為解決這個問題,比如對手機號碼進行數(shù)據(jù)脫敏時,可僅返回前7位數(shù)字以顯示號碼歸屬地,即將手機號碼138539102456返回為1385391,最好在保留歸屬地的情況下,結合掩碼方法進行數(shù)據(jù)脫敏。
例如:把身份證號330184190001184115截斷為190001184115。
將數(shù)據(jù)按照大小規(guī)整到預定義的多個檔位,這是一種比較常用的脫敏方法。
例如:a)將客戶資產(chǎn)按照規(guī)模分為高、中、低3個級別,將客戶資產(chǎn)數(shù)據(jù)用這3個級別代替;b)將扣費額按照金額多少分為高、中、低3個級別;c)將用電量按照使用量的多少分為高、中、低3個級別。
利用通用字符(如*、X等)對敏感數(shù)據(jù)的部分內(nèi)容進行統(tǒng)一的替換,只保留部分數(shù)據(jù)信息,這樣就可以讓敏感數(shù)據(jù)只公開部分內(nèi)容,但信息的持有者可以很容易進行辨別。這種方法在很大程度上既可保證數(shù)據(jù)的脫敏,又可保證信息長度的不變性,在數(shù)據(jù)脫敏中被廣泛使用。
例如:a)將手機號碼13500010001經(jīng)過掩碼得到135****0001;b)把身份證號330184190001184115經(jīng)過掩碼得到330184********4115。
參考原始數(shù)據(jù)的特征,重新生成數(shù)據(jù)。重寫與整體替換較為類似,但替換后的數(shù)據(jù)與原始數(shù)據(jù)通常存在特定規(guī)則的映射關系,而重寫生成的數(shù)據(jù)與原始數(shù)據(jù)則一般不具有映射關系。
例如:a)對員工工資,可使用在一定范圍內(nèi)隨機生成的方式重新構造數(shù)據(jù);b)對身份證號碼,可在一定范圍內(nèi)按照規(guī)則隨機生成的方式重新構造數(shù)據(jù)。
針對數(shù)值型的敏感數(shù)據(jù),在保證脫敏后數(shù)據(jù)集總值或平均值與原始數(shù)據(jù)集相同的情況下,改變數(shù)值的原始值。
例如:對客戶用電量、員工工資等采用均化的脫敏方法。
對原始數(shù)據(jù)通過散列算法取散列值,使用散列值來代替原始數(shù)據(jù)。目前應用較多的散列算法是SHA-1和SHA-256等。
例如:使用散列算法,將客戶的密碼“123456”用其散列值“321654”來代替。對于原文空間有限的散列,還要加入隨機因子。
僅僅返回可用數(shù)據(jù)集合中一定數(shù)量的數(shù)據(jù),并且只有在拿到所有數(shù)據(jù)后才具有意義。
例如:對于客戶地址數(shù)據(jù),可在脫敏時僅返回十六字節(jié)數(shù)據(jù),如將“XX市XX區(qū)XX街XX巷X幢XXX室”返回為“XX市XX區(qū)XX街”。
數(shù)據(jù)脫敏是指在使用數(shù)據(jù)進行信息挖掘時去除不需要的敏感信息,保證信息的安全[12-13]。如果脫敏后的數(shù)據(jù)無法用來對信息進行分析與挖掘,那么這些脫敏數(shù)據(jù)也就無任何使用價值。因此,脫敏后的數(shù)據(jù)應最大限度地保留信息特征與意義,確保數(shù)據(jù)可用,信息可靠。一般需保留身份證號碼、聯(lián)系方式、地址的部分字段等關鍵信息。對于脫敏后發(fā)生改變的信息,應保留數(shù)據(jù)統(tǒng)計特征,即數(shù)據(jù)中所包含的統(tǒng)計趨勢,比如用電量與用電類型的對應關系、人口的分布密度等。
脫敏的目的就是保證數(shù)據(jù)中的信息安全。數(shù)據(jù)經(jīng)過脫敏處理后,必須能有效保護敏感信息。脫敏最基本的要求是將敏感信息移除、替換、隱藏,并且在已有數(shù)據(jù)的基礎上,無法通過各種手段處理來得到被保護的敏感信息[14-15],或者提高處理數(shù)據(jù)的難度與開銷,使其成本遠遠高于所獲取的敏感信息。
對數(shù)據(jù)進行脫敏時,雖然可以對敏感信息進行消除,但數(shù)據(jù)的統(tǒng)計特征不能被破壞,因此需要進行規(guī)范化脫敏。確保在數(shù)據(jù)要求一致的情況下,使脫敏的統(tǒng)計特征相同。如果結果出現(xiàn)統(tǒng)計特征的波動,會導致無法準確定位分析結果的影響因素,從而破壞分析的準確性。
在不同的數(shù)據(jù)應用場景中,對數(shù)據(jù)的安全保護存在不同級別,所需的信息也各有不同。因此,需要針對不同情況配置不同的脫敏方式、脫敏內(nèi)容以及脫敏程度,以適應不同應用環(huán)境的脫敏需求。
數(shù)據(jù)脫敏系統(tǒng)的設計架構由敏感數(shù)據(jù)的發(fā)現(xiàn)、敏感數(shù)據(jù)的抽取與敏感數(shù)據(jù)的脫敏3個部分組成,如圖1所示。
圖1 數(shù)據(jù)脫敏系統(tǒng)框架
4.2.1 敏感數(shù)據(jù)的發(fā)現(xiàn)方法
敏感數(shù)據(jù)的發(fā)現(xiàn)方法就是對系統(tǒng)內(nèi)的所有數(shù)據(jù)先進行梳理,并從中對敏感數(shù)據(jù)進行識別,然后再對識別后的敏感數(shù)據(jù)進行標識。對云環(huán)境下海量的數(shù)據(jù)進行梳理,需要自動化手段來完成[16-17]。
在進行數(shù)據(jù)脫敏前,必須先對數(shù)據(jù)整體進行梳理。以國家敏感信息保護有關法律法規(guī)為依據(jù),參考國內(nèi)外敏感信息保護相關標準,將敏感信息分成6類,如表1所示。
表1 敏感信息分類Table 1 Classification of sensitive information
在敏感信息分類的基礎上,系統(tǒng)利用自動化敏感數(shù)據(jù)識別工具執(zhí)行數(shù)據(jù)發(fā)現(xiàn)工作,并降低該過程對生產(chǎn)系統(tǒng)的影響。
1)定義數(shù)據(jù)脫敏工作執(zhí)行的范圍,在該范圍內(nèi)執(zhí)行敏感數(shù)據(jù)的發(fā)現(xiàn)工作。
2)系統(tǒng)錄入敏感數(shù)據(jù)樣本后,敏感數(shù)據(jù)識別工具提取樣本數(shù)據(jù)的數(shù)據(jù)表名稱、字段名稱、數(shù)據(jù)記錄內(nèi)容、數(shù)據(jù)表備注、數(shù)據(jù)文件內(nèi)容等特征信息,對這些特征信息進行統(tǒng)計記錄,存儲在敏感特征識別庫中。
3)敏感數(shù)據(jù)識別工具對目標數(shù)據(jù)進行敏感數(shù)據(jù)識別,根據(jù)從樣本數(shù)據(jù)獲取的敏感數(shù)據(jù)特征信息,對目標數(shù)據(jù)進行直接匹配或正則表達式匹配,對匹配的目標數(shù)據(jù)進行標記。該標記與敏感數(shù)據(jù)一起流動,無法刪除和篡改,從而可以對敏感數(shù)據(jù)進行有效跟蹤,以確保敏感數(shù)據(jù)的安全合規(guī)性。
4)敏感數(shù)據(jù)識別工具具有擴展機制,可根據(jù)業(yè)務需要自定義敏感數(shù)據(jù)的發(fā)現(xiàn)邏輯。同時系統(tǒng)可以固化常用的敏感數(shù)據(jù)發(fā)現(xiàn)規(guī)則,例如身份證號、手機號等敏感數(shù)據(jù)的發(fā)現(xiàn)規(guī)則,避免重復定義數(shù)據(jù)發(fā)現(xiàn)規(guī)則。
4.2.2 敏感數(shù)據(jù)的抽取方法
在實際數(shù)據(jù)運用場景中,往往對數(shù)據(jù)有不同的需求,并不需要提供所有數(shù)據(jù)。因此,需要根據(jù)使用需求及脫敏要求,對數(shù)據(jù)進行抽取,以提高信息密度。
數(shù)據(jù)抽取有以下3種方法:
1)字段分列:截取某一字段的部分信息。
2)字段合并:將某幾個字段合并為一個新字段。
3)字段匹配:將原數(shù)據(jù)表沒有、但其他數(shù)據(jù)表中有的字段,有效地匹配過來。
4.2.3 敏感數(shù)據(jù)的脫敏方法
對數(shù)據(jù)進行脫敏前,需要先根據(jù)實際情況確定脫敏需求,制定脫敏方案,完成敏感數(shù)據(jù)的脫敏。
1)對那些已經(jīng)被識別出來的敏感數(shù)據(jù)按照產(chǎn)生—采集—使用—交換—銷毀的生命周期進行流程的梳理,明確用戶在生命周期的各階段對數(shù)據(jù)的訪問權限及訪問需求,并進行設置,同時整理、分析出需要對數(shù)據(jù)進行脫敏的業(yè)務需求。例如,在梳理過程中,會發(fā)現(xiàn)存在對敏感數(shù)據(jù)的訪問需求和訪問權限不匹配的情況(用戶僅需獲取敏感數(shù)據(jù)中部分內(nèi)容即可,但卻擁有對敏感數(shù)據(jù)內(nèi)容全部的訪問權限),因此,該業(yè)務場景就有對敏感數(shù)據(jù)進行數(shù)據(jù)脫敏的需求。
2)業(yè)務場景被明確后,系統(tǒng)按照最小夠用的原則,對不同類別的敏感信息明確其脫敏要求、脫敏規(guī)則及該業(yè)務在服務水平方面的需求,以便于脫敏方案的制定。
3)脫敏方案制定后,數(shù)據(jù)脫敏工具自動完成敏感數(shù)據(jù)的脫敏工作。數(shù)據(jù)脫敏工具提供擴展機制,讓用戶可根據(jù)需求自定義脫敏方法。同時系統(tǒng)可以對敏感數(shù)據(jù)常用的脫敏規(guī)則進行固化,從而可以避免數(shù)據(jù)脫敏規(guī)則的重復定義,確保數(shù)據(jù)脫敏項目的順利實施。
該系統(tǒng)以三層框架為基礎,建立了一個完善的數(shù)據(jù)脫敏體系結構。系統(tǒng)提供與監(jiān)控系統(tǒng)對接接口,可以建立起脫敏操作的監(jiān)管審計體系[18-19],如圖2所示。
圖2 數(shù)據(jù)脫敏系統(tǒng)架構
當需要發(fā)起脫敏操作時,脫敏操作發(fā)起人通過統(tǒng)一登錄平臺接口進入脫敏系統(tǒng),脫敏系統(tǒng)從目標數(shù)據(jù)源獲取目標數(shù)據(jù),脫敏操作發(fā)起人根據(jù)脫敏需求選擇脫敏方案,提出脫敏任務申請。該申請上傳至OA系統(tǒng)審批通過后,系統(tǒng)開始對目標數(shù)據(jù)進行敏感數(shù)據(jù)發(fā)現(xiàn)、數(shù)據(jù)抽取以及數(shù)據(jù)脫敏操作,并將脫敏后的數(shù)據(jù)輸出至目標環(huán)境以供使用。
系統(tǒng)提供數(shù)據(jù)源與算法配置的管理,能夠適應復雜的脫敏環(huán)境,完成不同的脫敏任務,具有較高的適用性與可擴展性。系統(tǒng)內(nèi)置用戶權限管理,不同職責的人員擁有不同的系統(tǒng)操作權限。用戶無法未經(jīng)脫敏任務審核直接發(fā)起數(shù)據(jù)脫敏操作,有效杜絕了脫敏方案過于簡單導致的敏感數(shù)據(jù)外泄問題。同時系統(tǒng)可以與郵件系統(tǒng)、消息平臺對接,便于用戶的使用。
數(shù)據(jù)脫敏系統(tǒng)的應用案例如表2所示。
表2 運用案例表Table 2 Application cases
通過對3種主流脫敏算法進行分析與評估,結合多種脫敏方式,構建了能夠滿足大數(shù)據(jù)時代下電力數(shù)據(jù)脫敏需求的系統(tǒng)。
1)該系統(tǒng)通過敏感信息分類,有效規(guī)范了脫敏流程;
2)內(nèi)置多種脫敏策略,滿足日常脫敏需求,在面對復雜的脫敏需求時,可以進行脫敏策略的自定義與拓展;
3)通過精準的敏感信息定位標志、高適應性的脫敏策略,滿足了保留所需要信息與保護敏感信息的兩大要求。