安全圈 | 专注于最新网络信息安全讯息新闻

首页

大資料安全:hadoop安全模型的演進

作者 galluppi 时间 2020-02-26
all

敏感資訊的安全和保護是當今人們最關心的問題之一。進入大數據時代,很多組織都在從各種源頭收集數據,進行分析,並基於對海量數据集的分析做出決策,囙此這一過程中的安全問題變得愈發重要。與此同時,HIPAA和其他隱私保護法之類的法律法規也要求組織加强對這些數据集的存取控制和隱私限制。來自內部和外部攻擊者的網路安全漏洞與日俱增,通常都要數月之後才能發現,而那些受此影響的人正在為此付出代價。沒能對他們的數據做出恰當存取控制的組織將受到起訴,出現在負面報導中,並將面臨監管機构的罰款。

請想一想下麵這些讓人大開眼界的統計資料:

簡而言之,如果沒有恰當的安全控制,大數據很容易變成花費巨大的大問題。

對於處理大數據的組織來說這意味著什麼?意味著你擁有的數據越多,對數據的保護就越重要。意味著不僅要安全有效地控制離開自有網絡的數據,還必須做好網絡內部的數據存取控制。依據數據的敏感程度,我們可能要確保數據分析師能看到的數據是可以讓他們分析的數據,並且必須明白發佈這些數據及其分析結果可能產生的後果。僅Netflix數據洩漏一個案例就足以表明,即使已經試圖對數據做了“匿名化”處理,也可能會發佈一些意料之外的資訊——一些在差异化隱私領域標明的東西。Apache Hadoop是最流行的大資料處理平臺之一。儘管最初設計Hadoop時根本沒考慮安全問題,但它的安全模型在不斷地演進。Hadoop的興起也招致了很多批判,並且隨著安全專家不斷指出其潜在的安全性漏洞及大數據的安全風險,使得Hadoop一直在改進其安全性。“Hadoop安全”市場曾出現過爆炸性的增長,很多廠商都發佈了“安全加强”版的Hadoop和對Hadoop的安全加以補充的解決方案。這類產品有Cloudera Sentry、 IBM InfoSphere Optim Data Masking、 英特爾的安全版Hadoop、DataStax企業版、 DataGuise for Hadoop、用於Hadoop的Protegrity大數據保護器、Revelytix Loom、Zettaset安全資料倉庫,此外還有很多,這裡就不再一一列舉了。與此同時,Apache也有 Apache Accumulo這樣的項目,為使用Hapdoop提供了添加額外安全措施的機制。最終還出現了 Knox閘道 (由HortonWorks貢獻)和Rhino項目(由英特爾貢獻)這樣的開源項目,承諾要讓Hadoop本身發生重大改變。

要讓Hadoop達到安全性要求的巨大需求使得Hadoop一直在發生著變化,這也是我要在本文中重點討論的內容。

Hadoop安全(簡)史

Doug Cutting和Mike Cafarella最初為Nutch專案開發Hadoop時並沒有考慮安全因素,這是眾所周知的事實。因為Hadoop的最初用例都是圍繞著如何管理大量的公共web數據,無需考慮保密性。按照Hadoop最初的設想,它假定集羣總是處於可信的環境中,由可信用戶使用的相互協作的可信電腦組成。

最初的Hadoop中並沒有安全模型,它不對用戶或服務進行驗證,也沒有數據隱私。因為Hadoop被設計成在分佈式的設備集羣上執行程式碼,任何人都能提交程式碼並得到執行。儘管在較早的版本中實現了稽核和授權控制(HDFS檔案許可),然而這種存取控制很容易避開,因為任何用戶只需要做一個命令列切換就可以類比成其他任何用戶。這種類比行為非常普遍,大多數用戶都會這麼幹,所以這一已有的安全控制其實沒起到什麼作用。

在當時,考慮到安全問題的組織把Hadoop隔離在專有網絡中,只有經過授權的用戶才能訪問。然而由於Hadoop內部幾乎沒有安全控制,在這樣的環境中也會出現很多意外和安全事故。善意的用戶可能會犯錯(比如用一個分佈式删除在幾秒內就會删除大量數據)。所有用戶和程式師對集羣內的所有數據都有相同的存取權限,所有任務都能訪問集羣內的任何數據,並且所有用戶都可能會去讀取任何數据集。因為MapReduce沒有認證或授權的概念,某個頑劣的用戶可能為了讓自己的任務更快完成而降低其他Hadoop任務的優先順序,甚至更壞,直接殺掉其他任務。

