莊永章
(福建對外經濟貿易職業技術學院,福建 福州 350016)
Hadoop是一種云計算框架,由Apache基金會開發。Hadoop主要的功能是實現云計算平臺的自行管理與云計算應用程序的自行分發。Hadoop平臺在工業界與學術界得到了非常廣泛的應用,有著廣闊的發展前景。但是,Hadoop在安全機制方面存在的問題影響了其進一步推廣。
傳統網絡安全問題主要是欺騙、后門、入侵、拒絕服務、滲透、重放、病毒、木馬、蠕蟲、抵賴、竊聽、偽裝和修改等。在傳統的通信網絡中針對存在的這些安全問題都存在著相應的安全機制,主要包括以下六個方面:訪問控制、電磁泄漏控制、完整性保障信息隱蔽、網絡防御策略和身份認證。
比起傳統安全環境云計算環境具有網絡化與虛擬化的特點,云計算的安全問題更加突出,除了傳統安全問題外,同時還出現較多新的安全問題。具體表現在:
(1)用戶對于自身存儲在云中的數據失去了絕對管理權;云計算提供商擁有的權限過大,用戶數據完全暴露。
(2)傳統的物理與邏輯安全域劃分的數據保護方式在云計算環境中不能夠發揮作用,導致不同用戶與安全等級的數據全部都在相同的介質中經常存放,加大了安全防護體系的壓力。
(3)云計算模型中主要是由服務器負責相關業務處理,如果服務端關鍵節點受到攻擊,很可能會導致大范圍服務癱瘓。
Hadoop被設計用來在大型集群上執行分布式應用。它實現了包括分布式文件系統 (Hadoop Distributed File System,HDFS)和MapReduce計算模型在內的基礎架構。
HDFS所采用的構架模型為主/從模型,所采用的模式為中心控制模式。在一個集群中,“主”為NameN-ode,數量為一個;“從”為 DataNode,數量可擴展。NameNode中存放了HDFS文件系統的元數據,數據被組織成Block,在NameNode中的Block ID,與相應的DataNode之間主要保持著映射的關系。假如客戶機在得到元數據記錄之后就會與DataNode實現直接的通信。而DataN-ode實際上就是“從”服務器,主要的功能就是對客戶機中發來的各種讀寫、刪除、復制等請求進行響應。
MapReduce所采用的結構模型依舊為主/從模型,其中“主”為JobTracker,數量為一個;在“從”中包括若干個TaskTracker服務器。應用程序任務通過客戶端中的JobClient類實現分解,分解完成之后,借助RPC機制將應用程序和對應參數提交給JobTracker并存入HDFS中。隨后JobClient將應用程序在HDFS中的位置提交給JobTracker運行程序,從而實現Map-Reduce計算模型。
Hadoop設計初期沒有考慮安全問題,默認集群內所有的節點都是值得信賴的,不會出現惡意攻擊的現象,這樣就讓Hadoop在安全方面出現以下問題:
(1)缺乏對用戶及服務器的安全認證機制,導致用戶冒充、非法訪問、惡意提交、隨意修改等問題層出不窮。此外,在對DataNode、TaskTracker服務器進行認證的過程中同樣缺乏認證機制,導致攻擊者能夠利用這些漏洞對NameNode和JobTracker中發布的數據、任務等進行截取。
(2)在用戶得知Block ID對DataNode進行訪問并讀取Block數據塊的過程中缺乏相應的安全授權機制,導致用戶在該過程中可以不通過認證與授權,對數據進行隨意的修改或者刪除。
(3)在Master和Slave、Client之間,以及和服務器之間,傳輸數據的時候并不經過加密處理,導致傳輸的過程中容易被竊取,存在不安全的問題。
(1)HDFS中存在的安全機制
HDFS在進行身份驗證的過程中采用的是Kerberos,該協議主要包括兩個部分:第一部分,客戶端將身份信息發送到密鑰分配中心(KDC)中,KDC在接收到客戶端的身份信息之后,會把ticket-granting ticket(TGT)通過密鑰(Client與KDC在協議之前協定的密鑰)進行加密,然后向客戶端回復。第二部分,客戶端Client通過TGT向KDC對其他的Service的Ticket發出請求命令,并且鑒別其他Service的身份。
Hadoop采用單點登錄的策略來確保Kerberos的性能,通過一次的認證之后就能夠對相互之間信任的多個服務器進行訪問。在Kerberos的身份認證通過之后,通信安全主要是有令牌Token的分發來維持的。
分析可知,Kerberos身份認證機制是一種對稱加密。但是,Hadoop平臺并沒有形成這樣的認證功能,在進行身份認證的時候,平臺需要借助于一些外圍設備,例如KDC等。HDFS在對訪問進行控制的過程中,所采用的是基于ACL的訪問控制策略。HDFS對文件和目錄的訪問控制模型和Linux相似,分為讀與寫、執行功能。
(2)MapReduce中存在安全機制
MapReduce在追蹤Job提交,以及Job運行狀態的時候,所采用的主要是RPC。當合法的用戶在對作業Job進行提交的過程中,RPC中所包含的JobTracker就會針對作業生產Delegation Token,而在整個作業Job進行處理的時間中,該Delegation Token都是有效的。在作業Job中的所有Task任務進行啟動的過程中,都是通過用戶的身份來完成的,從而避免用戶之間出現不必要的干擾。Hadoop要確保其他用戶在Map Task運行結束之后不能夠對Map Task的中間結果進行獲取。MapReduce在對訪問控制的過程中主要是依靠ACL,管理員能夠在文件進行配置的過程中對User和Group列表及其所對應的權限進行訪問。
(1)KDC對系統性能存在影響。Hadoop中所采用的身份驗證是以Kerberos為基礎的,在Hadoop的所有認證中都需要使用KDC。假如在短時間內Kerberos服務器收到內集群較多數量的票據請求的時候,就會導致KDC的負載在短時間內激增,對系統的性能造成影響。
(2)訪問控制策略比較簡單。ACL本身就是一種簡單策略,并不能夠滿足安全控制方面的更多需求。
(3)Hadoop中并沒實現對數據進行存儲保護的問題。而且在數據的存儲方面并沒有實現隔離,所有的數據都存儲在同一個介質中。
(1)使用PKI身份認證機制
針對KDC在身份認證方面存在的局限性,通過PKI身份認證機制的使用能夠加以解決。PKI的身份認證機制的認證過程包括:第一步,CA對申請者的身份進行核實,核實完成之后向合法節點頒發數字證書;第二步,驗證方將數字證書進行發送,完成申請者身份的驗證。
(2)采用數字信封技術實現傳輸加密
借助數字信封的技術,可以對傳輸內容加密,并且可以借助增加模塊和相應的密碼設備,讓加密算法用硬件實現。
(3)采用密碼算法實現存儲加密
在云端數據中心對數據進行保護的過程中,可以通過采用密碼算法實現數據的存儲加密工作,實現對數據的保護。
隨著大數據的興起,云計算技術成為業界的研究熱點。Hadoop計算框架讓使用者擺脫復雜的環境配置專注于應用本身。本文主要對Hadoop的安全問題進行探討,并提出了相應的改進辦法。
[1]黎宏劍,劉恒,黃廣文,卜立.基于Hadoop的海量電信數據云計算平臺研究[J].電信科學,2012(8):80-85.
[2]蔣寧,李文,李鴻彬.基于Hadoop的云計算輔助教學平臺研究[J].中國遠程教育,2012(9):79-82.
[3]朱劭,崔寶江.基于SAML的Hadoop云計算平臺安全認證方法研究[J].信息網絡安全,2013(12):1-5.
[4]張學亮,陳金勇,陳勇.基于Hadoop云計算平臺的海量文本處理研究[J].無線電通信技術,2014(1):54-57.
[5]陳敬森.基于虛擬化的云計算平臺中安全機制研究[J].計算機光盤軟件與應用,2014(2):168-169.