搜尋此網誌

2012年9月11日 星期二

[工具介紹] 利用 ossec + ossim 管理端點的安全

之前我介紹過 Splunk ,用來作為日誌集中管理與分析的工具相當好用 (除了免費版本有討厭的 500MB 限制)。但是 Splunk 是一個一般型的分析工具,如果我們只想處理有關資安相關的資訊,不但需要自己設定各項所需的資料來源,更必須自己利用查詢指令找出感興趣的資訊,甚至轉換成所需的報表。事實上,市面上針對資安相關資訊的彙整與處理已經有一類專門的產品,統稱為 SIEM。今天我要跟各位分享兩個工具的整合利用,其中的 ossim,正是 opensource 形式的 SIEM。
在我使用 ossim 之前,原本只是使用 ossec 來做為主機 (端點) 的 IDS 機制 (HIDS)。ossec 同樣是 opensource 形式的軟體,支援多種作業系統,主要提供主機的完整性檢查、日誌檔監測與惡意程式 (Rootkit) 掃描的功能。如果發現有疑似攻擊的行為發生,ossec 還可以做出回應,例如封鎖攻擊來源的 IP 位址。ossec 採用主從式 (Client-Server) 的架構,主要透過命令列方式加以設定。而事件的判斷結果統一集中在 ossec 伺服器 (Server) 上,同樣必須透過指令的方式加以查看。
作為一個專業的管理人員,當然不能接受這麼不方便的事情。好險,有 ossim 的存在。嚴格來說,  ossim 並不是單是  ossec 的圖型化操作介面,更不是日誌管理系統。ossim 整合了許多 opensource 的資安/管理工具,並以 ISO 檔 (或專屬設備) 的形式發佈,讓管理者可以很快建立起一個完整的 SIEM 系統。ossim 整合的工具包含了
  • 流量管理: ntop, netflow
  • 入侵偵測: snort, ossec
  • 弱點掃描: openvas, nessus
  • 可用性: nagios3
  • 變更管理: arpwatch, P0f, Pads
  • 無線網路管理: kismet
