伴隨互聯(lián)網(wǎng)的高速發(fā)展,大數(shù)據(jù)成為炙手可熱的時(shí)髦產(chǎn)物。隨之而來(lái)的是關(guān)于大數(shù)據(jù)的存儲(chǔ)與計(jì)算問(wèn)題。作為能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架——Hadoop目前已經(jīng)發(fā)展成為分析大數(shù)據(jù)的領(lǐng)先平臺(tái),它能夠以一種可靠、高效、可伸縮的方式進(jìn)行數(shù)據(jù)處理。
一、Hadoop生態(tài)圈的形成
大數(shù)據(jù)是個(gè)寬泛的問(wèn)題,而Hadoop生態(tài)圈是最佳的大數(shù)據(jù)的解決方案。Hadoop生態(tài)圈的所有內(nèi)容基本都是為了處理超過(guò)單機(jī)范疇的數(shù)據(jù)而產(chǎn)生的。
HDFS&MapReduce
在最開(kāi)始階段Hadoop只包含HDFS(Hadoop Distributed FileSystem)和MapReduce兩個(gè)組件。HDFS的設(shè)計(jì)本質(zhì)是為解決大量數(shù)據(jù)分別存儲(chǔ)于成百上千臺(tái)機(jī)器上的問(wèn)題,讓客戶看到的是一個(gè)文件系統(tǒng)而非很多文件系統(tǒng),屏蔽復(fù)雜的底層調(diào)用。好比用戶想要取/liusicheng/home/test1下的數(shù)據(jù),只需要得到準(zhǔn)確的路徑即可獲得數(shù)據(jù),至于數(shù)據(jù)實(shí)際上被存放在不同的機(jī)器上這點(diǎn)用戶根本不需要關(guān)心。HDFS幫助客戶管理分散在不同機(jī)器上的PG級(jí)數(shù)據(jù)。這些數(shù)據(jù)如果都放在一臺(tái)機(jī)器上處理,一定會(huì)導(dǎo)致恐怖的等待時(shí)間。于是,客戶選擇使用很多臺(tái)機(jī)器處理數(shù)據(jù)。
Hadoop的第二個(gè)重要組件MapReduce被設(shè)計(jì)用來(lái)解決對(duì)多臺(tái)機(jī)器實(shí)現(xiàn)工作分配,并完成機(jī)器之間的相互通信,最終完成客戶部署的復(fù)雜計(jì)算。至此第一代hadoop已經(jīng)具備了大數(shù)據(jù)管理和計(jì)算能力。
MapReduce計(jì)算模型雖然能用于很多模型,但還是過(guò)于簡(jiǎn)單粗暴,好用但笨重。為了解決MapReduce的這一缺陷,引入Tez和Spark使Map/Reduce模型更通用,讓Map和Reduce之間的界限更模糊,數(shù)據(jù)交換更靈活,更少的磁盤(pán)讀寫(xiě)以更方便描述復(fù)雜算法,取得更高吞吐量。
Pig&Hive
解決完計(jì)算性能問(wèn)題,就要往效率方面做努力,降低使用門(mén)檻。MapReduce的程序?qū)懫饋?lái)非常麻煩,用更高層、更抽象的語(yǔ)言層來(lái)描述算法和數(shù)據(jù)處理流程可以有效降低使用門(mén)檻,提高工作效率。于是,利用Pig接近腳本方式描述MapReduce,利用Hive把腳本和SQL語(yǔ)言翻譯成MapReduce程序,丟給計(jì)算引擎去計(jì)算。如此一來(lái),一般客戶也可以簡(jiǎn)單使用或維護(hù)hadoop了。
數(shù)據(jù)倉(cāng)庫(kù)
hadoop生態(tài)圈完成的數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)為:底層HDFS;上面跑MapReduce/Tez/Spark;再往上跑Hive,Pig。這種數(shù)據(jù)倉(cāng)庫(kù)可以解決中低速數(shù)據(jù)處理的要求,多用于歸檔數(shù)據(jù)分析??蛻粲行碌男枨?,需要數(shù)據(jù)倉(cāng)庫(kù)有更高的處理速度,來(lái)固定查詢某些特定值,給網(wǎng)站實(shí)時(shí)動(dòng)態(tài)變化提供數(shù)據(jù)。HBase、Cassandra和MongoDB等多種非關(guān)系型數(shù)據(jù)庫(kù),表現(xiàn)得比MapReduce要好很多,比如HBase會(huì)通過(guò)索引解決這個(gè)問(wèn)題,而MapReduce很可能要掃描整個(gè)數(shù)據(jù)集。
除了這些基本組件屬于hadoop生態(tài)外,分布式機(jī)器學(xué)習(xí)庫(kù)Mahout,數(shù)據(jù)交換的編碼庫(kù)Protobuf和高一致性分布存取協(xié)同系統(tǒng)ZooKeeper等也在hadoop生態(tài)中發(fā)揮著作用。這么多工具在同一個(gè)集群上運(yùn)轉(zhuǎn),調(diào)度系統(tǒng)Yarn就變得必不可少。上面組件僅是hadoop生態(tài)其中一部分,還有更多解決不同問(wèn)題或處理不同場(chǎng)景的其他組件存在。
二、Hadoop的安全問(wèn)題
回顧hadoop生態(tài)圈發(fā)展史,會(huì)發(fā)現(xiàn)hadoop中的所有產(chǎn)品都是根據(jù)不同用戶需求開(kāi)發(fā)。這就導(dǎo)致Hadoop生態(tài)圈中的產(chǎn)品缺乏共同的架構(gòu)和整體的考慮,安全性會(huì)完全依賴hadoop框架來(lái)提供。而hadoop最初開(kāi)發(fā)時(shí)并沒(méi)有考慮安全因素,當(dāng)時(shí)Hadoop的用例都是圍繞著如何管理大量的公共web數(shù)據(jù)來(lái)考慮的,沒(méi)有考慮數(shù)據(jù)的保密性和內(nèi)部的復(fù)雜權(quán)限管理。按照Hadoop最初的設(shè)想,它假定集群總是處于可信的環(huán)境中,由可信用戶使用的相互協(xié)作的可信計(jì)算機(jī)組成。這就導(dǎo)致整個(gè)Hadoop生態(tài)圈一度被暴露在安全的風(fēng)險(xiǎn)之下。Hadoop生態(tài)圈的安全風(fēng)險(xiǎn)大致分五類(lèi):
缺乏安全認(rèn)證;
缺乏權(quán)限控制;
缺乏關(guān)鍵行為審計(jì);
缺乏靜態(tài)加密;
缺乏動(dòng)態(tài)加密。
隨著hadoop在云上的廣泛運(yùn)用,很多公司對(duì)hadoop提出了安全應(yīng)對(duì)方案。如Yahoo提出的Kerberos體系解決安全認(rèn)證問(wèn)題、ACL解決訪問(wèn)控制問(wèn)題。具體到每個(gè)產(chǎn)品會(huì)采用不同的解決手段。討論解決方案之前,我們先詳細(xì)了解一下hadoop的五種安全隱患。
1、安全認(rèn)證
由于Hadoop中沒(méi)有用戶身份認(rèn)證機(jī)制,所以任何用戶都可以偽裝成為其他合法用戶,訪問(wèn)其在HDFS上的數(shù)據(jù),獲取MapReduce產(chǎn)生的結(jié)果,從而存在惡意攻擊者假冒身份,篡改HDFS上他人的數(shù)據(jù),提交惡意作業(yè)破壞系統(tǒng)、修改節(jié)點(diǎn)服務(wù)器的狀態(tài)等隱患;由于集群缺乏對(duì)Hadoop服務(wù)器的認(rèn)證,攻擊者假冒成為DataNode或TaskTracker節(jié)點(diǎn),加入集群,接受NameNode和JobTracker。一旦借助代碼,任何用戶都可以獲取 root 權(quán)限,并非法訪問(wèn) HDFS 或者 MapReduce 集群,惡意提交作業(yè)、修改 JonTracker 狀態(tài)、篡改 HDFS 上的數(shù)據(jù)等。
身份驗(yàn)證基本可以認(rèn)為是hadoop生態(tài)中最嚴(yán)重的安全問(wèn)題。不解決“你是誰(shuí)”的問(wèn)題?會(huì)給hadoop帶來(lái)冒充合法用戶和冒充服務(wù)節(jié)點(diǎn)兩大類(lèi)問(wèn)題。
較成熟的商業(yè)解決方法是通過(guò)Kerberos解決Hadoop身份認(rèn)證。Kerberos通過(guò)相互認(rèn)證的強(qiáng)認(rèn)證方式,防止竊聽(tīng)的網(wǎng)絡(luò)認(rèn)證協(xié)議。每一位用戶和服務(wù)都有一個(gè)主題屬性和憑證來(lái)完成所有的RPC用戶認(rèn)證。但如果客戶端和每個(gè)節(jié)點(diǎn)都要進(jìn)行Kerberos認(rèn)證,隨著節(jié)點(diǎn)的擴(kuò)展,KDC逐漸會(huì)成為整個(gè)系統(tǒng)的性能瓶頸。為了提高Kerberos的效率,加入委托令牌,利用對(duì)稱(chēng)加密的方式,共享密鑰根據(jù)令牌的類(lèi)型分布到成千上萬(wàn)個(gè)主機(jī),利用Kerberos憑證從名字節(jié)點(diǎn)獲得最初認(rèn)證后,客戶端獲得1個(gè)委托令牌,并將它傳遞給下一個(gè)在名字節(jié)點(diǎn)上進(jìn)行認(rèn)證的作業(yè)。但委托令牌自身也存在一定問(wèn)題。
hadoop推出了Kerberos+tokens的解決方式,但在實(shí)際使用中,由于不便利、不利于拓展性、降低效率等原因,并未廣泛應(yīng)用開(kāi)來(lái)。
2、權(quán)限控制
用戶只要得知數(shù)據(jù)塊的 Block ID 后,可以不經(jīng)過(guò) NameNode 的身份認(rèn)證和服務(wù)授權(quán),直接訪問(wèn)相應(yīng) DataNode,讀取 DataNode 節(jié)點(diǎn)上的數(shù)據(jù)或者將文件寫(xiě)入 DataNode 節(jié)點(diǎn),并可以隨意啟動(dòng)假的 DataNode 和 TaskTracker。
對(duì)于 JobTracker,用戶可以任意修改或者殺掉其他用戶的作業(yè),提高自身作業(yè)的優(yōu)先級(jí),JabTracker 對(duì)此不作任何控制。其中,無(wú)論是粗粒度的文件訪問(wèn)控制還是細(xì)粒度的ACL訪問(wèn)控制,都會(huì)或多或少?gòu)?qiáng)占hadoop集群內(nèi)部的資源??蓮耐獠吭谛袨樯线M(jìn)行額外的權(quán)限控制,尤其支持由hive的hadoop環(huán)境。只需要判hivesql語(yǔ)句的對(duì)象和當(dāng)前用戶的關(guān)鍵,就可以通過(guò)通訊阻斷等方式達(dá)到權(quán)限控制的目的。
3、審計(jì)
默認(rèn)hadoop缺乏審計(jì),可以通過(guò)hadoop系產(chǎn)品添加日志監(jiān)控來(lái)完成一部分審計(jì)功能。通過(guò)日志的記錄來(lái)判斷整個(gè)流程中是否存在問(wèn)題。這種日志的記錄缺乏特征的判斷和自動(dòng)提示功能。完全可以利用進(jìn)行改進(jìn)后的審計(jì)產(chǎn)品來(lái)進(jìn)行審計(jì),只審計(jì)客戶端的行為即可追查到惡意操作或誤操作行為。
4、靜態(tài)加密
默認(rèn)情況下Hadoop 在對(duì)集群HDFS 系統(tǒng)上的文件沒(méi)有存儲(chǔ)保護(hù),所有數(shù)據(jù)均是明文存儲(chǔ)在HDFS中,超級(jí)管理員可以不經(jīng)過(guò)用戶允許直接查看和修改用戶在云端保存的文件,這就很容易造成數(shù)據(jù)泄露。采用靜態(tài)加密的方式,對(duì)核心敏感數(shù)據(jù)進(jìn)行加密處理,使得數(shù)據(jù)密文存儲(chǔ),防止泄露風(fēng)險(xiǎn)。
5、動(dòng)態(tài)加密
默認(rèn)情況下Hadoop集群各節(jié)點(diǎn)之間,客戶端與服務(wù)器之間數(shù)據(jù)明文傳輸,使得用戶隱私數(shù)據(jù)、系統(tǒng)敏感信息極易在傳輸?shù)倪^(guò)程被竊取。解決動(dòng)態(tài)加密一般會(huì)提供一個(gè)附加的安全層。對(duì)于動(dòng)態(tài)數(shù)據(jù)而言,即傳輸?shù)交驈膆adoop生態(tài)系統(tǒng)傳送出來(lái)的數(shù)據(jù),利用簡(jiǎn)單認(rèn)證與安全層(SASL)認(rèn)證框架進(jìn)行加密,通過(guò)添加一個(gè)安全層的方式,保證客戶端和服務(wù)器傳輸數(shù)據(jù)的安全性,確保在中途不回被讀。
三、結(jié)語(yǔ)
Hadoop生態(tài)的安全問(wèn)題從2009年被眾多廠商重視后,相繼提出了很多解決方案。但大部分方案因?yàn)槟承┚窒扌圆](méi)有實(shí)際落地。能落地的主要是Yahoo提出的解決方案,此方案在實(shí)際落地中也存在諸多問(wèn)題。目前,Hadoop安全問(wèn)題已經(jīng)成功引起廣泛的關(guān)注,確保大型和復(fù)雜多樣環(huán)境下的數(shù)據(jù)安全,將是非常具有市場(chǎng)前景的宏大課題。
- 世間將再無(wú)松下電視:松下官宣解散家電子公司并徹底放棄電視機(jī)業(yè)務(wù)
- 雅迪集團(tuán)與南都電源簽署協(xié)議:攜手共繪固態(tài)電池未來(lái)藍(lán)圖
- 美媒聚焦比亞迪“副業(yè)”:電子代工助力蘋(píng)果,下個(gè)大計(jì)劃瞄準(zhǔn)AI機(jī)器人
- 微信零錢(qián)通新政策:銀行卡轉(zhuǎn)入資金提現(xiàn)免手續(xù)費(fèi)引熱議
- 消息稱(chēng)塔塔集團(tuán)將收購(gòu)和碩印度iPhone代工廠60%股份 并接管日常運(yùn)營(yíng)
- 蘋(píng)果揭秘自研芯片成功之道:領(lǐng)先技術(shù)與深度整合是關(guān)鍵
- 英偉達(dá)新一代Blackwell GPU面臨過(guò)熱挑戰(zhàn),交付延期引發(fā)市場(chǎng)關(guān)注
- 馬斯克能否成為 AI 部部長(zhǎng)?硅谷與白宮的聯(lián)系日益緊密
- 余承東:Mate70將在26號(hào)發(fā)布,意外泄露引發(fā)關(guān)注
- 無(wú)人機(jī)“黑科技”亮相航展:全球首臺(tái)低空重力測(cè)量系統(tǒng)引關(guān)注
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。