閱讀495 返回首頁    go 阿裏雲 go 技術社區[雲棲]


還在用Hadoop麼?Hadoop服務器造成5PB數據泄露,中國、美國受波及最大!

根據John Matherly的說法,不適當地配置HDFS服務器——主要是Hadoop安裝——將會泄露超過5PB的信息。John Matherly是用於發現互聯網設備的搜索引擎Shodan的創始人。


這位專家說,他發現了4487個HDFS服務器實例,這些服務器可通過公共IP地址獲得,而且不需要身份驗證。這些服務器總共泄露了超過5120TB的數據。

Hadoop服務器造成5PB數據泄露,中國、美國受波及最大

▲HDFS係統泄露地圖

據Matherly說,47820個MongoDB服務器隻泄露了25 TB的數據。從這個角度來看,與MongoDB服務器相比,HDFS服務器泄露的數據要多200倍,而與此同時,MongoDB服務器的數量是後者的10倍。Binary Edge於2015年公布的一份報告顯示,在當時,Redis、MongoDB、Memcached和ElasticSearch服務器的數據隻泄露了1.1 PB的數據。


大多數HDFS係統位於美國和中國

泄露最多HDFS實例的國家是美國和中國,但這並不奇怪,因為這兩個國家擁有世界上超過50%的數據中心。

今年早些時候,攻擊者意識到他們可以接管為受保護的服務器,在網絡上泄露、竊取他們的內容,請要求贖金。黑客攻擊首先針對的是MongoDB,但很快就轉移到了CouchDB和Hadoop。


最初的時候,有124個服務器遭受勒索,這個數字最近增長到了500個。根據Matherly的說法,仍然有207個基於hdfs的集群有贖金要求,不過我們不清楚這些是不是今年1月襲擊的遺留問題,還是現下仍然有服務器正被劫持。



