思科公司
在Snort 3分支中,產品概念被徹底重新思考,架構也被重新設計。 Snort 3 開發的關鍵領域包括:簡化設定和運行 Snort、配置自動化、簡化建置規則的語言、自動偵測所有協定、提供用於從命令列進行控制的 shell、積極使用多線程,不同處理器聯合存取單一配置。
已實施以下重大創新:
- 已過渡到新的配置系統,該系統提供簡化的語法並允許使用腳本動態生成設定。 LuaJIT用於處理設定檔。 基於 LuaJIT 的插件提供了規則和日誌系統附加選項的實作;
- 攻擊偵測引擎已經現代化,規則已經更新,並且添加了在規則中綁定緩衝區(黏性緩衝區)的功能。 使用Hyperscan搜尋引擎,可以根據規則中的正規表示式快速、更準確地使用觸發模式;
- 為 HTTP 添加了新的自省模式,該模式考慮了會話狀態並涵蓋了測試套件支援的 99% 的情況
HTTP 規避者 。 新增HTTP/2流量檢查系統; - 深度包檢測模式的效能已顯著提升。 增加了多線程資料包處理能力,允許資料包處理器同時執行多個線程,並根據 CPU 核心數量提供線性可擴展性;
- 實現了通用的配置存儲和屬性表,在不同子系統之間共享,透過消除重複訊息,顯著減少了記憶體消耗;
- 使用 JSON 格式的新事件記錄系統,可輕鬆與 Elastic Stack 等外部平台整合;
- 過渡到模組化架構,能夠透過連接插件並以可替換插件的形式實現關鍵子系統來擴展功能。 目前,Snort 3 已經實現了數百個插件,涵蓋了各個應用領域,例如,允許您在規則中添加自己的編解碼器、內省模式、日誌記錄方法、操作和選項;
- 自動偵測正在執行的服務,無需手動指定活動網路連接埠。
- 新增了對檔案的支持,以快速覆蓋相對於預設配置的設定。 為了簡化配置,snort_config.lua 和 SNORT_LUA_PATH 已停止使用。
新增了對動態重新載入設定的支援; - 程式碼提供了使用 C++14 標準中定義的 C++ 構造的能力(建置需要支援 C++14 的編譯器);
- 新增了新的 VXLAN 處理程序;
- 使用更新的替代演算法實現改進了按內容搜尋內容類型
博耶-摩爾 и超掃描 ; - 透過使用多執行緒編譯規則組來加速啟動;
- 新增了新的日誌機制;
- 新增了RNA(即時網路感知)檢查系統,該系統收集有關網路上可用的資源、主機、應用程式和服務的資訊。
來源: opennet.ru