溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hadoop系統(tǒng)安全的知識點有哪些

發(fā)布時間:2021-12-10 11:30:05 來源:億速云 閱讀:157 作者:iii 欄目:網(wǎng)絡(luò)安全

這篇文章主要介紹“Hadoop系統(tǒng)安全的知識點有哪些”,在日常操作中,相信很多人在Hadoop系統(tǒng)安全的知識點有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hadoop系統(tǒng)安全的知識點有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

一、Hadoop基礎(chǔ)框架

在講安全之前,先要做個基礎(chǔ)普及。我猜國內(nèi)很多安全人員對Hadoop的框架完全不了解,或知道的很少。

Hadoop在應(yīng)用當(dāng)中,業(yè)務(wù)首要考慮的是性能擴(kuò)展、集群存儲擴(kuò)展,而在方法上主要依靠開源。了解Hadoop框架的意義在于,框架里的每個組件都存在潛在風(fēng)險。這個圖是Hadoop底層MapReduce系統(tǒng)的簡化視圖:


Hadoop系統(tǒng)安全的知識點有哪些

從這個圖你可以看到,Hadoop的擴(kuò)展性非常好,支持并行處理,提供可伸縮節(jié)點,也能對多租戶跨應(yīng)用進(jìn)行支持。但在安全上有個問題,這里每個node都是對等的,且互相通信,通信包括很多內(nèi)容,比如取保數(shù)據(jù)正確復(fù)制、node在線離線、存儲優(yōu)化等功能,但這也就是說,他們之間是互相信任的,這就是一個風(fēng)險。

MapReduce只是Hadoop底層一個分布式任務(wù)處理系統(tǒng),而整個Hadoop的框架是這樣的:


Hadoop系統(tǒng)安全的知識點有哪些

你也可以把它看成是類似LAMP堆棧,可以根據(jù)自己的業(yè)務(wù)情況添加組件。例如你用HBase來存儲數(shù)據(jù),以實現(xiàn)毫秒級的檢索,但對多字段的組合查詢卻比較弱,這時你可能就需要Solr來做組合查詢。用Sqoop來幫你從傳統(tǒng)關(guān)系型數(shù)據(jù)庫導(dǎo)數(shù)據(jù),用Pig來實現(xiàn)高級MapReduce功。Spark,Drill,Impala和Hive都可以用來做SQL查詢。所以整個Hadoop是靈活、定制、模塊化的。

靈活性帶來了復(fù)雜性,也給安全帶來了難度。每個模塊都有不同的版本、配置,甚至需要單獨的身份驗證,因此每個模塊都是風(fēng)險點。所以就有了Sentry,可以為整個Hadoop生態(tài)系統(tǒng)統(tǒng)一實現(xiàn)授權(quán),未來也許還有新的安全模塊出現(xiàn)。

二、系統(tǒng)安全

 在Hadoop的系統(tǒng)層面:

1、身份驗證和授權(quán)

基于角色的權(quán)限訪問控制(RBAC)是整個訪問控制的核心,RBAC就是把角色和權(quán)限進(jìn)行關(guān)聯(lián),這個關(guān)聯(lián)包括了角色、組、表、標(biāo)簽以及其他各種可用數(shù)據(jù)。認(rèn)證和授權(quán)在大型企業(yè)里,是需要跨團(tuán)隊的合作的,比如與SSO的集成是和IT打配合,數(shù)據(jù)字段密級的顆??刂坪蛿?shù)據(jù)平臺配合實現(xiàn)。Hadoop生態(tài)里,身份是個比較復(fù)雜的內(nèi)容,Hadoop在設(shè)計的時候就盡可能的與權(quán)威身份源松耦合,Hadoop默認(rèn)使用Kerberos作為認(rèn)證協(xié)議,但Kerberos對更高級的身份特征認(rèn)證支持是不夠的。

2、靜態(tài)數(shù)據(jù)保護(hù)

靜態(tài)數(shù)據(jù)的保護(hù)其實就是指加密,HDFS支持原生靜態(tài)加密,防止直接從磁盤讀取數(shù)據(jù)。但是敏感數(shù)據(jù)可不僅僅存在于HDFS層,日志、交換文件、消息隊列、元數(shù)據(jù)庫等其他地方也會有大量敏感數(shù)據(jù)存在。

