Firewall 入侵偵測 資訊安全 開源碼 防火牆 IDS IPS 閘道

開源Suricata入侵偵測 揪出網路攻擊與異常行為

2018-02-27
為了抵禦外來的威脅,除了架設防火牆外,還必須建置入侵偵測系統,才能進一步提高資安防禦能力,本文將示範如何利用開源碼Suricata建置一套網路型入侵偵測系統,用來監控內部網段中是否存在異常的攻擊行為,以便及早防範,避免傷害擴大。


下載並解壓縮後,將整個規則集目錄複製「/usr/local/suricata/etc/suricata」目錄下即可。接著,介紹Suricata的規則(Rule)。

Suricata規則說明

Suricata的規則結構分為三個區段,如圖4所示,分別加以說明。


▲圖4 Suricata規則結構主要分成三個區段,這裡以(A)、(B)、(C)來表示。

(A) Action(行動)

此區段為設定當規則比對成功時,所要執行的動作。Suricata提供下列Action選項:

‧Pass:當規則比對成功,便針對當前的封包停止繼續比對其他的規則,而直接放行。

‧Drop:當規則比對成功時,就直接丟棄此當前的封包。

‧Reject:當規則比對成功時,就如同Drop一樣,會直接拒絕當前的封包,但如果封包的通訊協定為TCP時,便回覆Reset封包。

‧Alert:當規則比對成功的時候,就會產生一個警報(Alert)訊息。

(B) Header(標題)

此區段為指定所要偵測的來源IP及通訊協定種類等資訊,以如下的設定為例:


其中的tcp就是指定所要偵測的通訊協定。Suricata除了可支援TCP或UDP封包的偵測外,另外也可支援少數的應用程式通訊協定,所支援的通訊協定包括tcp、udp、icmp、ip、http、ftp、tls(包括ssl)、smb、dns、dcerpc、ssh、smtp、imap、msn等等。

而接下來的這一行即表示要偵測的IP及通訊埠的範圍,設定any即表示不設限,任何的IP及通訊範圍均是偵測的範圍:


另外,Suricata提供了表3所示的方式來設定IP範圍。

表3 Suricata設定IP範圍的方法

(C) Options(選項)

此區段即為指定要比對的條件。Suricata可根據不同的通訊協定來訂定不同的關鍵字(Keyword),所支援的通訊協定如圖5所示(可至Suricata的官方網站上取得相關資訊),可根據所要偵測的通訊協定來設定適當的關鍵字來設定規則。

Suricata的規則結構分為三個區段,如圖4所示,分別加以說明。


▲圖5 Suricata支援的通訊協定。

設定suricata.yaml組態檔

在完成安裝Suricata系統及規則後,就來設定Suricata的組態檔(suricata.yaml)。基本上,Suricata的組態檔可分成以下五個區段來做設定。

1. 設定所要偵測網段變數名稱

使用者可在此區段中設定要以Suricata防護的網段資訊,其中HOME_NET表示使用者所在的內部網段(可以CIDR格式表示),而EXTERNAL_NET代表來自外部的網段資訊,如果設定any即表示所有的IP資訊,在此可設定HOME_NET變數為所要防護的網段,EXTERNAL_NET設定為any即可,如圖6所示。


▲圖6 設定所要偵測網段變數名稱。

2. 選擇要偵測所使用的規則

在此區段中,使用者可以設定要啟用的規則。其中default-rule-path組態須設定為規則檔所在的目錄,而classification-file組態設定classification.config所在的位置,reference-config-file組態則指定reference.config所在的位置。

如果有不想啟用的規則,就在該規則所在的行首加上#符號,便可關閉該規則,如圖7所示。


▲圖7 選擇要偵測所使用的規則。

3. 選擇要輸出的媒體

在此區段中,使用者可設定Suricata結果輸出的媒體形式,可提供檔案或資料庫輸出及其他如CSV、json等資料格式的輸出。首先,必須設定default-log-dir組態來指定儲存輸出資料的目錄。接下來,根據個別要輸出的資料來做設定,以記錄HTTP紀錄的輸出為例(圖8),相關組態設定說明如下:


▲圖8 選擇要輸出的媒體。


追蹤我們Featrue us

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

我知道了!