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