天天看點

開源IDS/IPS-suricata架構之分組流水線模型

1 分組流水線模型

稍微有些過時的“auto”運作模式示例。

2 初始化

Suricata具有多種運作模式,每種模式都會初始化與操作關聯的線程,隊列和管道。這些模式通常與所選擇的捕獲裝置(比如一個抓包接口eth0)、IDS或IPS有關。捕獲裝置有:pcap、pcap檔案、nfqueue、ipfw,或者一個專有的捕獲裝置。啟動時隻選擇一種運作模式,-i選項用于pcap裝置,-r選項用于pcap檔案,-q用于nfqueue。

子產品用于封裝具有生命周期回調(比如,init、deinit)的某個主要功能。分組流水線模型中每個線程都是子產品的執行個體,這些線程由runmodes.c檔案定義的runmode初始化。runmode也初始化用于在子產品和隊列之間移動資料包的隊列和資料包處理程式。

初始化用于在子產品和隊列之間移動資料包的隊列和資料包處理程式。 在runmode初始化所有步驟完成後,線程被标記為可運作。

管理線程用于執行資料包管道之外的任務。 管理線程的更多細節應該放在這裡。

3 流水線模型基本組成

本文介紹重點pcap裝置runmode。

3.1 捕獲子產品(Capture Module)

pcap裝置使用提供的,諸如“eth0”這樣的名稱初始化。裝置一旦初始化,它就會開始收集資料包并傳遞給Suricata。然後,Suricata會對資料做一層薄封裝,使它與連結類型解碼器相容。

3.2 解碼子產品(Decode Module)

解碼是擷取緩沖區資料,并将其轉換為Suricata所支援的資料結構的過程。這些緩沖區被傳遞到指定的連接配接類型解碼器。目前支援的連接配接類型如下:LINKTYPE_LINUX_SLL、LINKTYPE_ETHERNET、LINKTYPE_PPP、LINKTYPE_RAW。

3.3 流子產品(Stream Module)

3.4 探測子產品(Detect Module)

探測子產品負責多個複雜的任務:加載所有的規則,初始化探測插件,建立資料包路由的探測組,最後使用所有應用的規則檢測資料包。

文章譯自:https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Packet_Pipeline

翻譯權譯者所有,轉發請注明出處,謝謝。

繼續閱讀