本文講述數據庫表、字段名、注釋元數據通過關鍵詞匹配、字段內容通過正則表達式匹配實現敏感數據識別的方法說明
敏感數據
敏感數據主要包括客戶資料、技術資料、個人信息等高價值數據,這些數據以不同形式存在于您的資產中。
敏感數據的泄露會給企業帶來嚴重的經濟和品牌損失。
敏感字段標注問題
數倉或數據庫中,有一些敏感字段,比如用戶手機號、通信地址,一旦泄露危害很大。為了盡可能方便讓用戶使用,同時又要保護敏感字段不能隨意訪問,一方面需要知道哪些字段是敏感的,另一方面是對敏感字段做更高級別的權限控制。
如何發現敏感字段,知道哪些字段是敏感的,可以去咨詢相關領域的數據開發者,但是這樣做有局限性,主要是費時費力,而且標注不全,一旦新增字段或者已有字段發生變更,難以及時跟進。
2.1 元數據敏感識別(敏感詞庫+關鍵詞匹配)
1)定義敏感數據關鍵詞匹配式
2)通過精準或模糊匹配表、字段名稱、注釋,利用元數據信息對數據庫表、文件進行逐個字段匹配
缺點:設定關鍵詞和元數據匹配,僅僅判定“有”,“無”,方式較粗糙,(1)開發人員創建表字段名、注釋不嚴謹 (2)判斷不準確
臨時表或未按照規范建立的敏感表,根據元數據無法判斷是否未敏感數據,這種情況更多要分析數據內容來判斷
自動化工具通過掃描獲取這些表,將系統中大量數值型、英文型的敏感信息(如手機號、身份證號、郵箱等)通過預先定義正則表達式的方式進行匹配,做出敏感數據及其級別的判定
字段中含有大量的中文信息,通過元數據或正則匹配不能很少的識別。引入自然語言處理技術+中文近似詞對比的方式進行識別。
1)根據數據內容整理輸出常用敏感詞
2)通過NLP對中文內容進行分詞,通過中文近似詞比對算法計算分詞內容和敏感詞相似對,若相似度超過某個閾值,則認為內容符合敏感詞所屬的分類分級
通過用戶輸入關鍵詞或者預定義相關內容匹配敏感數據庫來檢測識別,用戶缺乏相關領域知識,提交的關鍵詞數量有限缺缺乏代表性,提交的關鍵詞不能全面準確地表達用戶的實際查詢意圖。造成檢查結果不全面不準確。
常用敏感字段
個人敏感信息
身份證、銀行卡、姓名、手機號、郵箱、 護照號、港澳通行證、車牌號、電話號碼、軍官司證
企業敏感信息
營業執照號碼、稅務登記證號碼、組織機構代碼、統一社會信用代碼
密鑰敏感信息
PEM證書、KEY私鑰、AccessKeyId、AccessKeySecret、哈希密碼
設備敏感信息
IP地址、MAC地址、JDBC連接串、IPv6地址、IMEI、MEID
位置敏感信息
省份、城市、GPS位置、地址
通用敏感信息
日期
敏感字段識別
| 識別方式 | 字段 | 說明 |
| 正則表達式和算法匹配 | 銀行卡號、證件號、手機號、郵箱、車牌號、身份證 | 有明確的生成算法和識別規則 |
| 關鍵詞 | 姓名、其他字符串字段 | 沒有明確信息、任意字符串 |
| 自然語言或開源算法庫 | 地址、圖片 | 沒有明確規則 |
注意:
本方法中全庫掃描消耗的計算資源太大,可考慮抽樣檢查,比如隨意抽取100條記錄,經過預處理數據清理后,10條記錄進行內容識別