3、多租戶

Hadoop通常都是為多租戶提供服務(wù),例如我所在的公司,租戶包括了不同的bg,也包括收購?fù)顿Y的公司,也有與外部合作的租戶。租戶之間的數(shù)據(jù)應(yīng)該隔離或者加密,有的公司用的ACL來控制,而在云端,多數(shù)是通過區(qū)域密鑰加密。

4、節(jié)點通信

舉例來說,Hadoop和MongoDB默認(rèn)是非安全通信方式,用的是基于TCP / IP,未加密的RPC。雖然提供了TLS和SSL,但是很少用在節(jié)點之間。

5、客戶端交互

Client是和resource manager、node之間交互的,見圖一。因此Client可以做出攻擊行為,比如惡意占用資源、利用漏洞攻擊。而Hadoop是一個分布型的架構(gòu),傳統(tǒng)上的防火墻之類的工具不適合。

6、分布式節(jié)點

有一句話很經(jīng)典,移動計算比移動數(shù)據(jù)便宜,數(shù)據(jù)在有資源的地方計算,從而實現(xiàn)大規(guī)模并行處理。分布式會讓環(huán)境更復(fù)雜,從而產(chǎn)生更多的攻擊面,補(bǔ)丁、配置管理、身份驗證、靜態(tài)數(shù)據(jù)保護(hù)、一致性都成為問題。

三、運營安全

除了系統(tǒng)安全之外,還有操作運維上的安全。運維一般都希望提供配置管理、補(bǔ)丁升級、策略維護(hù)之類的功能。而Hadoop之前是沒有這些東西的,就算是現(xiàn)在也缺少成熟的運營手段。在這部分存在的問題是:

1、身份驗證和授權(quán)

身份和身份驗證是安全的核心,在這方面Hadoop做了大量的集成,從最初不提供認(rèn)證,到集成LDAP,Active Directory,Kerberos、X.509,通過這些集成,可以基于角色映射授權(quán),也可以擴(kuò)展到更細(xì)粒度的授權(quán)(比如Apache Sentry),再到自定義。

2、特權(quán)訪問

在公司里,可能負(fù)責(zé)操作系統(tǒng)的是一個管理員,Hadoop是另一個管理員,他們都可以訪問集群的文件,所以需要分隔管理角色,把不必要的訪問限制到最低。對于直接訪問數(shù)據(jù),可以通過基于角色授權(quán)、訪問控制列表等的組合管理方式。對于管理角色則可以通過三權(quán)分立來分隔。再強(qiáng)一些,則是加密和密鑰管理,HDFS加密。

3、配置和補(bǔ)丁管理

集群可能有幾百個節(jié)點,對這些節(jié)點統(tǒng)一做配置和補(bǔ)丁管理是個難題,比如新增節(jié)點和原有節(jié)點配置不統(tǒng)一這類問題?,F(xiàn)有的配置管理工具都是在底層平臺上,NoSQL系統(tǒng)還沒有對應(yīng)的配置管理,另外市面上也沒有針對Hadoop做特定檢查的掃描器。

4、軟件依賴

Hadoop有很多不同組件,每個組件有自己的配置、補(bǔ)丁、驗證方式。好在Docker技術(shù)的出現(xiàn)從很大程度上可以緩解這個問題。

5、應(yīng)用和節(jié)點的身份驗證

如果攻擊者可以添加一個節(jié)點進(jìn)入集群,就可以滲透到數(shù)據(jù)層,這就直接繞過了身份認(rèn)證。通過節(jié)點進(jìn)一步拿到Kerberos密鑰表文件,則可以偽造身份。這時候則可以考慮證書,雖然證書部署會變得復(fù)雜一些,但提高了安全性。

6、日志審計

如果發(fā)生數(shù)據(jù)泄漏,能不能從日志上進(jìn)行追蹤?大數(shù)據(jù)環(huán)境里有一些開源工具可以用,比如Facebook開源的Scribe或者Logstash,日志可以存放在集群里面,不過這樣也有被篡改風(fēng)險,所以很多公司會考慮Splunk等專用平臺,把日志傳到其他平臺。Hadoop 里有很多組件,不同的日志格式,所以還需要做日志的聚合。另外僅有用戶、ip這些信息不夠,還要知道查詢語句是什么。

