袁珊珊

摘要:網絡應用的普及在給人們帶來無窮便利的同時也使網絡安全問題日益凸顯。對此,本文提出了基于Snort的高速網絡入侵檢測系統的總體設計方案。為了適應高速網絡環境,本文在研究入侵檢測技術的過程中,使用了PF_RING技術來實現對數據包的離速捕獲,通過對多個Snort進程實現對數據包的高速處理。在設計入侵檢測查詢分析系統模塊中,可把警告數據方便的展示在用戶面前,實現警告數據的可視化顯示。經過檢測發現,增強了Snort對入侵攻擊的檢測能力。
關鍵詞:入侵檢測;網絡安全
今天,網絡通信技術已經滲透到社會經濟,文化和科學等各個領域,影響著人們工作和學習。從近年來互聯網用戶信息泄露的角度看,目前的形勢在令人震驚之余也讓人極為擔心,互聯網的安全問題不僅影響到國家的經濟發展,而且對國家安全影響很大。目前市場上已經有大量的入侵檢測系統軟件,但還無法針對IPv6網絡數據包的特征進行檢測,還無法和好的解決IPv6網絡中的安全問題。
1 入侵檢測系統
1.1 基于主機的入侵檢測系統
基于主機的入侵檢測系統用于保護運行關鍵應用程序的服務器。它監視和分析主機審計記錄和日志文件以檢測入侵。日志包含系統中發生的異常和意外行為的證據。通過這些證據,可以檢測并顯示、指出有人正在入侵或成功入侵系統,并會迅速啟動相應的應急響應計劃[2]。
1.2 基于網絡的入侵檢測系統
根據待監測網絡入侵檢測包的內容,基于網絡的入侵檢測系統所做的工作主要包括原始數據源、網絡包,以及對可疑現象的分析等,通過監聽共享網絡上的通信數據收集數據,主機無需提供嚴格的審計,提供對網絡的全面保護,而不必考慮異構主機的不同體系結構。
1.3 基于誤用入侵檢測系統
誤用式入侵檢測系統是基于網絡入侵或過去積累的系統缺陷建立的入侵規則來的檢測入侵系統。在此錯誤使用檢測的基礎上,構建基于已知攻擊方法的攻擊特征庫,對所獲取的數據進行處理后進行特征驗證,如果驗證成功則認為是侵入性的,否則為合法。盡管它意味著入侵行為。
這種入侵檢測系統開發的優點是準確性高,效率高,誤報率低。檢測條件可以清楚地描述。缺點是只檢測模式庫中現有的攻擊類型,并且攻擊特征庫很難收集和更新。因為它取決于主機平臺,所以便攜性較差。
2.Snort與網絡安全防護
2.1 Snort的體系結構
so時主要包含五個基本功能模塊,嗅探器,解碼器,預處理器,檢測引擎和警報輸出。嗅探器是數據包的集合,是整個系統的基礎,嗅探器必須保證高速數據包,并且丟包率低。這與硬件處理能力和軟件效率有關。解碼器和預處理插件可以預處理數據,以便檢測引擎稍后可以檢測數據。檢測弓!擎是整個系統的核心。Snort的系統性能很大程度上取決于檢測引擎的準確性和效率。警報輸出插件可以使用各種方法輸出警報信息。各個模塊可按照Snort提供的插件接口函數完成,可以根據實際需要動態的加載或者刪除某個模塊,這樣既能保證插件程序和核心代碼的緊密相關性,又具有良好模塊化設計思想,使Snort整個體系結構組織非常清晰,充分體現了追求性能、簡單靈活和可擴展性的設計思想[4]。
2.2 核心檢測模塊工作流程
通過研究Snort2.3.3源代碼,得出其核心檢測流程應該分為兩部分:第一步是規則的解析流程,包括從規則文件中讀取規則和在內存中組織規則;第二步是使用這些規則進行匹配的檢測流程。
1、規則解析流程時,首先讀取規則文件,緊接著讀取每一條規則;然后對其進行分析,并用相應的規則語法表示,建立規則語法樹。
2、檢測流程進行時,首先對收集到的數據報進行解碼,然后調用預處理函數對解碼后的報文進行預處理,再利用規則樹對數據報進行匹配。在規則樹匹配過程中,Snort要對規則樹從上到下依次進行匹配判斷,一直到規則選項節點。具體步驟如下:
數字數據報解碼:主要在decode.c中調用各種解碼函數并分析獲取的消息。這些消息解碼函數是DecodeEthPkt,DeeodeFDDIPkt,DecodeICMP,DecodeTCP等等。
預處理器預處理器:在匹配解碼數據報之前,主要調用預處理功能列表中的函數。這些功能包括數據片段重構,流重組,代碼轉換周。
規則匹配規則:在Snort中,它被稱為“二維空間函數指針鏈的遞歸檢測機制”,它主要通過使用先前構建的規則語法樹來遞歸檢查數據報,并入侵發現的。它分為三個步驟:鏈的第一次查找,規則頭的匹配以及規則選項的匹配。
TAG列表匹配:調用CheckTagList進行TAG相關檢查,記錄必要的信息。通過分析,可以理解整個誤用檢測方法。
3.基于Snort入侵檢測系統的設計與實現
3.1 系統體系結構
本系統采用三次結構,包括:網絡入侵檢測層、數據庫服務層和數據分析控制層。
3.1.1 網絡入侵檢測層
Snort通過傳感器對捕獲的數據包進行入侵檢測,網絡入侵檢測層又叫傳感器層,傳感器可能有多個。傳感器安裝在需要監控的網段中,傳感器上由兩塊網卡構成,一塊用于捕獲接口,一塊用于管理接口。捕獲接口沒有IP地址,需要設置成混雜模式接受所有的數據包。管理接口需要與數據庫層直接通信,傳遞入侵報警的信息。
3.1.2 數據庫服務層
網絡入侵檢測層的管理接口的傳感器傳遞入侵報警信息會存儲在數據庫中。用戶可以對數據庫中的數據查詢、組織和管理。需要注意的是,用于管理接口的傳感器一定要能夠連接到數據庫,打 開防火墻的相關端口,防止和防火墻的安全策略沖突。
3.1.3 數據分析控制層
數據分析控制層顯示數據,圖形化顯示使用了圖形類庫,數據分析控制功能更全面,更易于管理使用。用戶可通過瀏覽器如IE、Google Chrome等瀏覽器訪問查看管理。
3.2 系統實現
3.2.1 軟件配置與安裝
WinPcap:WinPcap的安裝簡單,只需按照提示安裝即可,無需其他設置。Snort將編譯好的Snort部署到C盤目錄下,然后添加配置規則庫,將snortrules中的rules等規則文件夾復制到C:\Snort目錄下。修改Snort配置文件,設置規則庫的位置、檢測的網段、需要加載的引擎和預處理、數據庫的配置等,還需要將snortrules中的動態規則加入到c:\snortVib目錄下的新建文件夾snort_dynamicrules中。運行命令C:\Snort\bin>snort.exe.W可查看安裝是否成功。
Mysql:本系統采用Mysql數據庫,Mysq]數據庫的安裝方便,使用靈活,選擇典型安裝,按照提示即可,為方便起見,用戶名密碼均設置為了Snort。
3.2.2 系統實現界面
系統搭建完成,通過BASE登錄,Snort入侵檢測搭建配置完成后,將實時監控網絡數據包,并通過數據庫輸出接口將入侵日志傳送到Mysql數據庫中,數據分析控制臺則可以通過數據庫接口讀取數據,并顯示在base上。
顯示的信息有:報警事件的總數量、每日新增加報警數量、攻擊源IP地址、對應的端口號、不同協議類型異常入侵所占的比例等。點擊鏈接,可以查看具體的報警日志數據,如圖3.2所示具體部分報警日志數據。
參考文獻
[1]朱琨,張琪一機器學習在網絡入侵檢測中的應用[J].數據采集與處理,2017,32(03):479-488.
[2]于源源.基于模糊聚類分析的網絡入侵檢測研究[D].中國地質大學(北京),2017.
[3]孫琦麟.墓于免疫克隆選擇加權樸素貝葉斯分類器的網絡入侵檢測[D].蘭州理工大學,2017.
[4]胡威.一種改進的K-means算法在網絡入侵檢測中的應用研究[D].合肥工業大學,2017.
[5]王戰紅.特征和分類器參數組合優化的網絡入侵檢測[J].南京理工大學學報,2017,41(01):59-64.
[6]袁琴琴,呂林濤.基于改進蟻群算法與遺傳算法組合的網絡入侵檢測[J].重慶郵電大學學報(自然科學版),2017,29(01):84-89.
[7]封化民,李明偉,侯曉蓮,徐治理.基于SMOTE和GBDT的網絡入侵檢測方法研究[J].計算機應用研究,2017,34(12):3745-3748.
[8]安攀峰.基于加權SVM的工業控制網絡入侵檢測算法研究[D].沈陽理工大學,2017.