檢視系統紀錄,透過異常的狀況找出惡意存取的行為,看似簡單其實非常複雜,若沒有相關工具輔助,猶如大海撈針。對此,本文將網站紀錄轉換成syslog格式,並傳遞給sagan比對,善用sagan所定義的規則來找出惡意的網站存取行為。
在了解整個運作流程後,先來安裝sagan,執行如下指令(其中#為註解):
由於sagan僅支援liblognorm 1.0.0以上的版本,所以必須至官方網站下載liblognorm 1.0.0以上的版本。
下載並解壓縮後,以如下的指令開始編譯及安裝:
在安裝完相關所需要的程式庫之後,接著安裝sagan:
由於sagan是使用規則樣式(Rule)的方式來比對相關的惡意行為,所以必須先行至sagan的官方網站上取得最新版的規則檔案,並且解壓縮後將相關的檔案放置至規則目錄內,本文放置規則的目錄所在為「/usr/local/sagan2/rules」。
sagan提供一個主程式(檔名為sagan)及單一的組態檔(sagan.conf)來提供服務,表6說明了組態檔中主要組態的意義。
表6 sagan組態檔內主要組態說明
安裝成功並結束安裝sagan後,繼續安裝可將網站伺服器的Log紀錄轉換成syslog格式的模組(mod_log_syslog)。
mod_log_syslog是一個Apache的模組程式,可外掛在Apache中,將網站紀錄轉成syslog格式,所以必須使用apxs程式來編譯該模組。
先至mod_log_syslog的官方網站下載最新版本,解壓縮後,再利用「make」及「make install」指令即可安裝該模組。
在編譯成功後,可至Apache存放模組的目錄內(本文中為「/usr/local/apache2/modules/」)檢查是否有mod_log_syslog.so的檔案。如果安裝順利,在該目錄下將會有該檔案的產生。
mod_log_syslog模組僅提供一個設定Log選項設定,如下所示:
其中,是設定要轉換那些種類的事件。mod_log_syslog模組提供了local[0-7]及user選項,即為設定欲記錄的嚴重程度,符合此程度以上就記錄下來,而為記錄的格式,mod_log_syslog模組提供了combined與common兩個選項。
在完成所需程式的安裝後,接下來設定相關的系統設定,執行如下指令(#為註解):
接著設定rsyslog的組態(其組態檔的名稱為rsyslog.conf),設定如下的組態(#後為註解):
再來設定sagan程式的組態(組態檔名為sagan.conf,更改下列選項,而其餘的選項使用預設的設定即可):
最後,再設定Apache的組態檔(組態檔名稱為httpd.conf),請設定下列選項:
在設定完成後,可依序啟動相關的程式:
所有的服務全部啟動之後,官方所下載的規則檔案(檔名為apache.rules),會在來源端有存取phpinfo的動作且存取成功時即記錄該動作。
|
▲圖4 出現警示資訊。 |
可利用連結網址「http://<網站伺服器位置>/phpinfo.php」的方式來測試。如果一切正常,sagan在「/var/log/sagan2/alert」檔案內將會記錄如圖4所示的警示資訊,記錄下曾經存取過phpinfo的網頁。
至此,一個可監控惡意網站存取行為的主機型入侵偵測系統即告完成!
<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>