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

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

2018-02-27
為了抵禦外來的威脅,除了架設防火牆外,還必須建置入侵偵測系統,才能進一步提高資安防禦能力,本文將示範如何利用開源碼Suricata建置一套網路型入侵偵測系統,用來監控內部網段中是否存在異常的攻擊行為,以便及早防範,避免傷害擴大。
在一般人的印象中最常見的資安設備,大概就是防火牆(Firewall)設備,企業利用防火牆設備來阻擋及過濾相關惡意的攻擊行為,是一般人熟知的資安解決方案。

但凡事總有例外,再綿密的防火牆設備,往往還是會有些漏網之魚入侵到企業的內部來進行攻擊,此時入侵偵測系統(IDS)即可派上用場,它建構在企業的內部來即時監控企業內部的網路或主機是否有不正常的行為。一旦發現有惡意的攻擊行為,即加以記錄該攻擊行為。

除了消極的記錄之外,如果入侵偵測系統具有入侵偵測防禦系統(Intrusion Prevention System,IPS)的功能,即可在發現惡意的攻擊行為當下,立即阻擋該惡意的攻擊行為。

在本文中,將介紹一套在開源碼社群中知名的入侵偵測系統Suricata(官方網址為http://suricata-ids.org/),用來建置網路型入侵偵測系統,以監控內部網段中是否有異常的攻擊行為正在進行。

什麼是入侵偵測系統

一般而言,入侵偵測系統依偵測型式可分為網路型入侵偵測系統(Network-based Intrusion Detection System,NIDS)和主機型入侵偵測系統(Host-based Intrusion Detection System,HIDS)。

NIDS通常部署在網段的閘道(Gateway)上並監控整個網段的封包是否具有惡意的攻擊樣式,一旦發現具有惡意的攻擊行為正在進行,就會即時記錄該行為,甚至在當下直接阻擋該來源的連線。而HIDS則是直接安裝在主機上,藉由監控主機上的系統資源如紀錄檔或程序(Process)的變化來監控是否有惡意的行為正在攻擊主機。由於本文所介紹的入侵偵測系統為NIDS型式,因此就不多談HIDS型式的入侵偵測系統。

NIDS通常部署在網域閘道上,通過Sniffer(竊聽)的方式來即時監控網路內的封包並比對攻擊模式,當發現有疑似入侵行為時就會適時提出警告並記錄該行為,相關的網路部署如圖1所示。


▲圖1 NIDS網路部署示意圖。

NIDS部署在網段閘道上來監控網段內來往的封包,並與攻擊模式資料庫比對,一旦發現有符合攻擊樣式的網路封包,就會立即觸發管理者所設定的動作,例如記錄或通知管理者。

相信細心的人一定會發現,圖1中的入侵偵測系統是接在交換器(Switch)裝置前的集線器(Hub)裝置,為什麼不是與Switch裝置直接連接呢?這是因為封包在這兩種裝置上的傳遞方式不同的緣故。

在Hub上封包則是採用廣播(這有點像老師在課堂上講課,是說給全班同學聽一樣)的方式,當封包進入到Hub時,就會以廣播的方式將封包傳遞給連接在Hub上所有的主機,但只有符合該封包目的位址的主機會接收此封包,也就是說,封包會傳遞到連接至該Hub上的所有主機。但在一般情況下,只有需要該封包的主機才會接收下來,此即是正常模式下的網卡工作原理。

除此之外,網卡還有另外一種工作模式,即所謂的混亂(Promiscuous)模式,在Promiscuous模式下,不管封包的目的位址為何,網卡都會強制地將流經該網卡的所有封包資訊接收下來,也因為Promiscuous模式具有此類特性。所以,在一些以竊取資料為目的之木馬程式,都會在啟動木馬程式之前,強迫網卡進入Promiscuous模式,藉以監聽流經該網卡的所有封包資訊來取得機密的資訊。因為這個原因,許多安全監控軟體都會將網卡進入Promiscuous模式視為是一個重大的威脅。

可是,NIDS需要監控網段中所有的封包,因此在啟動時會將網卡的工作模式強制轉換到Promiscuous模式來接收所有的封包。

接著,以Linux系統為例來說明如何查看網卡目前的工作模式。可利用ifconfig指令查看目前網卡的狀況,在正常模式下,網卡僅會處理與本身相關的封包,並不會接收所有流經該網卡的封包資訊。如果要讓網卡進入Promiscuous模式,可利用「ifconfig [網卡代號] promisc」指令來強迫改變,圖2所示即為一個進入Promiscuous模式的網卡。


▲圖2 強制網卡進入Promiscuous模式。

在Promiscuous工作模式下,網卡會處理經過此網卡的所有封包,一般的NIDS軟體即是利用此種特性來取得網段內的所有來往封包,並比對是否有惡意樣式的封包。


追蹤我們Featrue us

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

我知道了!