網路型入侵偵測系統 主機型入侵偵測系統 NetFlow 入侵偵測系統 網路安全 IDS NIDS HIDS

開源Sagan全能大變身 自建入侵偵測補漏網

2017-06-29
內部網路若遭到惡意入侵,企業將蒙受難以估計的損失,所以即時偵測及早防制就變得非常重要。其實只要使用開源碼程式Sagan搭配NetFlow通訊協定,就可以使Sagan兼具網路型和主機型入侵偵測系統的功能,這樣一來管理者便能夠隨時判讀網路現狀,防堵惡意入侵。

Sagan程式就是一種主機型入侵偵測系統,與其他相關的主機型入侵偵測系統略為不同的地方,在於Sagan主要是利用即時監控主機所產生的紀錄(Log)資訊,並利用所設定的規則來解析紀錄資訊,以及判別所監控的紀錄檔案內是否具有惡意的樣式(Pattern),進而發現是否有潛在的惡意的攻擊行為發生。其解析流程如圖1所示。


▲圖1 Sagan解析流程。

要使用Sagan程式之前,首先必須在系統先建立一個FIFO裝置檔案(在Linux系統下可使用mkfifo指令來建立),這是一種特殊型態的管道(Pipe)文件檔案,可用來做為兩個不同程序(Process)之間的資料溝通。Sagan程式就是利用FIFO裝置檔案來取得系統所產生的紀錄資訊。

接著,必須設定將系統所產生的紀錄資訊傳遞到FIFO裝置檔案(圖1中的(1)),在此同時,Sagan程式便利用FIFO裝置檔案來取得系統所產生的紀錄資訊,並與所設定的規則進行比對(圖1中的(2)),如果發現有符合的規則,便執行相關的動作(Action)(最常見的動作就是記錄相關的資訊)。除了可記錄至檔案外(圖1中的(3)),Sagan也提供將相關資訊儲存至資料庫的機制(利用barnyard2程式)。

雖然Sagan程式在偵測性質上歸屬在主機型入侵偵測系統,但換個角度思考,如果能將網路流量(例如NetFlow)的資訊導向到Sagan主機上的FIFO裝置檔案,不就可以利用Sagan程式來監控NetFlow的資訊,而能具有網路型入侵偵測系統的功能。

系統實作架構說明

在此將實作利用Sagan程式解析所接收到的NetFlow網路封包,來達到網路型入侵偵測系統(NIDS)的功能,相關架構圖如圖2所示。


▲圖2 實作架構圖。

接著,說明圖2中相關的操作流程:


設定路由器或其他的網路設備(只要設備能支援匯出NetFlow封包即可,通常需要設定接收端的主機IP和通訊埠資訊),匯出NetFlow封包至Sagan主機上NetFlow收集器(Collector)程式,在此為nfdump-sagan。


當nfdump-sagan程式接收到NetFlow封包,便將相關資訊導向到FIFO裝置檔案。


最後Sagan程式再利用所設定的規則解析FIFO檔案所接收到的資訊,比對出是否有惡意的行為,如果發現有惡意的網路行為,就記錄下相關的資訊。

安裝nfdump-sagan

nfdump是開放原始碼社群中頗富盛名的NetFlow資料處理軟體,提供了收集及處理NetFlow封包等相關程式,在本文中主要是利用其中的NetFlow封包收集的功能。

原始的nfdump並未提供與Sagan程式結合的功能,因此這裡將利用改寫過後的nfdump程式(名稱為nfdump-sagan)來與Sagan程式結合。安裝過程如下所述(其中#部分為註解):


在安裝完成後,nfdump-sagan所提供的主要程式功能如下所述:

Nfcapd

Nfcapd主要用來擷取NetFlow封包並將相關封包儲存進檔案的程式,以下是常用的參數說明:

-p:指定要接收的通訊埠資訊,利用此通訊埠來接收NetFlow封包。

-l:指定儲存所接收到NetFlow封包資訊的目錄名稱

-F:指定將接收到的NetFlow封包傳遞到FIFO裝置檔案名稱

-t:設定所要儲存為檔案的間隔時間(單位為「分」),預設為5分鐘,在預設的情況下,每5分鐘就將NetFlow封包儲存成檔案。

以下範例表示,預定在通訊埠2055接收NetFlow資訊,並將相關資訊轉至「/var/sagan/fifo/sagan.fifo」的FIFO裝置檔案上(必須先利用mkfifo指令建立該FIFO裝置檔案):


nfdump

nfdump是用來顯示由nfcapd程式所取得的NetFlow資訊,常用的參數如下:

-r:從檔案中取得NetFlow資訊

-w:將NetFlow的輸出寫入檔案中

-R:取得目錄下所有檔案的NetFlow資訊

-o:設定要顯示的NetFlow資訊的格式,提供以下幾種格式:

raw:以原始的格式顯示NetFlow的資料。

line:以標準的文字格式(此為預設)顯示NetFlow的資料。

long:以完整的資訊格式(此種顯示將包含最完整的資訊)顯示NetFlow的資料。

csv:以CSV(Comma Separated Values)的資訊格式顯示NetFlow的資料。


追蹤我們Featrue us

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

我知道了!