除了工具的整合,  ossim 還可以透過 syslog 的機制,分析來自其他設備或軟體的資訊。而付費版本的 ossim,更提供了日誌加密封存的功能,可作為日後訴訟用的佐證。
今天,我要跟各位分享如何利用 ossec + ossim 做出一個完整的主機入侵偵測系統 (HIDS)。前面提到 ossec 採用主從式的架構,所以 ossim 就是 ossec 的伺服器 (Server),而其他我們想要管理的主機就是 ossec 的客戶端 (Client)。我以 CentOS 作為客戶端的範例,至於其他作業系統的客戶端,設定的過程也沒有太大的差異。
  1. 下載 ISO 檔
    下載網址是 http://communities.alienvault.com/community/#downloads 。目前的版本是 4.0,僅提供 64 位元的版本。
  2. 安裝 OSSIM
    OSSIM 以 Debian 為基礎,提供完整的圖型化安裝介面,在此就不一一截圖了。
  3. 連結 OSSIM 的網頁
    連結網址是 https://ossim.ip/ossim ,其中 ossim.ip 請替換成安裝 OSSIM 時所指定的 IP 位址。
  4. 新增管理的網路區段
    點選 "Assets" –> "Assets" –> "Networks" –> "New"。 
    0002
  5. 輸入管理網路區段的資訊
    有兩個主要欄位需要填寫,分別是 Name 與 CIDRs,填寫完畢後按下 "Update" 即完成新增的動作。如果你有多個管理的網路區段,請記得重複此一新增動作。
    請注意到畫面上有一個 "Asset value" 的選項,在 ossim 中,每一個資產 (Asset) 都有其價值,這個價值是用於事件風險的計算公式之中。
    0003-2
  6. 掃描主機
    雖然我們也可以用手動的方式將主機資訊一一加入,但是第一次設定時我還是建議用掃描的方式新增主機,以簡化輸入的過程。
    點選 "Assets" –> "Assets Discovery"。利用右邊的樹狀圖選取想要掃描的網路區段,如有需要可同時選取多個網路區段。
    0003
  7. 開始掃描
    選取完畢並設定好相關參數後,按下 "Start Scan" 開始進行掃描。
    0004
  8. 等待掃描結果
    掃描完畢後, ossim 會列出所有搜尋到的主機及其相關資訊。在想要新增的主機後進行勾選的動作,勾選完畢後按下 "Update database values"。
    0005
  9. 儲存掃描結果
    儲存前可以指定是否要為這些主機建立一個新的群組,或者也可以指定主機的價值 (Asset value)。設定完畢後按下 "Update" 即完成新增的動作。
    0006
  10. 登入 ossim 的系統主控端,進行 ossec 客戶端的管理
    其實管理客戶端的動作大多也可以在 ossim 的管理介面上完成,但是為了展現我們打指令的功力,還是介紹原本 ossec 所使用的方式。
    啟動用戶端管理程式,指令是
    /var/ossec/bin/manage_agents      
    使用選項 A 來新增主機。0007
  11. 輸入客戶端電腦的名稱 (Name) 與 IP 位址 (IP Address)
    名稱主要作為識別之用,並不會影響新增的結果。而 IP 位址必須填入伺服器所 "看到" 的客戶端 IP 位址。除非客戶端會透過轉址 (NAT) 來對伺服器進行連結,否則一般直接填上客戶端的 IP 位址即可。
    設定完畢後進行確認 (y) 即完成新增的動作。 0008
  12. 取得客戶端的 "鑰匙"
    ossec 作為一個安全軟體,當然不可能隨意接收其他電腦傳送過來的訊息。所以每個想要傳送訊息的客戶端,都必須擁有一個獨一無二的鑰匙。在前一個動作完成時,ossec 就幫我們建立好該客戶端的鑰匙了。我們可以透過指令 E 取得客戶端的鑰匙,而客戶代號 009 則為前一個動作進行時系統所自動產生的。第三個紅色框框內的文字就是這個客戶端的鑰匙,請完整複製下來並備用。
    0009
  13. 安裝 ossec (客戶端)
    CentOS 可以從 AtomiCorp 的 repository 中取得 ossec 套件。指令是
    wget -q -O - https://www.atomicorp.com/installers/atomic |sh
    yum install ossec-hids-client ossec-hids
    chkconfig ossec-hids on
  14. 修改設定檔,指定伺服器的 IP 位址 (客戶端)
    指令是
    vi /var/ossec/etc/ossec.conf
    修改檔案開頭的 <server-ip> 參數。
  15. 匯入鑰匙 (客戶端)
    輸入指令
    /var/ossec/bin/maange_client
    使用選項 I 匯入鑰匙,並將剛剛複製的鑰匙文字完整貼上。 確認資料無誤後,輸入 y 完成匯入鑰匙的動作。
    0010
  16. 關閉匯入工具 (客戶端)
    使用選項 Q 。
    0011
  17. 啟動服務 (客戶端)
    指令是
    service ossec-hids start
  18. 確認客戶端已經正常連結
    我們回到 ossim 的管理介面,點選 "Analysis" –> "Detection" –> "HIDS"。如果客戶端狀態出現 "Active",表示客戶端已經正常連結至 ossec 的伺服器。如果無法正常連結,可以檢查 ossec 的紀錄檔,位置是 /var/ossec/logs/ossec.log。
    0012
  19. 其他操作
    一開始我提到原本 ossec 僅提供指令的方式來管理客戶端,而 ossim 則將此功能整合至管理介面當中。例如點選畫面右上方的 "Agents" 連結,就可以看到目前所有的客戶端列表,而且還可以對其進行操作 (如執行完整性檢查) 或是查看之前所產生的相關訊息。透過 ossim ,不但可以簡化 ossec 的管理作業,所有 ossec 所產生的訊息也將被 ossim 統一處理,更加提供我們對於資訊安全的防護能力。
    0013
透過幾個簡單的動作,我們就建立起一個可運作的 HIDS 機制。但是不管採用 opensource 還是付費的軟體,這些動作都只是第一步而已。真正的挑戰在於如何調整出一個濃纖合度的設定,在減少假警報 (False positive) 的同時,也不會漏失真正需要注意的資安事件 (False negative)。如此一來,才能真正發揮 SIEM 的功效,而不是成了一個中看不中用的花瓶。

About