在我使用 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
今天,我要跟各位分享如何利用 ossec + ossim 做出一個完整的主機入侵偵測系統 (HIDS)。前面提到 ossec 採用主從式的架構,所以 ossim 就是 ossec 的伺服器 (Server),而其他我們想要管理的主機就是 ossec 的客戶端 (Client)。我以 CentOS 作為客戶端的範例,至於其他作業系統的客戶端,設定的過程也沒有太大的差異。
- 下載 ISO 檔
下載網址是 http://communities.alienvault.com/community/#downloads 。目前的版本是 4.0,僅提供 64 位元的版本。 - 安裝 OSSIM
OSSIM 以 Debian 為基礎,提供完整的圖型化安裝介面,在此就不一一截圖了。 - 連結 OSSIM 的網頁
連結網址是 https://ossim.ip/ossim ,其中 ossim.ip 請替換成安裝 OSSIM 時所指定的 IP 位址。 - 新增管理的網路區段
點選 "Assets" –> "Assets" –> "Networks" –> "New"。 - 輸入管理網路區段的資訊
有兩個主要欄位需要填寫,分別是 Name 與 CIDRs,填寫完畢後按下 "Update" 即完成新增的動作。如果你有多個管理的網路區段,請記得重複此一新增動作。
請注意到畫面上有一個 "Asset value" 的選項,在 ossim 中,每一個資產 (Asset) 都有其價值,這個價值是用於事件風險的計算公式之中。
- 掃描主機
雖然我們也可以用手動的方式將主機資訊一一加入,但是第一次設定時我還是建議用掃描的方式新增主機,以簡化輸入的過程。
點選 "Assets" –> "Assets Discovery"。利用右邊的樹狀圖選取想要掃描的網路區段,如有需要可同時選取多個網路區段。 - 開始掃描
選取完畢並設定好相關參數後,按下 "Start Scan" 開始進行掃描。 - 等待掃描結果
掃描完畢後, ossim 會列出所有搜尋到的主機及其相關資訊。在想要新增的主機後進行勾選的動作,勾選完畢後按下 "Update database values"。 - 儲存掃描結果
儲存前可以指定是否要為這些主機建立一個新的群組,或者也可以指定主機的價值 (Asset value)。設定完畢後按下 "Update" 即完成新增的動作。 - 登入 ossim 的系統主控端,進行 ossec 客戶端的管理
其實管理客戶端的動作大多也可以在 ossim 的管理介面上完成,但是為了展現我們打指令的功力,還是介紹原本 ossec 所使用的方式。
啟動用戶端管理程式,指令是
使用選項 A 來新增主機。/var/ossec/bin/manage_agents
- 輸入客戶端電腦的名稱 (Name) 與 IP 位址 (IP Address)
名稱主要作為識別之用,並不會影響新增的結果。而 IP 位址必須填入伺服器所 "看到" 的客戶端 IP 位址。除非客戶端會透過轉址 (NAT) 來對伺服器進行連結,否則一般直接填上客戶端的 IP 位址即可。
設定完畢後進行確認 (y) 即完成新增的動作。 - 取得客戶端的 "鑰匙"
ossec 作為一個安全軟體,當然不可能隨意接收其他電腦傳送過來的訊息。所以每個想要傳送訊息的客戶端,都必須擁有一個獨一無二的鑰匙。在前一個動作完成時,ossec 就幫我們建立好該客戶端的鑰匙了。我們可以透過指令 E 取得客戶端的鑰匙,而客戶代號 009 則為前一個動作進行時系統所自動產生的。第三個紅色框框內的文字就是這個客戶端的鑰匙,請完整複製下來並備用。 - 安裝 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
- 修改設定檔,指定伺服器的 IP 位址 (客戶端)
指令是
修改檔案開頭的 <server-ip> 參數。vi /var/ossec/etc/ossec.conf
- 匯入鑰匙 (客戶端)
輸入指令
使用選項 I 匯入鑰匙,並將剛剛複製的鑰匙文字完整貼上。 確認資料無誤後,輸入 y 完成匯入鑰匙的動作。/var/ossec/bin/maange_client
- 啟動服務 (客戶端)
指令是service ossec-hids start
- 確認客戶端已經正常連結
我們回到 ossim 的管理介面,點選 "Analysis" –> "Detection" –> "HIDS"。如果客戶端狀態出現 "Active",表示客戶端已經正常連結至 ossec 的伺服器。如果無法正常連結,可以檢查 ossec 的紀錄檔,位置是 /var/ossec/logs/ossec.log。 - 其他操作
一開始我提到原本 ossec 僅提供指令的方式來管理客戶端,而 ossim 則將此功能整合至管理介面當中。例如點選畫面右上方的 "Agents" 連結,就可以看到目前所有的客戶端列表,而且還可以對其進行操作 (如執行完整性檢查) 或是查看之前所產生的相關訊息。透過 ossim ,不但可以簡化 ossec 的管理作業,所有 ossec 所產生的訊息也將被 ossim 統一處理,更加提供我們對於資訊安全的防護能力。
我利用snare工具把windows 2003的event log收到ossim內,但log中文的部份無法顯示出來,ossim已改成中文介面了,請問修改那些可以解決這個問題呢? 謝謝您
回覆刪除這個問題是編碼的問題,我這裡測試了許久,而且會因為版本而有所差異,
刪除有些東西在V3.1不會有亂碼,到了V4.0之後卻出現亂碼!