MongoDB有哪些數據脫敏技術?

爲什麼需要知道掩蓋技術?因爲這是一種匿名化數據的方法,這樣就可以使用包含敏感或個人信息的數據進行測試或開發。 即使你負責的數據庫具有完全的訪問控制和安全性,你也可能需要多種數據脫敏技術來支持應用程序。

例如,你可能需要動態脫敏數據以確保應用程序不會暴露不必要的敏感信息。或者,如果您需要對實際生產數據運行測試或開發,而實際生產數據包含個人或敏感信息,則可能需要脫敏真實數據。

如果你需要將生產數據推到一個安全性較低的環境,你也需要進行數據脫敏技術,爲了分發報告或者分析相應的數據,並且必須保留報告所需要的基礎數據。

出於培訓或用戶測試的目的,常見的做法是生成看起來像真實數據的假數據。這是一個不同的過程,需要不同的技能。

爲什麼需要脫敏數據?
關於數據的各種規則適用於任何數據庫、文件或電子表格。從法律的角度來看,在哪裏保存數據並不重要。如果你是組織的一部分,你應該只能訪問適合你在組織中角色的信息。如果你沒有合法的理由訪問該數據,那麼你必須無法訪問該數據。

總結:

所有數據都必須以可靠的方式進行管理,無論它在哪裏保存。法律並不關心你用什麼方法存儲數據,只要你這樣做了。

如果包含可能獲取個人的數據(PII數據),它必須在任何時候都具有訪問限制。此外,法律提供了就如何匿名或僞匿名數據給出指示性建議。它只是要求在適當的時候這樣做。

法律要求不能在匿名數據中識別任何個人或團體,即使它與其他數據源結合在一起。如何讓數據實現這一目標是我們所關心的,而實現這一目標的技術在當前的法律中沒有明確的定義。

如果可以通過重新識別或去匿名化來識別個人,那麼數據就沒有正確地匿名化。這種重新識別技術多年來被執法機構和情報機構用於破解犯罪網絡,可以肯定的是,暗網也有同樣的技術。

脫敏與MongoDB
因爲你保存和處理數據的方式與法律無關,MongoDB和其他任何數據格式一樣面臨同樣的挑戰。

由於MongoDB在默認情況下不啓用訪問控制,所以第一個明顯的步驟是提供基於角色的訪問控制和數據庫及服務器的安全性。

相關的閱讀:MongoDB安全提示,以確保遠離黑客

然而,任何文檔數據,無論是非結構化文本、YAML、JSON或XML,對於負責將其匿名化的任何人來說都有特定的問題。除非包含模式和規範的方法,否則敏感數據可能存在於任何地方,並且可以在多個地方重複。

在具有“非規範化”或包含XML或JSON列的關係型結構數據中,可能會遇到同樣的問題。如果進行檢查,通常會發現相同的數據存在於多個位置,並且其中兩個數據具有相同的名稱,而忽略對它們進行脫敏,那麼就存在潛在的漏洞。

MongoDB基於集合的概念。一個集合,就像一個關係數據庫表,包含一個或多個文檔。每個文檔都是一組鍵值對。

圖片地址:

https://studio3t.com/wp-content/uploads/2018/10/mongodb-document-structure.png

MongoDB使用集合、文檔和鍵值對來構造數據

由於同一個集合中的文檔不需要具有相同的字段集或結構,因此集合文檔中具有相同名稱的字段可能包含不同類型的數據。它們可以保存數組,其中可以包含各種類型的數據。

基本上,MongoDB很少強制執行模式。這使得製作一個系統的自動化脫敏程序變得更加困難。

事實上,如果沒有一致的模式,那麼定義掩碼的過程會變得非常冗長。要實現屏蔽,可以使用MongoDB的只讀非物化視圖、字段級密文或字段級加密等技術。

視圖是最簡單的方法,因爲它們基於聚合管道,因此可以創建相當複雜的集合篩選器。您需要將這些數據託管到生產數據庫中,並使用它們導出脫敏後的數據。

然而,儘管這些方法可以實現假名化,但它們需要大量的編程,假設對模式進行合理的強制執行,並且不能滿足所有的需求。

假名化、匿名化、聚合、屏蔽和數據生成

有很多技術可以使數據匿名。最合適的選擇取決於您需要匿名化數據的原因。

如果爲了開發工作的需要,那麼任何敏感數據必須被脫敏。爲了培訓或用戶測試,數據也必須是需要脫敏。爲了測試數據的彈性和可伸縮性,數據生成來提供必要的方法。

聚合

如果數據是用於報告的,那麼僅僅通過在報告所需的最低級別上,提供一個聚合就可以實現很大的效果。

例如,如果它是用於報告交易,而最詳細的報告是關於一天的交易,那麼數據只能提供每天的數據。

如果某些羣體的人數較少,聚合的個人數據可以被重新識別。這發生在開放數據醫療信息和犯罪記錄上。

屏蔽

