惡意軟體日均進攻百萬次!三大方法保護Hadoop叢集免遭攻擊!

大資料頻道發表於2018-11-09

大約在兩年前,開源資料庫解決方案MongoDB以及Hadoop曾遭受過大量惡意攻擊,這些攻擊後被統稱為“勒索軟體”,因為其攻擊者會擦除或加密資料,然後向被攻擊者索要資金以恢復資料。自今年以來,不少惡意軟體開始頻繁向Hadoop叢集伺服器下手,受影響最大的莫過於連線到網際網路且沒有啟用安全防護的Hadoop叢集。

一直以來,Hadoop叢集伺服器都是一個非常穩定的平臺,因此企業願意選擇搭建並使用。但是,自9月下旬以來,被攻擊的伺服器已經從最初的每天幾臺發展到70多臺,DemonBot(新型的惡意軟體)可以主動在網上搜尋易受攻擊的Hadoop叢集伺服器並對其發起進攻。一家名為Radware的網路安全公司跟蹤DemonBot發現,其每天可以發起超過一百萬次的嘗試。

雖然很多安全研究人員嘗試掃描並解決DemonBot,但最終只是找尋到了部分蹤跡。唯一被證實的是,直到真正的DDos攻擊發生的前一秒,機器都是保持沉默的。目前只知道DemonBot的DDoS攻擊向量是UDP和TCP floods。

目前可知的攻擊過程

據查證,DemonBot利用了企業網路中使用的資源排程系統——YARN模組中未經身份驗證的遠端程式碼執行漏洞以進行叢集資源管理和作業排程。自今年3月起,GitHub上就出現了證明安全漏洞概念的驗證程式碼。目前看來,問題似乎是YARN中的配置錯誤導致的,它暴露了REST API並允許遠端應用程式向叢集新增新的作業。YARN提供有預設開放在8088和8090的REST API(預設前者)允許使用者直接透過API進行相關的應用建立、任務提交執行等操作,如果配置不當,REST API將會開放在公網導致未授權訪問的問題發生。利用這種疏忽,攻擊者可以輕易提交DemonBot惡意軟體。

Radware表示,目前處於離線狀態的惡意軟體程式碼引用了名為Owari的Mirai變種。然而,由於程式碼中出現了不熟悉的函式名稱和邏輯,研究人員決定將其命名為DemonBot,並標記為新的惡意軟體。研究人員已經在Pastebin上發現了完整的惡意軟體原始碼,由一個別名為Self-Rep-NeTiS的人建立,其中包含部分原始碼以及用於建立多平臺機器人的指令碼。

自今年以來,新的惡意軟體——XBash和DemonBot發動了多起針對Apache Hadoop叢集伺服器進行的比特幣挖掘和DDoS攻擊。這種惡意軟體可以掃描網際網路上的所有Hadoop叢集,不安全的叢集一被放置在網際網路上,幾分鐘內就可能被感染。

保護Hadoop叢集免受惡意軟體攻擊的方法:

1、不要將叢集直接暴露給網際網路

將叢集直接暴露給網際網路相當於為惡意軟體的攻擊提供了便利,DemonBot只需輕易掃描便可鎖定目標叢集,並利用漏洞發起攻擊。

2、使用Kerberos進行強身份驗證

Hadoop叢集本身提供簡單的安全防禦手段,但這對於企業而言遠遠不夠,Kerberos成為了不少研發人員的選擇。其實,大部分攻擊都利用了系統已有漏洞,並不是攻擊手段有多高明,這就好比小偷從大開的家門進入一樣簡單。如果沒有Kerberos,任何與叢集互動的使用者都可以偽裝成其他使用者,甚至不需要特定金鑰,任何使用者都可以執行任何操作,類似於一個所有人都知道root密碼的Linux系統。

在一個正確配置且使用Kerberos進行身份驗證的Hadoop叢集中, 使用者與叢集進行任何互動都必須輸入憑據(如使用者名稱和密碼)以證明自己的身份和許可權,此驗證提供了使用者和管理員期望的安全性:使用者在系統中的功能無法被他人訪問,只有管理員可以訪問管理帳戶。

如果沒有Kerberos,任何人都可以訪問Hadoop叢集並執行各種操作。安全研究人員在Hack.lu會議上演示的攻擊案例就是提交一個簡單的YARN作業,並在叢集的所有機器上執行程式碼,這可用於在該叢集的每臺機器上獲取shell。XBash發起的攻擊之一就是使用Metasploit模組向YARN提交比特幣挖掘工作。DemonBot使用相同的技術對受感染的Hadoop伺服器執行DDoS攻擊。這種攻擊並不複雜,目標Hadoop伺服器連線到開放式網際網路,並且未啟用Kerberos身份驗證。

3、勾選安全服務

Cloudera的工程師使用Cloudera Altus建立了一個Hadoop叢集。Altus是一個雲服務平臺,其能夠使用CDH在公有云基礎架構內大規模分析和處理資料。雖然使用Altus建立不受這些攻擊影響的安全叢集很簡單,但也可以設定易受攻擊的叢集。

在Altus中,製作易受攻擊的叢集意味著不要選中Secure Clusters,也不要使用允許網際網路上任何位置傳入流量的AWS安全組。在建立對世界開放的不安全叢集的幾分鐘內,我們就可以觀察到攻擊行動。YARN Web UI會顯示許多正在提交和執行的作業:DemonBot大約每隔一分鐘就會對叢集發起攻擊。

要想設定一個更加安全的叢集,我們需要滿足兩大目標:一是僅允許從一組有限的計算機對叢集進行SSH訪問;二是透過Kerberos啟用強身份驗證,這在一些工具中很容易實現,比如Cloudera Altus。在Cloudera Altus中,叢集是在環境中建立的,環境描述瞭如何訪問使用者的程式帳戶及其包含的資源,指定了建立叢集的基礎知識。因此,我們需要重點注意的是Altus環境配置。建立環境有兩種方法:一是透過簡單的快速入門或設定嚮導,快速入門教程當然最簡單。建立環境時,選擇“Environment Quickstart”,然後選擇“Secure Clusters”的“Enable”即可。

啟用安全叢集后,將啟用Kerberos。Quickstart還將建立一個外部世界無法訪問的安全組 ,我們在此環境中建立的叢集,基本不會被現有惡意軟體攻擊。如果需要使用環境建立嚮導,可以單擊“ Quickstart”中的“Secure Clusters”。不同的是,在第二種方式中,使用者必須自己提供安全組。建立安全組時,請確保它僅允許從Altus IP地址進行SSH訪問。當然,無論你選擇什麼工具和平臺,都需要保證勾選了安全服務,國內各大廠商在設計時應該都將其考慮在內了。

結論

綜上,企業在搭建Hadoop叢集時需要注意三點:一是不要將叢集直接暴露給網際網路;二是始終啟用Kerberos身份驗證;三是選用合適的平臺或者工具時需要確保勾選了安全服務。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545816/viewspace-2219358/,如需轉載,請註明出處,否則將追究法律責任。

相關文章