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

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

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

規則樣式說明

Sagan提供文字型式的規則(Rule)基礎的偵測方式,並提供了類似Snort的規則定義形式,如圖5為其中為一個簡單的範例,用來偵測Telnet連線:

圖5內整個規則定義包括四個部分,說明如下:


▲圖5 偵測Telnet連線。

(1) alert

這是用來定義處理動作,當所偵測的紀錄資訊符合所設定的條件時,就會執行所設定的動作。

(2) tcp

用來設定欲偵測的通訊協定,Sagan提供了TCP、UDP、ICMP、SYSLOG等通訊協定。例如,如果想偵測Telent的紀錄(如圖5中的例子),由於Telent是使用TCP通訊協定,所以在通訊協定則必須使用tcp。

(3) 偵測範圍

用來設定欲偵測的範圍,其中參數的用法如下:

external_net:設定欲偵測的外部來源IP

sport:設定欲偵測外部來源的通訊埠

home_net:設定欲偵測的目的IP

dport: 目地IP的通訊埠,如果設為any即表示任意(不設限)。

(4) 細項規則設定

部分為細部的規則定義,Sagan常用的細項規則如下所述:

msg:設定當條件成立後,所要儲存的訊息字串。

content:設定查詢內容條件字串

Classtype:用來定義規則所屬的類別

facility:設定僅解析所設定的facility種類的紀錄

level:設定僅解析所設定level種類的紀錄

program:設定僅解析某個程式所產生的Log紀錄

nocase:表示不分大小寫的比對

sid: 規則的編號,從5000000開始,每條規則需要有一個唯一的編號:


以上是設定比對門檻值,表示同一個來源IP,如果在120秒之內有超過5次符合條件即成立。

執行系統實作步驟

在Sagan主機上,依序執行下列步驟:

首先,啟動nfdump-sagan程式,準備接收NetFlow封包:


接著指定網路設備將NetFlow封包資訊,傳遞到Sagan所在的主機上的2055通訊埠。

然後,使用「cat /var/sagan/fifo/sagan.fifo」指令檢查sagan.fifo裝置檔案,確認是否收到NetFlow封包資訊。

隨即設定Sagan的組態檔(sagan.yaml)。基本上,修改vars區段下的設定以及設定所要啟用的規則檔即可,其餘可使用預設設定,設定內容如圖6所示。


▲圖6 設定Sagan組態檔。

最後,執行「sagan -D -f sagan.yaml」指令啟動Sagan程式。

在Sagan運作成功後,就可以利用NetFlow的資訊來監控整個網段的流量是否有異常的現象發生。一旦發現有符合的惡意封包樣式,便會將相關資訊儲存到「/usr/local/sagan/log/alert.log」檔案內,管理者可隨時查看此檔案來掌握是否有異常的網路現象發生。

<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>


追蹤我們Featrue us

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

我知道了!