7、監(jiān)控和阻斷

最常見的場景,計算平臺資源不足,原因是某些熊孩子在平臺上跑了一些垃圾任務(wù)占用了資源。又或者你發(fā)現(xiàn)一個惡意查詢,這時候就得有手段阻止。Hadoop提供了一些監(jiān)控工具,這些工具一般是嵌入在Hive或Spark這樣的服務(wù)中,對惡意查詢進(jìn)行過濾。

四、架構(gòu)安全

從安全性來說,認(rèn)證、授權(quán)、加密、密鑰管理、日志審計,是整個架構(gòu)安全的基石,但把這些技術(shù)組合起來,如何部署和在哪里部署就十分重要了。下圖是系統(tǒng)安全層面風(fēng)險和可考慮的措施。

例如傳輸層保護(hù)可以有兩種辦法,一個是SSL這種,但要求你能夠?qū)ψC書進(jìn)行管理。還有一種是網(wǎng)絡(luò)分隔來保證攻擊者進(jìn)不來,缺少了內(nèi)部防護(hù)但更容易實現(xiàn)。

而在身份認(rèn)證和授權(quán)上,則可以考慮Apache Ranger 或者Sentry。


Hadoop系統(tǒng)安全的知識點有哪些

而在下圖中則是操作層面風(fēng)險和措施,每種手段都各有優(yōu)點,成本也不同。舉例來說,在特權(quán)管理這部分,提到了不同的加密方式,在理想化的情形下這當(dāng)然是最佳選擇,但實際上很多大數(shù)據(jù)平臺已經(jīng)運行了一段時間,這個時候要做加密,會影響到上下游的生產(chǎn),一個不慎就是一個事故。在這個情形下,加密就不是最佳選擇,而應(yīng)該考慮動態(tài)掩碼,字段型標(biāo)簽或者token化,這會讓項目很容易推進(jìn),成本也更低。

Hadoop系統(tǒng)安全的知識點有哪些

在架構(gòu)層面,對安全團(tuán)隊來說,要考慮的問題就更多了。哪些方法有效、管理起來成本比較低、能夠獲得業(yè)務(wù)部門支持。大型互聯(lián)網(wǎng)公司里,安全部門提出的方案,是要接受業(yè)務(wù)challenge的。比如安全部門提出,應(yīng)該對Hadoop做字段型加密,并且要使用kms一次一密,會被業(yè)務(wù)部門用刀砍死的。因此,安全總要在現(xiàn)實中做考量,不必拘泥于哪種是最安全的,可以多種方法組合來保障。

例如一些現(xiàn)實選擇,Hadoop的身份驗證,通過應(yīng)用網(wǎng)關(guān)來進(jìn)行,而IAM對用戶來說是透明的,加密后置。集群高度多租戶,就一定要考慮TLS來保護(hù),也就更迫切的需要細(xì)粒度的動態(tài)級控制(mask、tokenization等)。

最常見的方法就是下圖這種,類似于護(hù)城河。整個集群在內(nèi)部,嚴(yán)格控制訪問,整個基礎(chǔ)設(shè)施安全取決于防火墻、認(rèn)證這些保護(hù)措施。優(yōu)點是簡單,在業(yè)務(wù)那里不會受到什么挑戰(zhàn),也容易低成本實現(xiàn)。缺點是,一旦通過認(rèn)證授權(quán),則一路暢通。


Hadoop系統(tǒng)安全的知識點有哪些

在集群內(nèi)部安全中:Hadoop內(nèi)部的功能是公開的,和其他關(guān)系型數(shù)據(jù)庫不一樣,對節(jié)點間、集群復(fù)制等功能都是透明的,對其保護(hù)需要集成很多原生、三方的安全工具,安全性應(yīng)該是整個集群的一部分架構(gòu)。工具可能包括:SSL / TLS確保安全通信,Kerberos的節(jié)點之間認(rèn)證,靜態(tài)數(shù)據(jù)存儲安全性,身份和授權(quán)等。下圖中標(biāo)明各種安全措施的位置。


