襲雅 薛俊凱
摘要:本文主要研究一種基于Snort的主動式入侵防御系統(tǒng),利用協(xié)議分析的方法,有效解決了當前主流入侵防御系統(tǒng)中準確性不足、實時性較差的問題,提高了系統(tǒng)檢測效率和便捷性,有效增強了網(wǎng)絡入侵防御系統(tǒng)的性能和安全性,更好地滿足了復雜網(wǎng)絡環(huán)境中入侵行為檢測的需要。
關(guān)鍵詞:入侵檢測;網(wǎng)絡安全;Snort
中圖分類號:TP3 文獻標識碼:A 文章編號:1009-3044(2018)19-0038-02
本文主要研究一種基于Snort的主動式入侵檢測防御系統(tǒng),通過構(gòu)建通用的軟件漏洞檢測防御系統(tǒng),提升軟件系統(tǒng)安全檢測的效率和便捷性,并從網(wǎng)絡安全角度為網(wǎng)絡應用提供可靠服務。該系統(tǒng)能夠利用高度規(guī)則的網(wǎng)絡協(xié)議,采用協(xié)議分析的方法,有效提高檢測判斷的準確性與實時性等問題,更加準確地檢測出網(wǎng)絡中的攻擊行為,并進行實時、主動的防護,提高系統(tǒng)的性能和網(wǎng)絡的安全性,有效地防止黑客入侵。
1 研究背景
入侵檢測系統(tǒng)(IDS)是一種主動式防入侵工具,通過抓取并分析流量數(shù)據(jù),檢測相關(guān)入侵行為,并利用警報響應系統(tǒng)拒絕入侵攻擊;同時,IDS在對網(wǎng)絡進行監(jiān)控時不會為用戶的網(wǎng)絡性能造成負擔。因此,IDS運用脆弱性評估技術(shù)以及掃描手段,能夠在保證高效的網(wǎng)絡傳輸速率的情況下,減輕網(wǎng)絡管理人員負擔,提高網(wǎng)絡安全性。
入侵檢測系統(tǒng)的數(shù)據(jù)源提取是由Data模塊來實現(xiàn),在IDS獲得數(shù)據(jù)源的數(shù)據(jù)之后,此模塊能夠?qū)崿F(xiàn)對數(shù)據(jù)的簡單分析處理,再將經(jīng)過處理的數(shù)據(jù)交給Data分析模塊;Data分析模塊可以對數(shù)據(jù)進行深層次的分析,嗅探攻擊并根據(jù)分析的結(jié)果產(chǎn)生事件,再傳遞給事件響應處理模塊;事件響應模塊用于警告與具體的反應操作[1]。
當前主流的入侵檢測系統(tǒng)是開源的Snort,但Snort檢測規(guī)則的準確率和匹配效率限制了自身的檢測能力,若出現(xiàn)規(guī)則檢測的準確率和匹配效率不能滿足IDS的使用,就無法及時發(fā)現(xiàn)入侵攻擊行為,而且會影響計算機系統(tǒng)性能。為了解決Snort出現(xiàn)的這些問題,需要改進和優(yōu)化Snort系統(tǒng)的檢測規(guī)則,以加快其匹配速度,有效提高Snort的檢測效率。
2 基于Snort的入侵檢測防御系統(tǒng)研究
Snort系統(tǒng)是一個開源的、輕量級的、由C語言編寫的網(wǎng)絡入侵檢測系統(tǒng)。采用規(guī)則的搜索機制以及模式檢測技術(shù),能夠針對不同方式的入侵行為,提煉出入侵行為的特征碼,再根據(jù)要求規(guī)范輸出檢測規(guī)則,最終形成一個有規(guī)則數(shù)據(jù)庫,將其與捕獲的數(shù)據(jù)包進行比對分析,判斷入侵行為是否成立[2]。其優(yōu)點為對OS依賴性較低,能夠在多種硬件平臺穩(wěn)定運行;模塊化結(jié)構(gòu)的設(shè)計,以及文本文件方式存儲的檢測規(guī)則,使得Snort具有良好的可擴展性;Snort的警報機制的設(shè)置,能夠提供實時的安全服務,功能性強,有較廣的使用范圍。不足在于構(gòu)成組件較多,所以無法保證任意安裝的Snort系統(tǒng)能夠穩(wěn)定運行;自我適應能力差,在檢測入侵行為時,系統(tǒng)內(nèi)部的特征匹配算法不能很好地適應一些意外情況;BM算法沒能發(fā)揮其最大作用,造成檢測速度相對較慢;過程中不排除有誤報的情況,對于正常程序產(chǎn)生的部分數(shù)據(jù)流量也會發(fā)出警報[3]。
Snort入侵檢測系統(tǒng)主要由解碼器、預處理器、檢測引擎、日志報警系統(tǒng)等模塊組成。解碼器用于監(jiān)聽網(wǎng)絡上傳輸?shù)臄?shù)據(jù)包,進行協(xié)議分析,為檢測引擎提供備檢數(shù)據(jù);預處理器模塊用相應的插件來檢查原始數(shù)據(jù)包,發(fā)現(xiàn)數(shù)據(jù)的端口掃描、IP碎片等,組裝數(shù)據(jù)分片,提高檢測效率;檢測引擎模塊是Snort系統(tǒng)的核心模塊,當接收到數(shù)據(jù)包時,該模塊根據(jù)預先設(shè)置的規(guī)則檢查數(shù)據(jù)包,一旦發(fā)現(xiàn)有匹配的內(nèi)容和規(guī)則,就通知報警模塊,最終將結(jié)果記錄在日志數(shù)據(jù)庫中。
3 Snort系統(tǒng)規(guī)則的改進設(shè)計
由于規(guī)則檢測引擎模塊是Snort系統(tǒng)的核心模塊,因此若要實現(xiàn)基于Snort的主動式入侵檢測系統(tǒng)的功能必須改進檢測引擎模塊的性能,以提高檢測效率,其方法主要由如下3種。
1) 使用K-means聚類算法
K-means聚類算法生成系統(tǒng)的行為模式庫,過濾大量數(shù)據(jù)、添加異常檢測功能,以減少Snort系統(tǒng)誤報的次數(shù),提高系統(tǒng)的檢測速率和正確度。
K-means算法在數(shù)學上可以描述為如下幾個公式:
[D=?Ci]
[Ci≠?i=1,2,…,k]
[Ci?Cj=?i,j=1,2,…,k;i≠j]
其中,[D=Xi,i=1,2,…,n],[Xi]表示待處理的某一個數(shù)據(jù)對象,[D]是所有數(shù)據(jù)對象的集合,[n]代表數(shù)據(jù)集合[D]中數(shù)據(jù)對象的總數(shù),[k]為要劃分的聚類個數(shù);[Ci]表示其中的一個聚類。針對K-means聚類算法來說,保證劃分的聚類非空是首要前提,每個聚類集合中至少要包含一個數(shù)據(jù)對象;其次,要求類與類之間不允許相交,每個數(shù)據(jù)元素能且只能被劃分在一個聚類中,不會在類與類之間有相同的元素存在。此外,算法中還需使用誤差平方和準則函數(shù)對聚類結(jié)果的準確性進行評測。利用K-means算法,從聚類中心選取的優(yōu)化、值的選取和聚類準則函數(shù)等方面對Snort系統(tǒng)進行改進,提高了系統(tǒng)算法的聚類性能[4]。
2) 在檢測引擎中加入快速鏈表
添加一個快速鏈表到Snort檢測引擎模塊的第二維鏈表和第三維鏈表間,能夠縮短檢測鏈的長度,提高檢測速度,減少數(shù)據(jù)包被覆蓋的問題。
一般情況下,針對計算機對內(nèi)存和CPU速度不匹配的問題,大多數(shù)選擇在兩者之間加入Cache。由于Cache容量小,存取速度快,對CPU使用頻率較高的部分指令和數(shù)據(jù)進行緩存,以提高運行速度。因此,將Cache加入Snort系統(tǒng)中,能夠提高入侵檢測時數(shù)據(jù)包的匹配,提高工作效率。
3) 改進Snort系統(tǒng)的BM算法
通過將模式往后移動的方法進行字符匹配是BM算法的主要思想,所以關(guān)鍵問題就是移動多少位。移動一個字符位置是最簡單的做法,從理論上來說,模式串算法移動的位數(shù)越多,效率越高。因此,需要在保證數(shù)據(jù)包匹配正確的前提下,找出一種新方法使模式的移動位數(shù)盡可能的多[5]。本文提出一種改進方式,即通過減少比較次數(shù)和移動次數(shù)以達到提高匹配速度的目的。當文本串與模式串不匹配的時候,對比文本串中與模式串最右段對齊位的下一位,當模式串在遇到不匹配情況時,能跳過更多位,達到提高Snort檢測引擎的工作性能的效果。
4 結(jié)束語
本文通過對入侵檢測系統(tǒng)以及Snort系統(tǒng)的分析,提出了改進Snort入侵檢測系統(tǒng)的幾種方案,能夠主動檢測防御網(wǎng)絡入侵行為、網(wǎng)絡漏洞以及信息安全問題,保證網(wǎng)絡的安全性和可靠性?;赟nort的主動式入侵檢測防御系統(tǒng)的各個模塊,能夠相互鏈接,數(shù)據(jù)共享,并且能適用于較為廣泛和復雜的網(wǎng)絡環(huán)境,但是面對一些新的攻擊手段,Snort仍需在異常檢測和入侵防御方面繼續(xù)改進。
參考文獻:
[1] 黃娟. 網(wǎng)絡入侵檢測系統(tǒng)模式匹配算法的研究與實現(xiàn)[D].四川師范大學,2008.
[2] 孫立媛,朱亦寧,孫銳軒.Snort規(guī)則的分析與實現(xiàn)[J].計算機安全,2009(9):45-48.
[3] Syed Ali Raza Shah, Biju Issac.Performance comparison of intrusion detection systems and application of machine learning to Snort system[J].Future Generation Computer Systems,2017.
[4] 雷鵬瑋.基于Snort的入侵檢測系統(tǒng)的改進與實現(xiàn)[D]. 北京郵電大學, 2015.
[5] 王培鳳,李莉.一種改進的多模式匹配算法在Snort中的應用[J].計算機科學, 2012, 39(2): 72-74+79.