分模塊概述Snort插件機(jī)制
Snort作為一款輕量級的入侵檢測系統(tǒng),其廣受追捧的原因不僅是免費(fèi)的特性,并且Snort插件機(jī)制也是十分完善的。本篇文章簡單的通過分模塊來概述Snort插件機(jī)制
1. 預(yù)處理插件
以spp_開頭的文件。預(yù)處理插件在規(guī)則匹配誤用檢測之前運(yùn)行,完成的功能主要為
①模擬TCP/IP堆棧功能的插件,如TIP碎片重組、TCP流重組插件
②各種解碼插件:http解碼插件、unicode解碼插件、rpc解碼插件、telnet解碼插件等
③規(guī)則匹配無法進(jìn)行攻擊檢測時(shí)所用的插件:端口掃描插件、spade異常入侵檢測插件、bo檢測插件、arp欺騙檢測插件等。從各預(yù)處理插件文件名可對此插件功能做出推斷。
2. 處理插件
以sp_開頭的文件。處理插件在規(guī)則匹配階段的ParseRuleOption中被調(diào)用,輔助完成基于規(guī)則的匹配過程。每個(gè)規(guī)則處理函數(shù)通常對應(yīng)規(guī)則的選項(xiàng)中的一個(gè)關(guān)鍵字,實(shí)現(xiàn)對這個(gè)關(guān)鍵字的解釋。其主要功能為:
①檢查協(xié)議各字段,如TCPFlag、IcmpType、IpId、FragBits、Rpc、Dsize等;
②輔助功能,例如關(guān)閉連接、會(huì)話記錄、攻擊響應(yīng)、嚴(yán)重級別等。
3. 輸出插件
以spo_開頭的文件,又分為日志和警告兩種類型在兩個(gè)列表中,在規(guī)則匹配過程中和匹配結(jié)束后調(diào)用,以便記錄日志和警告。如同其它插件,它們也對應(yīng)一個(gè)關(guān)鍵字,規(guī)則中相應(yīng)關(guān)鍵字將激活這些插件的運(yùn)行。輸出插件和預(yù)處理插件除了注冊到不同的列表中之外,其它的過程很相似處理插件的過程其實(shí)也是大同小異,只是在初始化過程中有所不同而己。輸出和預(yù)處理插件的初始化通常只有一次,在內(nèi)存中只有一個(gè)實(shí)例,所以被注冊到一個(gè)列表中處理插件則完成每個(gè)匹配規(guī)則的一部分功能,所以處理插件為每個(gè)匹配規(guī)則初始化一次,然后插入到規(guī)則樹。
4. Snort的總體流程
Snort的入侵檢測流程分成兩大步第I步是規(guī)則的解析流程,包括從規(guī)則文件中讀取規(guī)則和在內(nèi)存中組織規(guī)則,其過程為
①讀取規(guī)則文件
②依次讀取每條規(guī)則
③解析規(guī)則,用相應(yīng)的規(guī)則語法表示
④在內(nèi)存中對規(guī)則進(jìn)行組織,建立規(guī)則語法樹。
第II步是使用這些規(guī)則進(jìn)行匹配的入侵流程。其過程為對從網(wǎng)絡(luò)上捕獲的每一條數(shù)據(jù)報(bào)文和在第I步建立的規(guī)則樹進(jìn)行匹配,若發(fā)現(xiàn)存在一條規(guī)則匹配該報(bào)文,就表示檢測到一個(gè)攻擊,然后按照規(guī)則規(guī)定的行為進(jìn)行處理若搜索完所有的規(guī)則都沒有找到匹配的規(guī)則,則視此報(bào)文正常。以上即是對總體架構(gòu)的梗概分析。
【編輯推薦】
- snort入侵檢測安裝及操作方法
- snort入侵檢測簡介及常用軟件
- Snort——輕型的IDS工具
- 用snort對抗IDS躲避技術(shù)
- SnortCenter不安全Sensor配置文件權(quán)限漏洞