Hadoop系統(tǒng)安全的知識點有哪些

此外,大型互聯(lián)網(wǎng)公司的數(shù)據(jù)來源一般都有無數(shù)個,而安全團(tuán)隊很難知道數(shù)據(jù)都在哪活動,保護(hù)措施是什么,但這些數(shù)據(jù)都在數(shù)據(jù)中心的載體上,因此可選擇一些基本保護(hù)措施:tokenization、masking和加密。這些措施保證不管數(shù)據(jù)在哪里使用都能夠一定強(qiáng)度的保護(hù)。Tokenization是一個數(shù)據(jù)令牌,有點像我們在游戲廳的游戲代幣,它不是現(xiàn)金,但是可以用來抓娃娃。在數(shù)據(jù)保護(hù)中,則用數(shù)據(jù)令牌來代替像是銀行卡號的敏感數(shù)據(jù),但數(shù)據(jù)令牌本身毫無含義,它只能去映射真正的數(shù)據(jù)。Masking則是對數(shù)據(jù)做部分遮蓋或替換,比如用一個隨機(jī)數(shù)來代替身份證號碼,這樣原始數(shù)據(jù)不會在查詢中出現(xiàn),但真正的數(shù)據(jù)還是在表中存儲的。


Hadoop系統(tǒng)安全的知識點有哪些

做這些事情,是因為無論內(nèi)外部用戶都是不可信的,因為你不知道數(shù)據(jù)在什么時候就被與合作伙伴或者什么人共享了,動態(tài)脫敏的做法可以根據(jù)ip、設(shè)備類型、時間來進(jìn)行額外控制。靜態(tài)脫敏方法可以完全掩蓋敏感數(shù)據(jù),同時保留數(shù)據(jù)分析的價值。需要根據(jù)不同情況做選擇。

與Hadoop兼容、或者為Hadoop設(shè)計的安全解決方案數(shù)量這些年一直在增加,最大貢獻(xiàn)來自于開源社區(qū),甚至有的企業(yè)也會直接貢獻(xiàn),幫用戶們解決了很大的痛苦。介紹幾個工具:

1、Apache Ranger

Ranger是Hadoop集群的集中安全管理解決方案,包括審計,密鑰管理和細(xì)粒度的數(shù)據(jù)訪問控制??梢约蒆DFS,Hive,YARN,Solr,Kafka等模塊的安全認(rèn)證機(jī)制。關(guān)鍵!Ranger是少數(shù)能夠提供中央管理視圖的工具,所以你可以在HDFS設(shè)置文件和目錄權(quán)限,在Hive中設(shè)置SQL策略,形成一個整體性的安全控制。

2、HDFS加密

HDFS提供嵌入在Hadoop文件中的“透明”加密,數(shù)據(jù)在存儲到文件系統(tǒng)時候被透明加密,對應(yīng)用集群來說代價就比較低了。支持區(qū)域、文件、目錄的加密,每個區(qū)域可以用不同的密鑰,這樣就可以支持多租戶,也能夠與KMS集成。

3、Apache Knox

可以把Knox視為Hadoop防火墻。更確切地說,它是一個API網(wǎng)關(guān)。Knox處理HTTP和RESTful請求,執(zhí)行身份驗證和策略控制。結(jié)合網(wǎng)絡(luò)分區(qū)分域,進(jìn)一步減少攻擊面。

4、Apache Atlas

開源治理框架,可以管理數(shù)據(jù)血緣關(guān)系、數(shù)據(jù)字典、數(shù)據(jù)分類等一系列元數(shù)據(jù)的核心能力。簡單的說,實現(xiàn)數(shù)據(jù)發(fā)現(xiàn)和訪問控制。不過Atlas也才剛剛發(fā)展起來,成熟性可能是個問題。

5、Apache Ambari

管理Hadoop集群的工具,可以把配置同步到整個集群,貌似國內(nèi)用的不多。當(dāng)然你也可以自己寫腳本,腳本可以提供自定義的功能。但是對于中小型公司來說,Ambari能快速啟動運行對集群的一致性管理。

6、監(jiān)控

