[摘要] 網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(IDS)是保障網(wǎng)絡(luò)安全的有效手段,但目前的入侵檢測(cè)系統(tǒng)仍不能有效識(shí)別新型攻擊。應(yīng)用人工免疫的原理,設(shè)計(jì)一種新的基于免疫的入侵檢測(cè)系統(tǒng)。針對(duì)目前免疫算法的不足,設(shè)計(jì)了一個(gè)K分字符串匹配算法,使檢測(cè)效率大大提高。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)在識(shí)別新型攻擊上具有較好的性能。
[關(guān)鍵詞] 人工免疫 編輯距離 網(wǎng)絡(luò)安全 入侵檢測(cè)
一、引言
入侵檢測(cè)是網(wǎng)絡(luò)安全的重要研究領(lǐng)域,主要有誤用檢測(cè)(misuse detection)和異常檢測(cè)(anomaly detection)兩類技術(shù)。其中,誤用檢測(cè)是根據(jù)已知的攻擊特征建立一個(gè)特征庫(kù),然后將網(wǎng)絡(luò)采集的數(shù)據(jù)與特征庫(kù)中特征進(jìn)行一一匹配,若存在匹配的特征,則表明其是一個(gè)入侵行為。而異常檢測(cè)則是將用戶正常的行為特征存儲(chǔ)在特征數(shù)據(jù)庫(kù)中,然后將用戶當(dāng)前行為與特征庫(kù)中的特征進(jìn)行比較,若偏離達(dá)到了一定程度,則說(shuō)明發(fā)生了異常。這兩種技術(shù)各有優(yōu)缺點(diǎn),誤用檢測(cè)能夠準(zhǔn)確檢測(cè)到已知攻擊事例,但對(duì)新型攻擊行為卻無(wú)能為力;異常檢測(cè)可以檢測(cè)到新型攻擊,其誤檢率卻比較高,且不能描述入侵行為的類別。
免疫系統(tǒng)是生物體信息處理系統(tǒng)的重要組成部分,肩負(fù)著保護(hù)機(jī)體安全的重任。它實(shí)質(zhì)上是一個(gè)大規(guī)模的分布式信息處理系統(tǒng),具有識(shí)別自我與非我、學(xué)習(xí)、記憶和模式識(shí)別等重要處理機(jī)制。免疫系統(tǒng)由許多執(zhí)行免疫功能的器官、細(xì)胞、分子等組成,能將體內(nèi)的細(xì)胞或分子區(qū)分為屬于自體的種類和外部來(lái)源的非自體種類。
為了使入侵檢測(cè)系統(tǒng)能檢測(cè)到新型攻擊,人們進(jìn)行了大量的研究工作。而入侵檢測(cè)系統(tǒng)與免疫系統(tǒng)有許多相似之處,它們都肩負(fù)著維護(hù)自身安全的使命,同樣要對(duì)新的信息辨別是“自我”還是“非我”。因此模擬免疫系統(tǒng)特征,將人工免疫技術(shù)應(yīng)用到入侵檢測(cè)系統(tǒng),是最近比較熱點(diǎn)的研究方向。
二、人工免疫的生物學(xué)原理
免疫系統(tǒng)是一個(gè)極其復(fù)雜且協(xié)調(diào)周密的系統(tǒng),它由具有免疫功能的器官、組織、細(xì)胞、免疫效應(yīng)分子和有關(guān)的基因組成。淋巴細(xì)胞是免疫系統(tǒng)中最重要的一種細(xì)胞,它作為獨(dú)立的“檢測(cè)器”分布在體內(nèi)淋巴系統(tǒng)中,主要由B細(xì)胞和T細(xì)胞組成。T細(xì)胞在胸腺中發(fā)育成熟,在免疫過(guò)程中起著協(xié)調(diào)的作用;B細(xì)胞則在骨髓中發(fā)育成熟,通過(guò)其表面的抗體識(shí)別特定的抗原,并與抗原結(jié)合將其消滅。
免疫系統(tǒng)的主要功能有:免疫防御、免疫自穩(wěn)與免疫監(jiān)視。其中免疫防御主要是抵抗病原體的入侵,免疫自穩(wěn)維護(hù)內(nèi)環(huán)境的相對(duì)穩(wěn)定,免疫監(jiān)視則消滅突變細(xì)胞。免疫系統(tǒng)的核心是免疫應(yīng)答。在識(shí)別過(guò)程中,免疫系統(tǒng)對(duì)自身的抗原不產(chǎn)生免疫應(yīng)答,對(duì)外來(lái)的抗原則應(yīng)答并將其清除。克隆選擇和否定選擇也是抗體生成和深化過(guò)程中的兩個(gè)重要過(guò)程。當(dāng)抗原進(jìn)入個(gè)體時(shí),帶有該抗原受體的淋巴細(xì)胞搜尋并結(jié)合抗原,激發(fā)增殖和分化,產(chǎn)生抗原特異細(xì)胞的克隆。否定選擇則是機(jī)體內(nèi)先產(chǎn)生大量隨機(jī)抗體,把對(duì)“自身”抗原特質(zhì)產(chǎn)生破壞的清除出去,以免對(duì)自身造成傷害,剩余的抗體可以檢測(cè)外來(lái)物質(zhì)。另外,免疫系統(tǒng)還具有免疫記憶功能,免疫系統(tǒng)將與侵入抗原反應(yīng)的抗體作為記憶細(xì)胞保留下來(lái),當(dāng)有同類抗原再次侵入時(shí),相應(yīng)的記憶細(xì)胞會(huì)被激活,并產(chǎn)生大量的抗體,從面縮短了免疫反應(yīng)的時(shí)間。
三、基于人工免疫的入侵檢測(cè)模型
人工免疫系統(tǒng)是生物免疫系統(tǒng)的模擬,它具有抗噪、自主學(xué)習(xí)、自組織等特性,能夠很清晰地表達(dá)學(xué)習(xí)的知識(shí),同時(shí)結(jié)合了分類器、人工神經(jīng)網(wǎng)絡(luò)、機(jī)器學(xué)習(xí)等系統(tǒng)的優(yōu)點(diǎn)。
1.人工免疫算法流程
我們將入侵檢測(cè)系統(tǒng)模擬成生物免疫系統(tǒng),把進(jìn)入計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)視為抗原。根據(jù)免疫系統(tǒng)的理論,為了檢測(cè)出抗原是“自我”還是“非我”,需要系統(tǒng)生成大量的抗體。進(jìn)入計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)都是二進(jìn)制字符串,所以采用固定長(zhǎng)度的字符串表示抗體。我們?cè)O(shè)計(jì)了兩種產(chǎn)生抗體的方法,一種在實(shí)時(shí)檢測(cè)過(guò)程中生成,另一種為隨機(jī)產(chǎn)生。其中隨機(jī)產(chǎn)生抗體的過(guò)程即為接種疫苗的過(guò)程。其人工免疫算法流程如圖1所示。
從流程圖中可以看出,抗體隨機(jī)產(chǎn)生后,先要進(jìn)行否定選擇,把對(duì)自身產(chǎn)生傷害的抗體清除。滿足條件的抗體加入疫苗模式集中。檢測(cè)過(guò)程中將疫苗庫(kù)中的疫苗與實(shí)時(shí)抗原結(jié)合,若有匹配的抗原則報(bào)警。如果此警報(bào)為一攻擊行為,則將此抗體加入抗體庫(kù)中;反之則從疫苗庫(kù)中刪除。
2.入侵檢測(cè)系統(tǒng)模型
目前已經(jīng)有很多研究人員將免疫理論應(yīng)用到入侵檢測(cè)系統(tǒng)當(dāng)中,但很多只是考慮網(wǎng)絡(luò)數(shù)據(jù)包的包頭數(shù)據(jù),丟棄了包含重要信息的數(shù)據(jù)包負(fù)載部分,從而造成很高的漏報(bào)率。為此,我們使用tcpdump截獲網(wǎng)絡(luò)數(shù)據(jù)包,對(duì)整個(gè)數(shù)據(jù)包進(jìn)行匹配檢查。先將系統(tǒng)在正常網(wǎng)絡(luò)流量下運(yùn)行一段時(shí)間,對(duì)檢測(cè)系統(tǒng)進(jìn)行訓(xùn)練。訓(xùn)練時(shí)期截獲的數(shù)據(jù)包均為正常數(shù)據(jù),我們把它存入“自身”數(shù)據(jù)庫(kù)中。入侵檢測(cè)系統(tǒng)的模型如圖2所示。
入侵檢測(cè)模型的左邊部分是訓(xùn)練過(guò)程。其中訓(xùn)練數(shù)據(jù)是不含攻擊行為的學(xué)習(xí)數(shù)據(jù),此數(shù)據(jù)全部存入“自身”庫(kù)中。經(jīng)過(guò)一段時(shí)間正常數(shù)據(jù)的學(xué)習(xí)之后,就可以通過(guò)與庫(kù)中的數(shù)據(jù)進(jìn)行比較生成疫苗。
抗體庫(kù)在檢測(cè)過(guò)程中不斷地更新完善,使系統(tǒng)能檢測(cè)各類新型攻擊。自身產(chǎn)生抗體的方法如圖1中所述,此方法模擬免疫系統(tǒng)的否定選擇,對(duì)新型攻擊的檢測(cè)有一定的效果。另一種產(chǎn)生抗體的方法是,將網(wǎng)絡(luò)上截獲的數(shù)據(jù)包與“自身”庫(kù)中的數(shù)據(jù)比較,跟庫(kù)中數(shù)據(jù)不匹配的則認(rèn)為是異已抗原,將其加入到疫苗庫(kù)中。疫苗庫(kù)中的數(shù)據(jù)都是與自身正常數(shù)據(jù)相偏離的,有可能是新型攻擊的特征數(shù)據(jù)。
系統(tǒng)模型的右邊部分是實(shí)時(shí)檢測(cè)模塊。首先將網(wǎng)絡(luò)實(shí)時(shí)數(shù)據(jù)與疫苗庫(kù)中的數(shù)據(jù)進(jìn)行比較,若兩數(shù)據(jù)相似,則初步判斷為入侵,并向管理員報(bào)警。此警報(bào)若為誤報(bào),則說(shuō)明與之匹配的疫苗不合格,將其從疫苗庫(kù)中清除。警報(bào)若被確認(rèn)為攻擊行為,則接種此疫苗,將其加入抗體庫(kù)。抗體庫(kù)中的數(shù)據(jù)均為已確認(rèn)的攻擊數(shù)據(jù),與之匹配的數(shù)據(jù)可判斷為入侵。
該系統(tǒng)是自適應(yīng)入侵檢測(cè)系統(tǒng)。系統(tǒng)在運(yùn)行過(guò)程中,對(duì)抗體庫(kù)不斷地接種疫苗,使系統(tǒng)對(duì)各種已知攻擊和新型攻擊都具有免疫能力。
四、K分字符串相似匹配算法
人工免疫系統(tǒng)中抗體與抗原的結(jié)合表現(xiàn)為字符串的匹配,但這種匹配跟一般的字符串匹配不同。抗原與抗體中的字符相似個(gè)數(shù)超過(guò)一定數(shù)目,我們就可以認(rèn)為它與抗體相匹配,所以它并不是完全匹配。有很多人工免疫系統(tǒng)使用KMP算法進(jìn)行匹配,其具有匹配指針不需回朔的優(yōu)點(diǎn),但其對(duì)串的匹配是精確匹配,在近似匹配方面效果不是很好。
由于系統(tǒng)頻繁進(jìn)行字符串的匹配操作,所以匹配算法的效率對(duì)系統(tǒng)至關(guān)重要。本文通過(guò)計(jì)算兩字符串的編輯距離確定其相似度。當(dāng)編輯距離小于設(shè)定的閾值,則認(rèn)為兩字符串是相似的。兩字符串S1與S2的編輯距離定義為:將S2轉(zhuǎn)換為S1所需最小數(shù)目的單元操作,其中單元操作包括字符的插入、刪除、替換,及相鄰字符的調(diào)換等。例如,字符串“allover”與“all over”之間很相似,只要進(jìn)行一次刪除空格的操作就完全相同,所以它們間的編輯的距離為1。
由編輯距離的定義可知,字符串間的編輯距離有兩個(gè)基本性質(zhì):
distance(‘’,‘’) = 0(1)
distance(‘’,S) = |S| 其中|S|為字符串S的長(zhǎng)度(2)
對(duì)于任意字符串S1和S2,假設(shè)|S1|=m、|S2|=n,我們使用矩陣(二維數(shù)組)M[m,n]計(jì)算它們的編輯距離。其中M[i,j] = distance(S1[1..i],S2[1..j]),因此
M[0,0]=0,
M[i,0] =i, i=1..|S1|
M[0,j] =j, j=1..|S2|
編輯距離的C語(yǔ)言算法描述為:
distance(S1,S2)
{
for(int i=1;i<=m;i++) {
M[i,0]=i;
for(int j=1;j<=n;j++){
if(i==1)
M[0,j]=j;
M[i,j]=min(min(M[i-1,j]+1,M[i,j-1]+1),M[i-1,j-1] +(S1[i]==S2[j])?0:1);
}
}
return M[m,n];
}
算法的時(shí)間復(fù)雜度為O(m*n),當(dāng)|S1|=|S2|時(shí),復(fù)雜度為O(n2)。當(dāng)n的值比較大時(shí),計(jì)算的開(kāi)銷也非常大。為了提高檢測(cè)系統(tǒng)的性能,我們把需匹配的抗體與抗原都分割為K個(gè)子串。按順序分別對(duì)這K個(gè)子串進(jìn)行匹配,串S1、S2間新的距離函數(shù)定義為:
字符串分割處理后匹配的速度大為提高,還保留了更多的字符順序信息,使得近似匹配的結(jié)果更為科學(xué)。
五、實(shí)驗(yàn)及結(jié)果
我們實(shí)驗(yàn)的數(shù)據(jù)選自KDD CUP 1999有關(guān)網(wǎng)絡(luò)入侵的數(shù)據(jù)集,該數(shù)據(jù)集有近500萬(wàn)條活動(dòng)事件記錄數(shù)據(jù)對(duì)象,每條數(shù)據(jù)在連接記錄上標(biāo)記為正常或一種特定類型的攻擊(總共37種不同攻擊類型)。共有43個(gè)屬性特征用來(lái)描述這些網(wǎng)絡(luò)連接事件,包括連接時(shí)間、協(xié)議類型、傳輸字節(jié)數(shù)、文件創(chuàng)建和失敗登錄次數(shù)等屬性。
首先將入侵檢測(cè)系統(tǒng)在安全網(wǎng)絡(luò)流量中學(xué)習(xí),使“自身”庫(kù)發(fā)育完善。系統(tǒng)在訓(xùn)練過(guò)程中將逐步產(chǎn)生抗體。實(shí)驗(yàn)對(duì)每一種攻擊類型進(jìn)行試驗(yàn),其中每種類型使用10條記錄試驗(yàn),實(shí)驗(yàn)結(jié)果如圖3所示。
檢測(cè)系統(tǒng)在運(yùn)行過(guò)程中不斷地自我完善,對(duì)新型攻擊的檢測(cè)準(zhǔn)確也在不斷地提高。通過(guò)調(diào)整字符串相似的閾值還可以提高檢測(cè)率,但誤報(bào)率也會(huì)相應(yīng)地提高。
六、結(jié)論
基于人工免疫的入侵檢測(cè)系統(tǒng)具有很好的準(zhǔn)確性、完整性、可擴(kuò)展性、可適應(yīng)性和自身的健壯性,具備了免疫系統(tǒng)各種優(yōu)點(diǎn),是檢測(cè)新型攻擊很好的方法。本文提出的基于人工免疫的檢測(cè)系統(tǒng)模型和字符串近似匹配算法,解決了檢測(cè)新型攻擊的一些難題。實(shí)驗(yàn)結(jié)果表明,其具有較高的檢測(cè)率和較好的運(yùn)行效率。
參考文獻(xiàn):
[1]焦李成杜海峰:人工免疫系統(tǒng)進(jìn)展與展望.電子學(xué)報(bào), Vol.31 No.10 Oct.2003
[2]宮新保周希朗:一種新型的網(wǎng)絡(luò)安全技術(shù)——人工免疫系統(tǒng).電氣電子教學(xué)學(xué)報(bào),Vol.25No.3 Jun.2003
[3]楊向榮沈釣毅劉強(qiáng):基于人工免疫原理的NIDS系統(tǒng)和有關(guān)算法設(shè)計(jì).小型微型計(jì)算機(jī)系統(tǒng),Vol.25 No.3 Mar.2004
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。