所有發生過的事情都會儲存在Log紀錄內,但是Log的資訊過於繁雜且儲藏在檔案內,所以取出運用相當不方便。雖然有相關的解決方案可將系統所產生的Log資訊導向至資料庫進行管理,但還是需要相當多的人力才能從一堆繁雜的資訊中找出有用的資訊。對此,本文將利用sagan結合unifield2軟體,把偵測到的惡意行為資訊儲存至資料庫,並且以網頁的方式來輕鬆管理相關的資訊。
介紹過sagan的規則細項後,開始實作sagan與rsyslog的結合,將rsyslog輸出的syslog資訊透過FIFO的裝置傳遞給sagan解析,一旦發現有符合Rule的樣式即記錄在檔案中,如下所示先行設定rsyslog的組態檔,檔名為rsylog.conf:
接著設定sagan的組態檔,檔名為sagan2.conf,如圖3所示。
|
▲圖3 sagan2.conf檔案內容。 |
而後,以「mkfifo /var/run/sagan2.fifo」建立fifo裝置,重新啟動rsyslog與sagan,如果有符合sagan所定義的規則樣式,就將相關的資訊儲存在「/var/log/sagan2/alert」檔案內。
至目前為止,已完成以檔案的方式儲存sagan所偵測到的事件資訊,下一步即是將這些資料利用barnyard2程式即時地傳遞到資料庫內儲存。繼續安裝barnyard2程式,由於barnyard2程式需要libpcap的程式庫支援,所以必須先安裝libpcap-devel程式庫,執行如下所示的指令:
然後安裝barnyard2程式,相關執行指令如下:
barnyard2完成安裝後,繼續安裝相關的資料庫與表格資訊。首先建立資料庫,在此設定資料庫名稱為sagan。
之後,來到barnyard2的原始碼目錄下的schemas目錄,找到其中的create_mysql檔案,依此檔案的內容建立相關的資料庫表格資訊,建立完成後,資料庫相關架構將如圖4所示。
|
▲圖4 資料庫相關架構。 |
barnyard2組態設定
就如同sagan一樣,barnyard2也僅提供一個執行主程式(名稱為barnyard2)及組態檔(檔名barnyard2.conf)。接著說明該組態檔的意義(其中#為註解),基本上barnyard2將組態設定分成以下三種樣式。
config
此類組態為定義相關的參數,例如設定樣式檔位置等等,常見的組檔設定如表3所示。
表3 常見的組檔設定
input
設定unified2所接收的資料來源型態,此部分僅有一個選項。「input unified2」即表示輸入的資料來源型態為unified2。
output
設定unified2要將產生的資訊輸出到那個設備(unified2可支援多種的IDS,例如Hybrid IDS、Syslog等等),在此不多談輸出到其他設備的IDS,而僅設定輸出至資料庫的參數,如圖5所示。
|
▲圖5 設定輸出至資料庫的參數。 |
mysql:設定所支援的資料庫類型(目前可支援MySQL、Oracle等多種資料庫)
dbname:為設定所使用的資料庫名稱
user:指的是可存取資料庫的使用者名稱
password:可存取資料庫使用者的密碼
基本上完整的設定流程,需經由如下的流程設定:
1. 先行設定相關的config資訊
2. 設定輸入的模組
3. 設定輸出的模組
如圖6所示為主要設定的組態,該組態檔位於「
/usr/local/barnyard2/etc/barnyard2.conf」。
|
▲圖6 主要設定組態。 |