呂秀華
摘要:本文對(duì)snort入侵檢測(cè)系統(tǒng)及基于免疫原理的入侵檢測(cè)技術(shù)進(jìn)行了探討和研究,利用snort系統(tǒng)作為誤用檢測(cè)系統(tǒng),把人工免疫的算法應(yīng)用到異常檢測(cè),用于檢測(cè)未知攻擊。在此基礎(chǔ)上設(shè)計(jì)了混合模式入侵檢測(cè)系統(tǒng)。
關(guān)鍵詞:入侵檢測(cè);免疫原理;誤用檢測(cè);異常檢測(cè)
中圖分類(lèi)號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)22-00000-00
隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)成為社會(huì)活動(dòng)中的必不可少的工具,大量重要的信息存儲(chǔ)在系統(tǒng)中,同時(shí),連入網(wǎng)絡(luò)中的計(jì)算機(jī)數(shù)量也在成倍增加,這些都使得信息安全問(wèn)題日益嚴(yán)重。網(wǎng)絡(luò)安全是網(wǎng)絡(luò)及應(yīng)用領(lǐng)域中一直研究的關(guān)鍵問(wèn)題,常見(jiàn)的網(wǎng)絡(luò)安全技術(shù)主要有身份驗(yàn)證、訪(fǎng)問(wèn)控制、加密技術(shù)、數(shù)字簽名技術(shù)、防火墻技術(shù)與入侵檢測(cè)技術(shù)。入侵檢測(cè)技術(shù)是防火墻技術(shù)的有利補(bǔ)充,是一種對(duì)網(wǎng)絡(luò)傳輸進(jìn)行實(shí)時(shí)監(jiān)視,在發(fā)現(xiàn)可以傳輸時(shí)發(fā)出報(bào)警或者采取主動(dòng)反應(yīng)措施的網(wǎng)絡(luò)安全技術(shù)。入侵檢測(cè)已經(jīng)成為網(wǎng)絡(luò)安全的一個(gè)重要的研究領(lǐng)域。
本文對(duì)snort入侵檢測(cè)系統(tǒng)及基于免疫原理的入侵檢測(cè)技術(shù)進(jìn)行了探討和研究,利用snort系統(tǒng)為誤用檢測(cè)系統(tǒng),把人工免疫的算法應(yīng)用到異常檢測(cè),用于檢測(cè)未知攻擊。在此基礎(chǔ)上設(shè)計(jì)了混合模式入侵檢測(cè)系統(tǒng)。
1 入侵檢測(cè)技術(shù)介紹
入侵檢測(cè)技術(shù)主要有兩種:誤用檢測(cè)和異常檢測(cè)。
誤用檢測(cè)(Misuse Detection)是假定所有入侵行為和手段(及其變種)都能夠表達(dá)為一種模式或特征,那么所有已知的入侵方法都可以用匹配的方法發(fā)現(xiàn)。誤用檢測(cè)的關(guān)鍵是如何表達(dá)入侵的模式,把真正的入侵和正常行為區(qū)分開(kāi)來(lái)。誤用檢測(cè)的優(yōu)點(diǎn)是可以有針對(duì)性地建立高效的入侵檢測(cè)系統(tǒng),其主要缺陷是不能檢測(cè)未知的入侵,也不能檢測(cè)已知入侵的變種,因此可能發(fā)生漏報(bào)。
異常檢測(cè)(Anomaly Detection)是假定所有入侵行為都是與正常行為不同的。異常檢測(cè)需要建立目標(biāo)系統(tǒng)及其用戶(hù)的正?;顒?dòng)模型,然后基于這個(gè)模型對(duì)系統(tǒng)和用戶(hù)的實(shí)際活動(dòng)進(jìn)行審計(jì),以判定用戶(hù)的行為是否對(duì)系統(tǒng)構(gòu)成威脅。常用的異常檢測(cè)方法有:專(zhuān)家系統(tǒng)、神經(jīng)網(wǎng)絡(luò)、機(jī)器學(xué)習(xí)、和人工免疫等。異常檢測(cè)的關(guān)鍵問(wèn)題是:① 特征量的選擇。異常檢測(cè)首先是要建立系統(tǒng)或用戶(hù)的“正?!毙袨樘卣鬏喞?這就要求在建立正常模型時(shí),選取的特征量既要能準(zhǔn)確地體現(xiàn)系統(tǒng)或用戶(hù)的行為特征,又能使模型最優(yōu)化,即以最少的特征量就能涵蓋系統(tǒng)或用戶(hù)的行為特征。 ②參考閾值的選定。因?yàn)樵趯?shí)際的網(wǎng)絡(luò)環(huán)境下,入侵行為和異常行為往往不是一對(duì)一的等價(jià)關(guān)系,這樣的情況是經(jīng)常會(huì)有的:某一行為是異常行為,而它并不是入侵行為。同樣存在某一行為是入侵行為,而它卻并不是異常行為的情況。這樣就會(huì)導(dǎo)致檢測(cè)結(jié)果的虛警和漏警的產(chǎn)生。由于異常檢測(cè)是先建立正常的特征輪廓作為比較的參考基準(zhǔn),這個(gè)參考基準(zhǔn)即參考閾值的選定是非常關(guān)鍵的,閾值定的過(guò)大,那漏警率會(huì)很高;閾值定的過(guò)小,則虛警率就會(huì)提高。合適的參考閾值的選定是影響這一檢測(cè)方法準(zhǔn)確率的至關(guān)重要的因素。
誤用檢測(cè)能夠較好地檢測(cè)已知類(lèi)型的攻擊,通常誤報(bào)率較低,因此大多數(shù)的商業(yè)IDS都采用這種方式。但是,該類(lèi)型的系統(tǒng)無(wú)法檢測(cè)未知類(lèi)型的攻擊。面對(duì)層出不窮的新型攻擊顯得捉襟見(jiàn)肘。異常檢測(cè)雖然可以檢測(cè)未知類(lèi)型的攻擊,但又伴隨著較高的誤報(bào)率,而且檢測(cè)算法的復(fù)雜度一般較高,所以在實(shí)際環(huán)境中的應(yīng)用不是很廣。由于異常檢測(cè)和誤用檢測(cè)這兩種方法各有所長(zhǎng),選擇其中一種方法忽視掉的入侵很可能會(huì)被另外一種所識(shí)別。因此,可以通過(guò)尋找一種有效的協(xié)調(diào)方式把誤用檢測(cè)和異常檢測(cè)結(jié)合起來(lái),發(fā)揮兩者各自的優(yōu)點(diǎn)。彌補(bǔ)各自的缺點(diǎn),從而獲得更好的性能。
2 snort系統(tǒng)分析
Snort是目前使用最廣泛的開(kāi)放源代碼入侵檢測(cè)系統(tǒng),它具有實(shí)時(shí)數(shù)據(jù)流量分析和對(duì)網(wǎng)絡(luò)上的IP網(wǎng)絡(luò)數(shù)據(jù)包日志進(jìn)行測(cè)試等功能,能夠進(jìn)行協(xié)議分析,完成內(nèi)容搜索/匹配。它能夠檢測(cè)各種不同的攻擊方式,對(duì)攻擊進(jìn)行實(shí)時(shí)報(bào)警。此外,Snort具有很好的擴(kuò)展性和可移植性。從本質(zhì)上來(lái)說(shuō),Snort是一個(gè)基于誤用檢測(cè)的IDS。snort系統(tǒng)是通過(guò)一個(gè)已有的規(guī)則庫(kù)進(jìn)行人侵行為的檢測(cè),其中沒(méi)有規(guī)則的擴(kuò)充機(jī)制,這就使得它對(duì)于新的攻擊行為無(wú)能為力。
2.1 snort系統(tǒng)架構(gòu)
Snort入侵檢測(cè)系統(tǒng)主要由四部分組成:數(shù)據(jù)包嗅探器、預(yù)處理器、檢測(cè)引擎、報(bào)警輸出模塊。系統(tǒng)體系結(jié)構(gòu)如圖1所示。
2.2 snort系統(tǒng)工作流程
Snort的基本功能是數(shù)據(jù)包嗅探器,數(shù)據(jù)包嗅探是Snort工作的開(kāi)始,Snort取得數(shù)據(jù)包后先用預(yù)處理插件處理,然后經(jīng)過(guò)檢測(cè)引擎中的所有規(guī)則鏈,如果檢測(cè)到有符合規(guī)則鏈的數(shù)據(jù)包,則系統(tǒng)就會(huì)根據(jù)輸出設(shè)置把該信息記錄到文件并報(bào)警。Snort的預(yù)處理器、檢測(cè)引擎和報(bào)警模塊都是插件結(jié)構(gòu),插件程序按照Snort提供的插件接口完成,使用時(shí)動(dòng)態(tài)加載,在不用修改核心代碼的前提下使Snort的功能和復(fù)雜性擴(kuò)展更容易。既保障了插件程序和snort核心代碼的緊密相關(guān)性,又保障了核心代碼的良好擴(kuò)展性。
3 人工免疫原理與入侵檢測(cè)
3.1 生物免疫系統(tǒng)
生物免疫系統(tǒng)(Biology Immune System, BIS)是一個(gè)分布式、自組織和具有動(dòng)態(tài)平衡能力的自適應(yīng)復(fù)雜系統(tǒng)。它對(duì)外界入侵的抗原(Antigen, Ag),可由分布全身的不同種類(lèi)的淋巴細(xì)胞產(chǎn)生相應(yīng)的抗體(Antibody, Ab),其目標(biāo)是盡可能保證整個(gè)生物系統(tǒng)的基本生理功能得到正常運(yùn)轉(zhuǎn)。生物免疫系統(tǒng)具有良好的多樣性、耐受性、免疫記憶、分布式并行處理、自組織、自學(xué)習(xí)、自適應(yīng)等特點(diǎn),這些誘人特性,引起研究人員的普遍關(guān)注。
人工免疫系統(tǒng)(Artificial Immune System, AIS)就是研究、借鑒、利用生物免疫系統(tǒng)的原理、機(jī)制而發(fā)展起來(lái)的各種信息處理技術(shù)、計(jì)算技術(shù)及其在工程和科學(xué)中的應(yīng)用而產(chǎn)生的多種智能系統(tǒng)的統(tǒng)稱(chēng)。計(jì)算機(jī)免疫系統(tǒng)是人工免疫、計(jì)算機(jī)科學(xué)的一個(gè)分支,是繼神經(jīng)網(wǎng)絡(luò)、模糊系統(tǒng)、進(jìn)化計(jì)算、人工免疫等研究之后的又一個(gè)研究熱點(diǎn)。在眾多的研究領(lǐng)域中,引入免疫概念后取得了滿(mǎn)意的成果,特別在計(jì)算機(jī)病毒防治、網(wǎng)絡(luò)入侵檢測(cè)上,基于免疫的網(wǎng)絡(luò)安全技術(shù)克服了傳統(tǒng)網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的缺陷,被認(rèn)為是一條非常重要且有巨大實(shí)際應(yīng)用前景的研究方向。
3.2 免疫算法
Forrest 等研究人員受生物免疫系統(tǒng)啟發(fā)提出了否定選擇算法。否定選擇,又稱(chēng)陰性選擇。否定選擇的主要思想是:建立一個(gè)隨機(jī)檢測(cè)器集,從中進(jìn)行選擇,將對(duì)系統(tǒng)無(wú)害的自體信息排除,剩下的則認(rèn)為是異常體的集合。
本文提出的檢測(cè)器生成器算法(如圖2)是在原有的否定算法的基礎(chǔ)上進(jìn)行了改進(jìn)。利用誤用檢測(cè)模式先檢測(cè)出已經(jīng)確定的攻擊模式,對(duì)于未知的異常數(shù)據(jù)則用免疫算法的檢測(cè)器檢測(cè),因此本文的檢測(cè)器生成是以少量的異常數(shù)據(jù)為基礎(chǔ)生成的,而不是一種不可能存在的模式,這樣,產(chǎn)生的檢測(cè)器數(shù)量不會(huì)像原始算法產(chǎn)生的那么多,這些檢測(cè)器是有效的,有利于提高檢測(cè)效率,節(jié)約存儲(chǔ)空間。
4 系統(tǒng)設(shè)計(jì)
4.1 系統(tǒng)設(shè)計(jì)思路
Snort基于誤用檢測(cè)技術(shù),其檢測(cè)能力受到規(guī)則數(shù)據(jù)庫(kù)中規(guī)則的限制,無(wú)法檢測(cè)到未知類(lèi)型的入侵行為,而基于免疫的異常檢測(cè)技術(shù)的優(yōu)點(diǎn)是能夠檢測(cè)到未知類(lèi)型的入侵行為。
一般情況下,網(wǎng)絡(luò)中絕大部分?jǐn)?shù)據(jù)包都是正常的,可以在Snort檢測(cè)引擎之前加入異常檢測(cè)引擎來(lái)過(guò)濾掉大部分正常數(shù)據(jù)。減少Snort檢測(cè)引擎的負(fù)擔(dān),提高其檢測(cè)效率;由于Snort支持插件方式,因此將異常檢測(cè)引擎編寫(xiě)成插件,通過(guò)Snort提供的插件接口,使用時(shí)動(dòng)態(tài)加載,可方便地實(shí)現(xiàn)在Snort中添加異常檢測(cè)的功能。對(duì)于那些不符合網(wǎng)絡(luò)正常行為模型的數(shù)據(jù)包,可將其視為異常數(shù)據(jù)包,先送至誤用檢測(cè)引擎作進(jìn)一步的檢測(cè)。經(jīng)過(guò)誤用檢測(cè)引擎未發(fā)現(xiàn)入侵行為的異常數(shù)據(jù)包很可能是新的入侵行為產(chǎn)生的數(shù)據(jù)包,對(duì)這些異常數(shù)據(jù)包再通過(guò)免疫的異常檢測(cè)模塊可以判斷是否新的入侵行為模式,然后將這些入侵行為模式轉(zhuǎn)換為Snort入侵檢測(cè)規(guī)則并添加到規(guī)則庫(kù)中,這樣誤用檢測(cè)引擎就可以檢測(cè)到新的入侵行為。
4.2 系統(tǒng)架構(gòu)
本文提出的檢測(cè)模型系統(tǒng)架構(gòu)如圖3所示。
系統(tǒng)主要包括6個(gè)功能模塊:
數(shù)據(jù)包捕獲和解碼子系統(tǒng),用來(lái)捕獲網(wǎng)絡(luò)的傳輸數(shù)據(jù)并按照TCP/IP協(xié)議的不同層次將數(shù)據(jù)包進(jìn)行解析;
數(shù)據(jù)預(yù)處理,是介于解碼器與檢測(cè)引擎之間的可插入模塊,提供一些對(duì)解碼后的數(shù)據(jù)包及一些應(yīng)用層協(xié)議的附加處理及解碼功能;
異常檢測(cè)引擎,負(fù)責(zé)對(duì)數(shù)據(jù)包進(jìn)行檢測(cè),并過(guò)濾掉正常的數(shù)據(jù)包;并將可疑的異常數(shù)據(jù)包輸出到snort誤用檢索引擎模塊;
Snort誤用檢測(cè)引擎模塊,把獲得的網(wǎng)絡(luò)數(shù)據(jù)與規(guī)則庫(kù)進(jìn)行比較,如果匹配,則報(bào)警;否則,作為異常數(shù)據(jù)存入異常文件;
基于免疫原理檢測(cè)模塊,對(duì)異常文件數(shù)據(jù)進(jìn)行免疫檢測(cè),檢測(cè)出新的入侵行為模式,調(diào)用報(bào)警模塊,并轉(zhuǎn)換為符合snort規(guī)則語(yǔ)法的入侵檢測(cè)規(guī)則,然后添加到規(guī)則庫(kù)中。
該系統(tǒng)的主要優(yōu)點(diǎn):結(jié)合了誤用檢測(cè)與異常檢測(cè)的優(yōu)點(diǎn),提高了檢測(cè)效率,應(yīng)用免疫原理提高了檢測(cè)未知攻擊的檢測(cè)的能力,可以不斷更新規(guī)則庫(kù),檢測(cè)某些新變種的入侵。
4.3 系統(tǒng)實(shí)現(xiàn)
本文改進(jìn)模型的實(shí)現(xiàn)是基于開(kāi)源網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)Snort及其相關(guān)組件的,這些都可以通過(guò)互聯(lián)網(wǎng)免費(fèi)獲得。具體實(shí)現(xiàn)過(guò)程分為以下幾步進(jìn)行:
1)在Windows系統(tǒng)下部署一個(gè)簡(jiǎn)單的snort網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)。用到的主要軟件有:Snort、Winpcap、jpgraph、Mysql、Apache、php、ADODB、ACID等.對(duì)這些軟件進(jìn)行合理的安裝和配置,構(gòu)建起一個(gè)功能較完善的snort入侵檢測(cè)系統(tǒng)。
2)將可疑數(shù)據(jù)存入可疑數(shù)據(jù)庫(kù)并對(duì)其進(jìn)行分類(lèi),使新的人侵?jǐn)?shù)據(jù)和正常數(shù)據(jù)分開(kāi)。這部分通過(guò)在ACID(AnalysisConsole for Intrusion Databases)中加入相應(yīng)的處理頁(yè)面來(lái)人機(jī)交互實(shí)現(xiàn)。
3)利用數(shù)據(jù)挖掘算法構(gòu)建正常行為模式庫(kù)并實(shí)現(xiàn)異常檢測(cè)引擎模塊。異常檢測(cè)引擎模塊在Snort程序中使用C語(yǔ)言來(lái)實(shí)現(xiàn)。
4)對(duì)異常數(shù)據(jù)進(jìn)行向量轉(zhuǎn)換,利用免疫算法對(duì)異常入侵?jǐn)?shù)據(jù)進(jìn)行檢測(cè),如果是攻擊數(shù)據(jù)則轉(zhuǎn)換成適合Snort的規(guī)則。這部分使用C語(yǔ)言來(lái)實(shí)現(xiàn)。
5 結(jié)束語(yǔ)
本文提出了—個(gè)混合型的入侵檢測(cè)系統(tǒng),利用snort的預(yù)處理技術(shù)進(jìn)行異常檢測(cè)分類(lèi)過(guò)濾掉大量正常數(shù)據(jù),提高人侵檢測(cè)系統(tǒng)的數(shù)據(jù)處理能力。再利用誤用檢測(cè)引擎檢測(cè)已知類(lèi)型的攻擊。對(duì)于無(wú)法確定的攻擊則由后續(xù)的基于免疫原理異常檢測(cè)模塊做二次檢驗(yàn);該系統(tǒng)可以進(jìn)行在線(xiàn)的檢測(cè)工作,可以自動(dòng)更新規(guī)則庫(kù),記憶新類(lèi)型的攻擊,靈活性較高,檢測(cè)性較強(qiáng)。
參考文獻(xiàn):
[1] 宋勁松.網(wǎng)絡(luò)入侵檢測(cè)[M].國(guó)防工業(yè)出版社,2006.
[2] 楊義先,鈕心忻.入侵檢測(cè)理論與技術(shù)[M].高等教育出版社,2007.
[3] 郭文忠,陳國(guó)龍,陳慶良,等.基于粒子群和人工免疫的混合入侵檢測(cè)系統(tǒng)研究[J].計(jì)算機(jī)工程與科學(xué),2007(29,10).
[4] 袁暉.基于Snort的入侵檢測(cè)系統(tǒng)安全性研究[J].計(jì)算機(jī)科學(xué),2008(35,4).
[5] 盤(pán)紅華.基于數(shù)據(jù)挖掘的Snort入侵檢測(cè)模型設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2008(8).