針對這次Hadoop數據泄露事件,阿裏雲給出的企業級海量數據安全存儲解決方案是,通過阿裏雲數加MaxCompute (原名:ODPS;https://www.aliyun.com/product/odps存儲、加工企業數據;


阿裏雲數加MaxCompute(原名ODPS)設計之初就是麵向多租戶,確保租戶的數據安全是MaxCompute的必備功能之一。在MaxCompute係統的安全設計和實現上,MaxCompute的工程師們會遵循一些經過實踐檢驗的安全設計原則(如Saltzer-Schroeder原則)。在常用密碼算法及安全協議的設計和實現上,也會遵循業界相關標準(如PKCS-及FIPS-係列標準),並堅持最佳安全實踐。


這裏從如下幾個方麵來解刨一下MaxCompute的安全特性,讓關心MaxCompute數據安全的讀者有一個基本的了解。更多產品信息請訪問https://www.aliyun.com/product/odps 。

1. API認證

認證是一個服務的安全入口。MaxCompute認證采用業界標準的API認證協議來實現,如HmacSHA1。MaxCompute還提供HTTP和HTTPS兩種的EndPoint以滿足用戶對認證安全的不同要求。HTTP EndPoint是明文傳輸,那麼HmacSHA1認證隻能保證消息請求的真實性(Authenticity)和完整性(Integrity),適合於對數據安全不太敏感的用戶。HTTPS EndPoint則能提供更多的安全性,比如信道加密,抗重放攻擊等。適合於對數據安全比較敏感的用戶。

2. 訪問控製

當你創建項目空間後,你就是項目空間的owner。一個項目空間隻有一個owner,隻有owner對項目空間有完全控製權限。你可以上傳/下載數據、提交SQL進行數據處理。在沒有你的授權的情況下,任何其他用戶都無權訪問你的項目空間。 注意,MaxCompute平台並沒有超級管理員的角色,所以MaxCompute的開發、測試、運維同學都是沒有權限看到用戶數據的。有人會問了,通過MaxCompute背後的運維管理控製台也不能訪問用戶數據嗎?的確不能。運維同學隻有在獲得內部授權之後,可以通過該控製台來執行一些運維管理類操作,比如停止一個有惡意行為的用戶作業,但該控製台沒有操作用戶數據的權限。

MaxCompute產品麵向的是企業級用戶,所以提供了豐富的項目空間內的用戶管理及授權功能,有興趣的同學可以參考MaxCompute用戶手冊中的相關章節。MaxCompute訪問控製粒度非常精細,比如你可以授權一個用戶隻能讀某個table的部分columns,並且可以要求該用戶隻能在某個時間範圍內、而且必須從指定的某些IP地址來進行訪問。換句話說,一個企業主可以做到隻允許其員工在公司內、在正常上班時間才能訪問數據,下班回家就不允許訪問了。

3. 數據流控製

MaxCompute設計之初就是要滿足數據分享(或數據交換)的場景。所以,隻要有授權,用戶就可以非常方便的進行跨項目空間的數據訪問。比如,在獲得相應的訪問權限之後,項目空間A中的作業可以直接處理項目空間B中的數據,而不必事先將數據從項目空間B中複製到項目空間A。

數據保護有兩層含義,一是防止未授權的數據訪問;二是防止獲得授權的用戶濫用數據。很多商用係統並不提供後一種數據安全保證。但在MaxCompute平台上,用戶的這種擔憂比較明顯:用戶希望能確保對自己的數據擁有控製權,而一旦授權他人讀取,他人就可能會做複製數據,那麼就相當於失去了對數據的控製權。

MaxCompute通過支持數據流控製來防止跨項目空間的數據複製。如果你想確保項目空間中的所有數據都不允許流出去,那麼你可以打開項目空間的數據流控設置。你還可以設置項目空間的數據保護策略,以限製哪些數據可以流出到哪些項目空間。

4. 用戶作業的隔離運行

MaxCompute支持用戶提交各種類型的作業(如SQL/XLib/MR)。為了確保不同用戶作業在運行時互不幹擾,MaxCompute將用戶作業的Worker進程運行在飛天 Container沙箱中。如果用戶作業含有Java代碼(比如UDF),那麼飛天Container沙箱中的Worker進程啟動JVM時,還會設置嚴格的Java 沙箱策略以限製UDF的運行時權限。

5. 作業運行時使用最小權限

最小權限原則是係統安全和容錯設計的一個基本指導原則,即讓每個任務在運行時使用剛好滿足需要(不多也不少)的權限來執行。

MaxCompute的作業運行過程一般是這樣:用戶提交的SQL/XLib/MR作業會被調度到某一計算集群上運行,運行時每個作業一般對應一組並行跑的Worker進程,Worker進程一般會從數據集群上讀數據、處理完成後最終會將數據寫回到數據集群。舉個例子來理解MaxCompute是如何遵循最小權限原則的。我們假設用戶Alice被授權讀訪問一個項目空間下t1和t2兩個table數據,但她提交的某個SQL隻需要讀t1的數據。在MaxCompute中,這個SQL對應的Worker進程在運行時就隻能讀t1對應的底層數據文件,而不會有更多的數據訪問權限。

MaxCompute最小權限是依賴於底層的飛天分布式操作係統提供的Kerberos認證和Capability訪問控製來實現的。Kerberos認證用於解決飛天底層服務模塊之間的身份認證,Capability則用於解決底層服務模塊之間的訪問控製技術。這與上層MaxCompute所提供的認證和訪問控製是完全正交的安全機製,對MaxCompute用戶是完全透明的。

6. 數據訪問審計

MaxCompute還提供精準的、細粒度的數據訪問操作記錄,並會長期保存。MaxCompute平台體係所依賴的功能服務模塊非常之多,我們可以把它稱之為底層服務棧。對於數據操作記錄來說,MaxCompute會收集服務棧上的所有操作記錄,從上層table/column級別的數據訪問日誌,一直到底層分布式文件係統上的數據操作日誌。最底層分布式文件係統上處理的每一次數據訪問請求,也都能追溯到是最上層的哪個項目空間中的哪個用戶的哪個作業發起的數據訪問。

有了服務棧上的各層操作審計之後,即使是內部攻擊者(工程師或滲透到內部係統中的黑客)想從內部(繞過MaxCompute服務)直接訪問底層分布式文件係統上的用戶數據的話,也一定是可以從操作日誌中被發現的。所以,通過數據訪問審計,用戶就可以準確的知道他在MaxCompute上的數據是否存在未授權的數據訪問。

7. 風險控製

除了不同層麵的防禦機製之外,MaxCompute產品還會提供一套安全監控係統,用於監控用戶作業及用戶數據的安全活動,如AccessKey濫用,項目空間安全配置不當,用戶代碼運行時觸犯安全策略,以及用戶數據是否遭受異常訪問等。

安全攻擊防不勝防,所以MaxCompute會通過安全監控手段來及時發現問題,一旦發現安全問題則會啟動相應的處理流程,盡可能將用戶損失降到最低。


結語:雖然沒有絕對的安全,但安全性在MaxCompute產品設計和實現中享有最高優先級。MaxCompute團隊已經匯聚了多領域的安全專家,以保障用戶數據安全。同時,我們歡迎更多安全專家的加入,共同增強MaxCompute的數據安全。


購買&試用MaxCompute,請掃二維碼加入釘釘群。

745bc16034148d4c04c2bb44ec5275be0021f412


相關MaxCompute安全專題:

最後更新:2017-06-06 07:31:36

  上一篇:go  論文導讀:麵向卷積神經網絡的卷積核冗餘消除策略
  下一篇:go  Java應用頻繁FullGC分析