入侵偵測系統 syslog Sagan 紀錄檔 IDS IPS IDP Log 日誌 資安 安全

以sagan解析網站Log 即時監控惡意存取行為

2014-10-21
檢視系統紀錄,透過異常的狀況找出惡意存取的行為,看似簡單其實非常複雜,若沒有相關工具輔助,猶如大海撈針。對此,本文將網站紀錄轉換成syslog格式,並傳遞給sagan比對,善用sagan所定義的規則來找出惡意的網站存取行為。
一般描述事件時,通常都會描述兩種資料,一個是「這是什麼種類的事件」,另一個則是「這個事件有多麼的嚴重」,syslog也不例外,它利用facility(用來描述此事件是由那些種類的服務所產生的),而level是用來定義此事件的嚴重等級,支援的facility(事件類型)如表3所示。

表3 syslog相關事件類型

而另一個level則是用來描述事件嚴重的程度,可區分下列嚴重級別,如表4所示是由嚴重程度最低至最高排序。

表4 level嚴重程度說明與排序

在談完syslog的格式後,接下來說明網站紀錄的相關格式。

網站紀錄格式介紹

市面上林林總總的網站伺服器,如果都各自採用個別的紀錄格式,將會造成極大的不便,也因此有了共同紀錄格式(Common Log Format,CLF)的概念產生。

如此一來,不管是那一家廠商開發的網站伺服器,只要有支援「共同紀錄格式」的功能,就會產生標準化的紀錄格式,以方便管理。

本文所使用的Apache網站伺服器就有支援「共同紀錄格式」的功能。

共同紀錄格式的檔案內容如下所述,若該欄位沒有任何資訊,就會以「-」符號來代替。圖2為一個實際的網站紀錄範例。


▲圖2 網站紀錄實例。

共同紀錄格式(CLF)將相關的網站紀錄以空白為分界劃分成為下面的欄位,其相關欄位的說明如下所示:


Host:記錄客戶端的IP或主機位置。
Ident:如果允許執行indentityCHECK指令,而且在 客戶端機器執行identd的情況下,此欄位會記錄客戶端報告的身分資訊,否則即顯示「-」符號。
Authuser:如果HTTP的請求需要基礎的HTTP認證, 此欄位內容即為用戶名稱,否則即顯示「-」符號。
Date:HTTP客戶端瀏覽網頁的日期與時間。
Request:客戶端所發出的HTTP請求(圖2內即是 以http/1.1的通訊協定來存取test.php的網路),此欄位會以雙引號括起來。
Status:此欄位儲存的是網站伺服器處理完客戶端的 要求後所產生的HTTP狀態碼,例如常見的找不到網頁,狀態碼為404,而圖2中的200則表示存取成功。
Bytes:這個欄位儲存網站伺服器傳回給客戶端的位 元組數。

了解相關的網站紀錄格式後,接下來說明Apache(組態檔名為httpd.conf)所提供的常用的相關Log紀錄的設定,如表5所示。

表5 httpd.conf組態檔內Log紀錄的設定

系統安裝實作

接下來的實作環境將預設讀者已經完成安裝Apache網站伺服器,並且安裝在「/usr/local/apache2」目錄下,另外也已安裝了rsyslog程式,而安裝的系統架構圖如圖3所示,相關流程如下所述:


▲圖3 實作系統架構圖。

(1) 使用者瀏覽網站後,網站以mod_log_syslog模組 將網站伺服器的紀錄轉換成syslog格式,並傳遞給rsyslog程式。
(2)及(3) rsyslog將所接受到的資料,利用FIFO裝置 將資料傳遞給sagan後進行比對。
(4) sagan利用規則(Rule)來比對是否有符合的紀 錄。
(5) 如果符合即將相關的資訊寫入檔案中。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!