摘要:提出一種將基因庫進化與否定選擇相結(jié)合生成成熟檢測子集的算法,采用基因庫易于結(jié)合抗體進化原理對基因?qū)嵤┻M化,改進的否定選擇算法維持了抗體的多樣性和一般性,從而提高入侵檢測系統(tǒng)中生成成熟檢測子的效率#65377;反饋學習雙網(wǎng)絡結(jié)構(gòu)可以有效處理基因庫進化中抗體突變對生成抗體帶來的不利影響,同時進行反復學習使抗體不斷向抗原進化,提高入侵檢測的準確率#65377;
關鍵詞:入侵檢測;人工免疫系統(tǒng);否定選擇;基因庫;反饋學習雙網(wǎng)結(jié)構(gòu)
中圖分類號:TP18
文獻標識碼:A
1引言
生物體的自然免疫系統(tǒng)是一個分布式的自適應系統(tǒng),它采用多層防護機制,對致病微生物產(chǎn)生快速#65380;準確的防護反應#65377;免疫系統(tǒng)使用免疫記憶來記住已經(jīng)出現(xiàn)過的抗原特征,并利用組合學構(gòu)建抗體,以實現(xiàn)有效檢測#65377;
入侵檢測是計算機安全系統(tǒng)的一個重要組成部分,自動檢測威脅或危害網(wǎng)絡系統(tǒng)資源的完整性#65380; 機密性和有效性的企圖或?qū)崿F(xiàn),并收集入侵證據(jù),為數(shù)據(jù)恢復和事故處理提供依據(jù)[1]#65377;近幾年隨著入侵檢測技術研究的深入,人們發(fā)現(xiàn)計算機的入侵檢測系統(tǒng)和生物體的免疫系統(tǒng)有天然相似之處#65377;在入侵檢測系統(tǒng)中,成熟檢測子相當于生物免疫系統(tǒng)中的抗體,因此提高成熟檢測子集生成效率是入侵檢測系統(tǒng)成功的關鍵[2]#65377;
2人工免疫系統(tǒng)中生成成熟檢測子集的相關研究
1)基于否定選擇生成檢測子
1994年Forrest基于AIS(Artificial Immune System,AIS)在IDS(Intrusion Detection System)中提出利用算法NSA(Negative Selection Algorithm,NSA)[1]來處理各種異常檢測問題#65377;該算法將一個表示正常行為模式的串(如二進制串)分成長度相等的串的集合S(自身集合),不包含在S內(nèi)的其他所有串的集合N(非自身)#65377;隨機產(chǎn)生許多串R0,讓其中一個串同S中每個串進行比較#65377;如果隨機產(chǎn)生的串與S中一個串匹配,那么這個模式被丟棄#65377;否則,它將成為一個成熟檢測子#65377;重復檢測R0中的二進制串直到生成足夠多的成熟檢測子為止#65377;Forrest用概率分析方法進行分析與設計,從而引起隨機生成檢測子的時間消耗與自身集合大小成指數(shù)增長#65377;后來Dhaeseleer提出改進的否定選擇算法[3]:線性時間算法和貪婪法#65377;
該算法的不足:一是空間消耗太大;二是它們只適用于r-連續(xù)位串匹配法#65380;用二進制串編碼表示特征串的情形#65377;
2)利用小生鏡策略改進NSA生成檢測子生成的成熟檢測子如果不能檢測出實際出現(xiàn)的異常則表示該成熟檢測子不是真正有效的檢測子#65377;J.Kim和P.Bentley[7]認為生命體免疫系統(tǒng)采用了“抗體”向“抗原”進化的策略#65377;通過小生鏡策略以維持抗體的有效性#65380;一般性和多樣性,提高否定選擇算法的效率#65377;
3算法設計
3.1利用基因庫生成成熟檢測子
1)利用基因庫生成未成熟檢測子 本文由基因庫生成抗體,文中采用與抗體分離的基因數(shù)據(jù)庫,從多個基因片段庫中各選取一個基因片段,然后進行接連,生成多樣性的抗體#65377;假如一個個體有4個v區(qū)基因庫,每個基因庫包含8個基因片段,每個基因片段由16位編碼#65377;抗體是分別從4個基因庫中隨機選一個基因片段的16位連接成64位#65377;
2)進化基因庫以生成成熟檢測子
當前可用的人工免疫系統(tǒng)中有兩種方法可進化它們的基因庫:第一個是通過“Baldwin效應”來指導基因庫進化[5];第二個是學習基因庫的結(jié)果反饋來指導進化#65377;Hart#65380;Ross[8]#65380;Michaud[4]#65380;Gaspar和Colland[6]等分別介紹了使用基因庫收集基因片段,再由基因片段連接生成抗體的方法#65377;但是沒有考慮到抗體突變對抗體生成帶來的影響[9]#65377;本文采用反饋學習雙網(wǎng)絡結(jié)構(gòu)處理基因庫進化問題與抗體突變帶來的影響#65377;
3.2編碼
在AIS系統(tǒng)的設計中行為模式有基因型和表現(xiàn)型之分#65377;表現(xiàn)型是可讀的,它由現(xiàn)實應用中的特征直接得到,例如網(wǎng)絡連接中“service=ftp\".而基因型則是在AIS 相關過程中所使用的一種內(nèi)部表現(xiàn)形式#65377;在否定選擇過程中我們使用一種數(shù)字化的表達形式來進行相關計算和處理#65377;從表現(xiàn)型到基因型的映射過程即是編碼#65377;本算法中采用簡單的二進制基因型#65377;基因型由一組基因組成,其中每一個基因片段代表表現(xiàn)型的一個特征,每個抗體由多個基因段連接而成#65377;
3.3算法描述
算法1:
(1)將初始數(shù)據(jù)分為S與N,將N編碼生成初始基因庫
(2)從基因庫中隨機抽取基因片段,進行基因段連接,生成初始非成熟檢測子集N
(3)while(非成熟檢測子個數(shù)+成熟檢測子個數(shù)<非記憶檢測子集的大小)
if(被刪除掉的記憶檢測子的個數(shù)>0)(變異率<>0)
隨機選取一個被刪除的記憶檢測子,生成該檢測子的變異體,并將其加入到未成熟檢測子群體中接受否定選擇)
else
隨機選擇以下兩種情況;
case1:
從基因庫隨機選擇一個基因片段s,s利用反饋學習雙網(wǎng)絡結(jié)構(gòu)進行反復學習得到ss,從而提高特征的覆蓋度,提高檢測子的識別程度;
以ss作為特征值生成一個新的檢測子d;
將d加入到未成熟檢測子群體中接受否定選擇;
case2:
從基因庫中隨機選取相應的基因庫片段s并將它們適當連接得到ss;
生成一個新的檢測子d以ss作為它的特征值;
將d加入到未成熟檢測子群體中接受否定選擇;
其中反饋學習雙網(wǎng)絡結(jié)構(gòu)利用計算機神經(jīng)學中的雙網(wǎng)絡神經(jīng)結(jié)構(gòu)來構(gòu)建免疫系統(tǒng)的反饋學習模型,模型包含兩個結(jié)構(gòu)不相同的檢測子D1和D2#65377;設D1為前饋控制器,其輸入時期望的輸出信號Yd,而輸出控制信號U給控制對象;設D2為反饋控制器,接收對象輸出Y,然后產(chǎn)生控制信號V#65377;兩個識別器的輸出信號之差E2=U-V是間接的或訓練的,利用這個誤差來調(diào)整網(wǎng)絡的連接權重,使這個誤差最終趨于0,使總誤差E1=Yd-Y也趨于0#65377;在這個網(wǎng)絡中,D1和D2的結(jié)構(gòu)是相同的,兩者具有相同的檢測子數(shù)目和覆蓋度參數(shù)#65377;其運行情況如下:
(1)考慮D1和對象的情況#65377;如果目標是驅(qū)動 Y 逼近Yd,則最好的策略就是令D1為對象的逆動態(tài)近似#65377;對于未知對象的動態(tài),沒有一個簡便的方法確定網(wǎng)絡的正確權值,它由對象的逆動態(tài)近似而尋求出#65377;
(2)考慮反饋控制器D2和對象的情況#65377;如果 D2 的動態(tài)近似于對象的逆動態(tài),則誤差E2將為0,一個好的控制策略就是對于反饋控制器D2將實現(xiàn)對象的逆近似#65377;
對于未知對象#65380;D1 和 D2 的參數(shù)同時調(diào)整,當滿足一定條件時 E1 接近0,D1和D2就是好的#65380;實用的對象逆動態(tài)近似#65377;這樣的反饋模型隨對象和信號Yd 的不同而完成識別和反饋作用#65377;圖1反饋控制結(jié)構(gòu)
算法2:
掃描基因庫;while(基因庫掃描未完全) do
if(某基因的添入時間距今>T)//T為一時間常數(shù)then 將該基因從基因庫中刪除!
4實驗結(jié)果及分析
采用聯(lián)想1.7G系列品牌機,參照Forrest的否定選擇算法結(jié)果,在WINDOWS XP PROFESSIONAL 2002環(huán)境下根據(jù)綜合算法對檢測子生成效率進行了實驗,實驗結(jié)果對比如表一#65377;實驗中采用RCMF函數(shù)進行匹配#65377;取L=64 L=20,耐受期為24小時#65377;
入侵檢測最關鍵的問題是要生成有效的成熟檢測子,提高準確率,降低漏報率#65377;本文用虛擬基因庫生成未成熟的檢測子,利用被刪除的記憶檢測子與非自身的相似性將其加入基因庫,提高生成成熟檢測子集的效率#65377;通過反饋學習雙網(wǎng)絡結(jié)構(gòu)進行反復學習使檢測子不斷向異常模式進化,從而提高特征的覆蓋度,提高檢測子的識別程度#65377;
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。