正如我們在前面文章所提到的,我們可以利用OSSEC來偵測現有Hadoop和HBase系統檔案的完整性。OSSEC會產生紀錄,讓系統管理員用以檢查各種系統事件。
值得注意的是,各種巨量資料系統(Big Data System),不只是Hadoop和HBase,都會產生驚人數量的記錄資料。至少可以說,要安裝一個巨量資料叢集並不簡單,這些日誌對於幫助IT人員建立叢集和診斷系統問題上發揮至關重要的作用。巨量資料系統管理員實際上已經習慣於透過檢查日誌檔來找到潛在問題。
OSSEC可以監控的重要Hadoop安全事件有:
- HDFS作業失敗
- HBase登錄
- Kerberos票證授予
- Root登入節點
設定OSSEC代理程式來監控一個或多個Hadoop日誌檔,需要將日誌檔案目錄路徑加入代理程式的ossec.conf檔案。對於HDFS NameNode,我們希望監控hadoop-hdfs-namenode-{host}.log檔,{host}是NameNode名稱或IP地址。這檔案通常位在/var/log/hadoop-hdfs/目錄。同樣地,對於HMASTER節點,我們會想要監控/var/log/hbase目錄下的hbase-hbase-master-{host}.log。這樣就可以從OSSEC代理程式取得我們Hadoop和HBase的日誌檔案到伺服器上。
下一步就是撰寫解碼規則來解析日誌,還有警報規則來根據日誌內容生成警報。解碼器用正規表示法組成,讓OSSEC伺服器用來找到感興趣的內容,以及將文字對應到伺服器所能辨認的標準欄位。規則讓伺服器可以檢驗解碼後的欄位來找到指示重要安全事件的內容。當一個給定規則找到來自某一解碼器的事件資料,伺服器會生成一個由規則定義的警報。
視覺化Hadoop的安全事件
視覺化OSSEC安全警報最簡單的方法是不斷地顯示警報日誌檔。雖然這也行,但它就像是在看表格內的原始資料。很難或幾近不可能去從資料中找出趨勢。
OSSEC可以透過syslog來發送警報資料給任何安全資訊和事件管理程式(SIEM),提供syslog相容性。我們喜歡用的一個SIEM是Splunk,和一個開放原始碼應用程式稱Splunk for OSSEC。這可以直接從Splunk的應用程式主控台來安裝到OSSEC伺服器上。
Splunk for OSSEC是設計用來取得OSSEC警報,然後歸納總結跟進行趨勢分析。下面顯示的是Splunk上OSSEC儀表板的例子。你可以在這裡看到事件隨著時間推移的摘要,包括之前所討論到的HBase和HDFS事件。
圖二、Splunk for OPSSEC
(圖片來自https://vichargrave.com/securing-hadoop-with-ossec/)
總結
巨量資料系統可以從像OSSEC這樣的HIDS來獲得主機入侵檢測服務的好處。這些系統可以確保巨量資料的安全性,這也是許多單位採用巨量資料所不可或缺的。我們一直在貢獻Hadoop所用的OSSEC規則給OSSEC計畫,以推動OSSEC和Hadoop社群來使用它們,這和我們之前支持開放原始碼計畫是一致的。
@原文出處:Improving Hadoop Security with Host Intrusion Detection (Part 2)
作者:Vic Hargrave