動態屏蔽不同於靜態屏蔽,因爲它是對數據查詢的結果進行屏蔽。它只在目的地具有訪問控制以防止臨時查找/連接的情況下有效。不同的數據庫系統以不同的方式進行動態屏蔽,但MongoDB使用視圖和編校投影技術。動態屏蔽的優點是它避免破壞約束數據的應用程序邏輯。

如果將***放入實際的數字數據中,它可能會在JSON Schema中失敗,因爲它不再看起來像一個數字。

如果你有一個電話號碼、郵政編碼或卡號,情況就更復雜了,因爲如果違反了校驗和或特殊的驗證規則,那麼用數字掩蓋的數字的驗證可能會失敗。

假名化

假名化是一種數據掩蓋技術,其中個人可能需要重新識別。

例如,如果一家醫院需要根據病史對某些病理或最佳治療的可能性進行分析,則報告必須掩蓋個人細節,以便重新識別。

最明顯的是,在必要的醫療信息中留下一個“替代”鍵,以取代個人(PII)信息,然後可用於從隨後的報告中重新識別個別患者。

如果個人信息“泄露”到醫療信息中,並且在法律上不認爲這等同於匿名化,那麼這種安全性就會被打破。

數據生成

數據生成用於應用程序測試和培訓:對於尚未發佈的應用程序,它是唯一的方法。它可能看起來很簡單,而且它可能只是字段中的信息可能是相關的。客戶將得到邏輯一致的信息,可能是與性別相關的,約會可能需要在其他約會之前或之後,並將需要一個真實的跨度。

Studio 3T中的數據屏蔽

Studio 3T中的數據屏蔽是對其編輯和操作MongoDB數據能力的一個明顯的擴展,它與它的“Reschema”功能有效地結合在一起。這將告訴你許多關於數據位置的信息。

數據屏蔽由“任務”以與任何其他可重複作業相同的方式完成,可以保存、調度和編輯。訪問屏蔽數據,右鍵單擊要屏蔽的集合,然後在出現的上下文菜單中單擊“屏蔽集合”。

圖片地址:

https://studio3t.com/wp-content/uploads/2021/01/word-image-402.png

在Studio 3T的任意集合上單擊右鍵,選擇屏蔽集合一個任務由一個或多個“單元”組成,每個單元管理一個集合的屏蔽。一個“單元”允許您屏蔽整個集合,並決定哪些字段應該混淆。您可以屏蔽原始集合,也可以將其保存爲新集合。

在它的第一個版本中,集中討論了通常用於動態數據屏蔽的“屏蔽”技術。你還不能做混排,同步或替換。屏蔽的類型取決於字段的數據類型。

圖片地址:

https://studio3t.com/wp-content/uploads/2021/01/word-image-403.png

Studio 3T中的“數據屏蔽單元”
可以從20種不同的數據類型中選擇一種,屏蔽或混淆的類型取決於數據類型。

例如,數組可以被排除、空值或空對象。字符串部分或全部替換爲散列(#)或星號(*)字符。整數可以與原始值不同,可以是原始值的一個變化百分比,也可以是原始值的一個固定百分比,或者可以用一個固定的值替換它們。

日期可以在您可以定義的範圍內給出一個隨機值。

圖片地址:

https://studio3t.com/wp-content/uploads/2021/01/word-image-404.png

編輯字段映射並選擇數據屏蔽技術

這隻有簡單幾個符合模式的集合的數據庫,因爲每個字段是完全獨立完成的,並沒有爲用戶自行設定默認值,你需要選擇相關的方法,(例如,一個整數的方差)這不是快速的大型數據庫。

這種屏蔽的第一次迭代對於大多數目的來說已經足夠了,但是如果它有效地執行了,您的數據看起來就不會那麼漂亮,而且可能不會有相同的分佈。然而,它是有效的。

對於我們這些對數據混淆感興趣的人來說,他們對混淆文本的方式感到自豪,這種方式使文本看起來像真實的數據,甚至通過約束和模式驗證規則。實際上,這隻在培訓、用戶驗收或性能測試中使用。

Studio 3T提供的屏蔽功能在第一次迭代中提供了足夠的功能,允許在普通開發工作和“下游”報告中屏蔽數據。

結論

當你開發、維護或測試一個數據驅動的應用程序時,如果有大量的數據,就會容易得多。許多問題,尤其是性能問題,只有在有大量數據的情況下才會浮出水面。通過在大型數據集上嘗試各種想法,應用程序設計很快就得到了完善。

如果你有一個現有的應用程序,那麼使用實時數據總是很誘人的,有時也是必要的。

屏蔽數據的功能必須是任何處理數據的開發人員的工具包的一部分。這有助於確保您負責任地處理實時數據。然而,它只是數據庫開發人員的一個基本工具,用於滿足業務依賴於數據的組織的需求。

爲了滿足社會的需求,它必須與數據生成、加密、聚合、訪問控制一起使用,以保護敏感和個人信息。

關於作者:管祥青

湖南大學研究生畢業,畢業後在海康威視研究院從事大數據研發及機器學習相關工作,現在就職於一家大數據金融公司。

參考網址:

https://studio3t.com/knowledge-base/articles/mongodb-data-masking-techniques/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章