監(jiān)控有兩個部分,實時分析和攔截。Hive,PIQL,Impala,Spark 模塊提供的是SQL或偽SQL語法,這就可以利用前面提到的tokenization、masking來進(jìn)行保護(hù)?;蛘吒?xì)粒度的授權(quán),來改變替換查詢結(jié)果。以數(shù)據(jù)的監(jiān)控視角,會比應(yīng)用的監(jiān)控視角得到更多的信息。

五、建議

考慮Hadoop集群的安全方案,先給幾個原則:

1、不能損害集群的功能

2、架構(gòu)一致,不能和Hadoop架構(gòu)沖突

3、能夠解決安全的威脅

為什么要這樣說,因為市面上太多魚龍混雜的公司,號稱提供大數(shù)據(jù)解決方案,他們自己都還在用mysql做產(chǎn)品。再者,Hadoop整個生態(tài)都還年輕,并不是所有工具都是成熟的。

在技術(shù)上,建議考慮如下這些部分,又或者我認(rèn)為,這是一個Hadoop集群的基線安全:

1、Kerberos進(jìn)行節(jié)點認(rèn)證

已經(jīng)這么做的公司越來越多了,而且集成Kerberos現(xiàn)在也比以前簡單多了。Kerberos認(rèn)證在節(jié)點安全上是最有效的安全控制手段之一,而且本身就是內(nèi)置在Hadoop基礎(chǔ)架構(gòu)中的。建議使用。

2、文件層加密

簡單的說,是保護(hù)靜止的數(shù)據(jù),可以防止管理員、惡意用戶、租戶的非授權(quán)訪問,當(dāng)然也能保證硬盤被盜后的安全。而且,很多地方已經(jīng)開始要求數(shù)據(jù)必須加密存儲了,也需要考慮合規(guī)。文件層加密能夠保證一致性,跨越操作系統(tǒng)、平臺、存儲介質(zhì),也能在集群增加的時候無縫擴(kuò)展,對應(yīng)用和平臺來說都是透明的。所以加密不是建議,而應(yīng)該是強(qiáng)制選項。

3、KMS

攻擊者可以拿到密鑰,你的加密就沒有意義了。很多管理員、開發(fā)會把密鑰存在硬盤上—我真的掃描過開發(fā)和dba的硬盤,所以我知道。所以需要獨立的密鑰管理平臺來分發(fā)密鑰和證書。尤其在大規(guī)模企業(yè)中,多密鑰多租戶的管理就是更現(xiàn)實的問題。

4、Apache Ranger

前面已經(jīng)介紹了。

5、自動化部署

有的公司用腳本和源代碼控制實現(xiàn),有的用傳統(tǒng)的補(bǔ)丁管理系統(tǒng)來實現(xiàn),還有一些就是噩夢管理方法??梢钥紤]配置自動化工具比如Chef和Puppet,從可信鏡像安裝、升級、分發(fā)密鑰等。

6、日志和監(jiān)控

可以利用內(nèi)置的Hadoop功能創(chuàng)建日志,使用集群本身來存儲事件,還包括像LogStash,Log4J和Kafka來進(jìn)行數(shù)據(jù)流管理和搜索。

7、通信加密

SSL / TLS用于實現(xiàn)節(jié)點之間、節(jié)點和應(yīng)用之間的安全通信,建議全部加密,雖然這對性能有一點影響,但這個開銷是所有節(jié)點共享的,所以壓力并不大。

加密,認(rèn)證和平臺管理工具大大提高了Hadoop集群安全性,在認(rèn)證鑒權(quán)上的集成,細(xì)粒度的訪問控制讓安全工作更容易做一些。Hadoop社區(qū)的速度很快,說實話超越了我的期望值。不過坦白說,就我了解的很多國內(nèi)公司,對于Hadoop的安全還停留在網(wǎng)絡(luò)隔離的水平上,然后期望攻擊者無法滲透進(jìn)來,外硬內(nèi)軟。在合規(guī)監(jiān)管的要求下,在數(shù)據(jù)開放生態(tài)的大環(huán)境下,網(wǎng)絡(luò)隔離遠(yuǎn)遠(yuǎn)不夠。

到此,關(guān)于“Hadoop系統(tǒng)安全的知識點有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI