透過主機入侵偵測來提高Hadoop安全性-1

多年來,Hadoop開發社群逐步地增加 Hadoop 和HBase 的功能,以提高運作的安全性。這些功能包括Kerberos使用者身份驗證,加密叢集節點間的資料傳輸,和HDFS檔案加密。趨勢科技在Hadoop的公開生態系內貢獻了數個安全性功能(參考我們之前的文章保護巨量資料和Hadoop以了解更多詳情)。

big data1

雖然這些安全功能都很重要,但它們主要集中在保護Hadoop資料。並沒有讓IT人員擁有他們Hadoop叢集內安全事件的能見度。這裡就是一個良好的主機入侵偵測系統可以發揮的地方。我們一直致力於運用OSSEC,我們的開放原始碼主機入侵偵測系統(HIDS)來提供巨量資料的安全性,為Hadoop和HBase系統加入安全監控能力。在這篇文章裡,我們會解析OSSEC的功能。

OSSEC概述

OSSEC提供許多重要的安全功能,包括文件完整性檢查、系統日誌分析和警報生成。OSSEC具備一個代理/伺服器架構。代理程式處理日誌、檔案和(Windows系統上)註冊碼的監控,然後用UDP將相關日誌以加密的形式送回伺服器。代理程式系統上的入侵通常可以透過檔案變動或是安全事件記錄而加以偵測。

圖一、用OSSEC保護Hadoop安全

(圖片來自http://vichargrave.com/securing-hadoop-with-ossec/

 

在伺服器上,日誌透過解碼器加以解析,並用內建規則加以解譯以產生安全警報。OSSEC內建了大量的解碼器和規則,可以支援廣泛種類的系統和事件。OSSEC的覆蓋率也可以透過自行定義的日誌解碼器及安全警報規則來加以擴展。

 

Hadoop的檔案完整性檢查

Hadoop和HBase系統依賴大量的設定檔案和Java檔案才能正常運作。任何對這些檔案未經授權的變更都會對叢集產生不好的影響。對Hadoop系統內的HDFS Namenode和HBase系統內的HMASTER節點尤其如此。前者控制HDFS的運作,後者則涉及HMASTER和地區伺服器間的I/O。

OSSEC可以偵測這些重要Hadoop檔案的變動。當OSSEC代理程式啟動時,它會遞迴地掃描使用者指定的目錄,計算每一個檔案的MD5和SHA1雜湊值。檔案名稱和雜湊值儲存在OSSEC伺服器的資料庫內。代理程式會根據使用者指定的時間間隔(通常每隔幾個小時)來重複此作業。當伺服器收到某一給定檔案的雜湊值和之前所儲存的不同,伺服器會生成一個安全警報。OSSEC伺服器會在自己的警報日誌檔中記錄每個安全警報。

通常情況下,Hadoop和HBase的系統設定檔案都位在/etc目錄,而Java檔案位於/usr/bin/usr/sbin目錄。預設上,OSSEC被設計成對這些目錄內的所有檔案做完整性檢查。但如果這些檔案被儲存在其他目錄,可以透過修改代理程式設定檔ossec.conf來輕易地變更設定。

在這篇文章的第二部分裡,我們將討論如何利用這些工具來進行快速偵測,並且以圖形方式顯示Hadoop/HBase系統上可能的入侵攻擊。

 

@原文出處:Improving Hadoop Security with Host Intrusion Detection (Part 1) 作者:Vic Hargrave