劉海衛(wèi)
【摘要】? ? 大數(shù)據(jù)產(chǎn)業(yè)是目前國家信息產(chǎn)業(yè)的重點發(fā)展方向。越來越多的單位和企業(yè)都開始使用大數(shù)據(jù)系統(tǒng)存儲重要且敏感的數(shù)據(jù),這些數(shù)據(jù)是企業(yè)長期積累的財富,必須嚴密保護。但是大數(shù)據(jù)系統(tǒng)也帶來了全新的安全挑戰(zhàn),如果不能很好的應(yīng)對這個挑戰(zhàn),企業(yè)的數(shù)據(jù)就會面臨巨大的風險,勢必會影響人們使用大數(shù)據(jù)系統(tǒng)的信心。
【關(guān)鍵詞】? ? hadoop安全? ? 大數(shù)據(jù)安全? ? 計算機集群安全? ? 組件安全
一、Hadoop面臨的安全挑戰(zhàn)
大數(shù)據(jù)產(chǎn)業(yè)是目前國家信息產(chǎn)業(yè)的重點發(fā)展方向。越來越多的單位和企業(yè)都開始使用大數(shù)據(jù)系統(tǒng)存儲重要且敏感的數(shù)據(jù),這些數(shù)據(jù)是企業(yè)長期積累的財富,必須嚴密保護。但是大數(shù)據(jù)系統(tǒng)也帶來了全新的安全挑戰(zhàn),如果不能很好的應(yīng)對這個挑戰(zhàn),企業(yè)的數(shù)據(jù)就會面臨巨大的風險,勢必會影響人們使用大數(shù)據(jù)系統(tǒng)的信心。
Hadoop集成了數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)分析、數(shù)據(jù)展示等各方面的多個組件,是目前最常用的處理大數(shù)據(jù)的架構(gòu)。但hadoop的安全性是比較差的,因為hadoop設(shè)計初衷是為搜索引擎建立網(wǎng)頁索引,本來是在企業(yè)內(nèi)部可信環(huán)境下使用的,安全并不是其重點考慮的問題,加上hadoop服務(wù)組件眾多,所以hadoop平臺天生就有認證分散,弱授權(quán)、弱審計且分散的特點,給安全工作帶來很大的不便。它面臨的安全風險主要體現(xiàn)在以下幾個方面:
1.具有集群規(guī)模大、內(nèi)部互信度高的特點,集群內(nèi)部機器存在SSH免密登錄的問題,因此只要集群內(nèi)部一臺機器被入侵,往往整個集群都淪陷。2.系統(tǒng)是為了數(shù)據(jù)共享,所以是開放的,與之交互的外部應(yīng)用系統(tǒng)和用戶也可能是動態(tài)變化的,這會給大數(shù)據(jù)系統(tǒng)認證和權(quán)限管理帶來很大麻煩。3.系統(tǒng)組件多,且各個組件弱認證、弱授權(quán)、弱審計,存在著很大的安全風險。4.系統(tǒng)內(nèi)部能夠動態(tài)擴容,新加入的機器也可能會帶來新的安全隱患。5.系統(tǒng)的存儲、傳輸都采用明文形式,很容易造成信息泄露。
二、Hadoop安全防護研究
針對hadoop集群規(guī)模大機器多、內(nèi)部互信度高(存在SSH免密登錄)的特點,我們設(shè)計了封閉的大數(shù)據(jù)集群安全架構(gòu)。用戶不能直接訪問大數(shù)據(jù)集群的任何一臺設(shè)備和服務(wù),所有服務(wù)都通過映射關(guān)系在安全系統(tǒng)上提供接口給用戶,也就是說必須通過安全系統(tǒng)才能訪問大數(shù)據(jù)里的服務(wù)。這樣大數(shù)據(jù)集群里的任何一臺機器都不會直接暴露在攻擊者面前,避免了一臺機器有漏洞被入侵導致整個集群被控制的情況出現(xiàn)。
hadoop集群各個服務(wù)組件用戶認證不統(tǒng)一,而且有的服務(wù)根本不需要認證,在集群規(guī)模不斷變化的情況下很容易造成身份認證管理的混亂,給集群的易用性和安全性帶來很大風險。我們需要提供統(tǒng)一身份認證,解決了身份認證管理的混亂的問題,大大提高了集群的安全性和易用性。
hadoop大數(shù)據(jù)集群各個服務(wù)組件有多個不同訪問方式,由于入口眾多,給用戶審計帶來了很大的麻煩,往往只有部分組件的單獨審計,無法做到全面審計。我們需要實現(xiàn)全面審計,清晰的展現(xiàn)出哪個用戶在什么時間訪問了哪個服務(wù),進行了什么操作,結(jié)果如何,并提供統(tǒng)一的界面查詢。
三、大數(shù)據(jù)安全桶架構(gòu)和實現(xiàn)原理
系統(tǒng)架構(gòu)圖如下:
大數(shù)據(jù)安全桶從架構(gòu)上分為以下幾個模塊:
3.1數(shù)據(jù)代理模塊
是用戶和大數(shù)據(jù)信息交互的橋梁,將外部的用戶訪問請求轉(zhuǎn)發(fā)給大數(shù)據(jù)集群,然后將大數(shù)據(jù)集群的響應(yīng)重寫后返回給用戶。
數(shù)據(jù)代理模塊是整個解決方案的核心模塊,它是用戶訪問大數(shù)據(jù)集群的入口,用戶不能直接訪問大數(shù)據(jù)集群的任何一臺設(shè)備和服務(wù),只能通過代理模塊才能訪問,這樣就實現(xiàn)大數(shù)據(jù)平臺的邊界安全控制,實現(xiàn)了封閉的大數(shù)據(jù)集群安全架構(gòu)。
代理模塊提供了RESTFUL API和WEB UI訪問接口,接管所有用戶請求(如WEB UI訪問、HDFS內(nèi)容查看、Hive/HBase數(shù)據(jù)操作等),并把大數(shù)據(jù)集群組件返回的響應(yīng)轉(zhuǎn)發(fā)給用戶。代理模塊使用TLS加密傳輸協(xié)議,確保用戶數(shù)據(jù)在傳輸過程中不會被非法竊取。
數(shù)據(jù)代理模塊還通過其他模塊一起為用戶提供身份認證,訪問授權(quán)和應(yīng)用訪問審計功能。比如通過身份管理模塊接口為用戶提供身份認證功能,通過訪問控制模塊提供細粒度的訪問權(quán)限控制,為大數(shù)據(jù)應(yīng)用審計系統(tǒng)提供用戶請求記錄。
數(shù)據(jù)代理模塊還可以根據(jù)規(guī)則過濾掉不正常的數(shù)據(jù)流,防止惡意用戶對大數(shù)據(jù)集群的攻擊。
3.2賬戶管理和認證模塊
集中保存了大數(shù)據(jù)集群的用戶身份信息,并提供身份認證功能。
賬戶管理和認證模塊統(tǒng)一管理整個平臺的用戶及應(yīng)用賬號,采用LDAP技術(shù),提供LDAP目錄訪問協(xié)議接口,解決方案的其他各個模塊可以通過接口進行用戶身份認證和獲取用戶賬號信息。
LDAP這種輕量級目錄訪問方式共享認證已成為一種行業(yè)標準,大多數(shù)系統(tǒng)均支持LDAP的認證方式,例如kerberos、knox、Ranger。
LDAP主要特點:1.簡單;2.樹形結(jié)構(gòu);3.有權(quán)限控制(ACL);4.schema來控制數(shù)據(jù)結(jié)構(gòu);5.可以安全訪問(STLS或者SSL);6.有簡單的LDAP語法。
采用LDAP方式為以后系統(tǒng)擴展提供了方便。
3.3訪問控制模塊
對用戶訪問權(quán)限進行控制,決定用戶能訪問集群里的哪些服務(wù)。
訪問控制模塊提供細粒度的訪問權(quán)限控制,決定用戶對集群中各個資源有什么類型的操作權(quán)限。
訪問控制模塊主要由以下三個部分構(gòu)成:
Server: 以RESTFUL形式提供策略的增刪改查接口,同時內(nèi)置一個Web管理頁面。
Plugin: 嵌入到各系統(tǒng)執(zhí)行流程中,定期從Server拉取策略,根據(jù)策略決定用戶請求是否放行。
UserSync: 定期從平臺身份管理系統(tǒng)的LDAP接口中加載用戶,上報給Server,實現(xiàn)用戶身份的統(tǒng)一管理。
3.4審計模塊
記錄和展示用戶的對大數(shù)據(jù)集群訪問信息,為統(tǒng)計、追溯提供依據(jù)。
審計模塊主要是審計外部用戶訪問大數(shù)據(jù)系統(tǒng)產(chǎn)生的日志,為用戶畫像等功能提供原始分析數(shù)據(jù)。
審計模塊采用大數(shù)據(jù)分析技術(shù)架構(gòu),針對Apache Hadoop, Hive, HBase, Storm, Solr, Kafka, YARN, Spark, ElasticSearch等大數(shù)據(jù)應(yīng)用操作。
在大數(shù)據(jù)共享開放平臺日常業(yè)務(wù)運行及安全維護中會產(chǎn)生大量的數(shù)據(jù),其中包含了大量的有用信息,審計模塊通過采集各個組件運行過程中產(chǎn)生的數(shù)據(jù),基于強大的關(guān)聯(lián)分析引擎,提供全維度、跨設(shè)備、細粒度的關(guān)聯(lián)分析,還原事件背后的信息,為客戶提供真正可信賴的系統(tǒng)現(xiàn)狀和事件追責依據(jù)。協(xié)助用戶全面審計大數(shù)據(jù)系統(tǒng)整體安全狀況。平臺的數(shù)據(jù)也可為后續(xù)的用戶畫像等應(yīng)用提供數(shù)據(jù),提高相關(guān)工作的準確性和效率。
3.5WEB控制臺
大數(shù)據(jù)安全桶的用戶交互界面。主要提供以下功能:
用戶認證:提供用戶名和密碼輸入框用于身份認證,提供導航鏈接訪問各個組件WEB UI管理界面,還提供連接手冊通過API方式訪問組件。
統(tǒng)計儀表盤:通過儀表盤展示目前受保護的集群數(shù)量、集群內(nèi)服務(wù)組件數(shù)量、本日會話、本日訪問、本日有效攻擊數(shù)量等信息。
訪問統(tǒng)計:通過趨勢圖和餅圖的方式展示一周訪問量趨勢、一周會話量趨勢、一周集群訪問TOP5、一周用戶訪問TOP5、一周服務(wù)訪問TOP5等信息。
攻擊記錄:列出對集群的攻擊行為,可顯示攻擊發(fā)生時間,攻擊名稱,被攻擊的集群等信息。
系統(tǒng)配置:提供添加、修改、刪除用戶,訪問授權(quán)等管理功能。
四、大數(shù)據(jù)安全桶的操作流程
4.1用戶使用流程
用戶要訪問大數(shù)據(jù)集群,首先登錄大數(shù)據(jù)安全桶進行身份認證。在安全桶系統(tǒng)里,用戶可以看到自己能訪問的集群和組件,然后點擊組件旁邊的按鈕就能訪問對應(yīng)組件的WEB UI。點擊組件旁邊的另一個按鈕可以看到該組件REST API訪問方法,包括路徑、用戶名密碼等,用戶可以根據(jù)提示使用API跟大數(shù)據(jù)集群的組件進行交互。
4.2大數(shù)據(jù)安全桶管理流程
管理員首先通過身份認證進入安全桶系統(tǒng),在安全桶里,管理員可以添加要保護的集群,集群包括節(jié)點和組件的信息,配置安全桶和大數(shù)據(jù)集群各組件的映射關(guān)系。添加要訪問大數(shù)據(jù)集群的用戶,并設(shè)置這些用戶的訪問權(quán)限。配置好后,用戶就能使用賬號登陸安全桶訪問大數(shù)據(jù)集群了。
4.3大數(shù)據(jù)安全桶監(jiān)控流程
安全人員登錄大數(shù)據(jù)安全桶進行身份認證,在安全桶主頁上通過圖表等形式展示各集群、組件的訪問情況,以及黑客對大數(shù)據(jù)集群嘗試攻擊情況。通過審計頁面可以查詢用戶訪問大數(shù)據(jù)集群的詳細數(shù)據(jù)。
五、大數(shù)據(jù)安全桶部署方式
部署主要分為兩個步驟:
首先封閉整個大數(shù)據(jù)集群,集群里的每個節(jié)點外部都不可訪問,這樣每個節(jié)點即使有漏洞也不會直接暴露在攻擊者面前,大大提高了整個系統(tǒng)的安全性。
然后部署大數(shù)據(jù)安全桶系統(tǒng),將安全桶與大數(shù)據(jù)集群聯(lián)通,使安全桶成為訪問大數(shù)據(jù)集群的唯一通道。我們在安全桶上集成了用戶認證、訪問控制、訪問審計、集群內(nèi)部監(jiān)控等安全功能。用戶在安全桶上就能實現(xiàn)整個集群的安全加固和審計監(jiān)控。
大數(shù)據(jù)安全桶分LDAP用戶帳號管理服務(wù)器,大數(shù)據(jù)安全網(wǎng)關(guān)模塊、web交互頁面服務(wù)三個部分組成。三部分可以部署到同一臺服務(wù)器上,也可以分開部署,通過網(wǎng)絡(luò)相互通信。
LDAP服務(wù)器是目前比較常用的身份認證系統(tǒng),多個應(yīng)用系統(tǒng)可以通過LDAP實現(xiàn)統(tǒng)一身份認證,大數(shù)據(jù)安全桶采用LDAP實現(xiàn)一個或多個安全網(wǎng)關(guān)模塊的身份認證。
安全網(wǎng)關(guān)模塊是安全桶的核心模塊,預(yù)留了多個安全網(wǎng)關(guān)并聯(lián)部署的接口。
web交互頁面服務(wù)為大數(shù)據(jù)安全桶提供用戶交互頁面,用戶通過web頁面使用安全桶提供的各項功能。
安裝好大數(shù)據(jù)安全桶后,先將hadoop集群與外界阻斷,只有安全網(wǎng)關(guān)模塊可以訪問集群,然后通過安全桶的集群管理功能添加集群和組件,并建立各個組件的映射關(guān)系。最后可能要修改下用戶原來的連接URL,因為原來的通路已阻斷,必須通過安全桶訪問。