隨著Hadoop在資料分析和處理平臺中的地位日益凸顯,安全專家們開始關心來自Hadoop集羣內部的惡意用戶的威脅。惡意開發人員能輕易寫出假冒其他用戶Hadoop服務的程式碼來(比如寫一個新的TaskTracker並將其注册為Hapdoop服務,或者冒充hdfs或mapred用戶,把HDFS裏的東西全删掉等等)。因為DataNode沒有存取控制,惡意用戶可以繞過存取控制從DataNode中讀取任意數據塊,或將垃圾數據寫到DataNode中破壞目標分析數據的完整性。所有人都能向JobTracker提交任務,並可以任意執行。

因為這些安全問題,Hadoop社區意識到他們需要更加健壯的安全控制,囙此,雅虎的一個團隊决定重點解决認證問題,選擇Kerberos作為Hadoop的認證機制,這在他們2009年的白皮書上有記錄。

在Hadoop發佈.20.20x版本時他們實現了自己的目標,該版本採用了下麵這些機制:

自對安全性進行重新設計以來,Hadoop的安全模型大體上沒發生什麼變化。隨著時間的推移,Hadoop體系中的一些組件在Hadoop之上構建了自己的安全層,比如Apache Accumulo,提供單元級的授權,而HBase提供列和族系一級的存取控制。

Hadoop當前所面臨的安全挑戰

組織在保證Hadoop的安全性時會面臨一些安全方面的挑戰,在我和Boris Lublinsky及Alexey Yakubovich寫的新書中,我們用了兩章的篇幅集中討論Hadoop的安全問題,其中一章的重點是Hadoop本身的安全能力,另外一章的重點是對Hadoop的安全性進行補充的策略。

常見的安全問題有:

這其中很多問題都能靠Hadoop自身的能力解决,但也有很多是Hadoop所無能為力的,所以行業內湧現出了很多Hadoop安全補充工具。廠商們發佈安全產品來彌補Hadoop的不足有幾個原因:

如果Hadoop如今還不具備實現者所要求的安全能力,那麼他們只能轉而集成協力廠商工具,或使用某個廠商提供的安全加强版Hadoop,或採用其他有創造性的辦法。

即將發生的大變化

2013年開端之際,英特爾發起了一個開源項目Rhino,以提升Hadoop及其整個體系的安全能力,並將程式碼貢獻給了Apache。這有望顯著加强Hadoop當前的貢獻。這一開源項目的總體目標是要支持加密和金鑰管理,一個超越Hadoop當前提供的用戶及群組ACL的通用授權框架,一個基於認證框架的通用權杖,改善HBase的安全性,改善安全稽核。這些任務都被記錄在Hadoop、MapReduce、HBase和Zookeeper的JIRA中,擇重點摘錄如下:

這些就是Hadoop的主要變化,但有望解決有這些安全需求的組織的安全問題。

結論

在我們這個步履匆匆而又相互關聯的世界裏,大數據就是王道,在我們對海量數據進行處理和分析時,明白安全的重要性至關重要。這要從弄懂數據及相關的安全性原則開始,也要明白組織的安全性原則,並知道如何強制執行。本文介紹了Hadoop的安全簡史,重點講了常見的安全問題,並介紹了Rhino項目,給出了一個未來的快照。

關於作者

凱文T.史密斯是Novetta解決方案應用任務方案分部的科技方案及推廣指導,他負責向客戶提供戰略性的科技領導力,開發具有創新性的、數據為本並且高度安全的解決方案。他經常在各種科技會議上演講,發表過很多技術文章,還編寫過許多科技書籍,包括即將出版的《專業Hadoop解决方案》,以及《應用SOA:面向服務的架構及設計策略》,《語義Web:XML,Web服務及知識管理的未來發展指南》等等。可以通過[email protected]聯系到他。

致謝

特別感謝Stella Aquilina,Boris Lublinsky,Joe Pantella,Ralph Perko,Praveena Raavicharla,Frank Tyler和Brian Uri對本文的審閱和部分內容的評論。此外還要感謝克裏斯·貝利製作了不斷發展的Hadoop大象之“艾比路”這幅插圖。

1 Ponemon研究所,2013數據洩露的成本研究:全球分析,2013年5月

2 商業內幕,PlayStation網絡危機可能讓索尼花費了數十億

3 請參見“CNN/Money–5數據洩露–從尷尬到致命”,及維琪百科上關於AOL在匿名化記錄上洩漏的研究數據的頁面

4 Ponemon研究所,“你的公司為大數據洩漏做好準備了嗎?”,2013年3月

查看英文原文:Big Data Security: The Evolution of Hadoop’s Security Model

譯文:infoq