模塊化免疫神經(jīng)網(wǎng)絡(luò)模型在計(jì)算機(jī)病毒分類檢測中的應(yīng)用
0 引言
本文引用地址:http://butianyuan.cn/article/201610/309307.htm隨著信息技術(shù)的發(fā)展和互聯(lián)網(wǎng)應(yīng)用的普及,計(jì)算機(jī)系統(tǒng)受到計(jì)算機(jī)病毒的威脅。計(jì)算機(jī)病毒分類檢測,指將可疑文件作為輸入,執(zhí)行某病毒檢測算法后輸出結(jié)果(無毒、帶毒/帶何種毒)的過程,實(shí)質(zhì)上是對文件的分類。病毒分類檢測應(yīng)屬于模式識別范疇。由于單一的技術(shù)無法有效地對抗計(jì)算機(jī)病毒,技術(shù)的融合并用及智能化,將是未來計(jì)算機(jī)病毒檢測的趨勢。故采用免疫算法和神經(jīng)網(wǎng)絡(luò)的新型網(wǎng)絡(luò)模型,對計(jì)算機(jī)病毒分類檢測進(jìn)行研究。
1 模塊化免疫神經(jīng)網(wǎng)絡(luò)模型的提出
人工神經(jīng)網(wǎng)絡(luò)和人工免疫系統(tǒng)都是受生物學(xué)的啟發(fā)發(fā)展而來的理論和技術(shù),兩者在生物學(xué)原理和人工原理上各有異同。研究表明,免疫原理可以應(yīng)用到神經(jīng)網(wǎng)絡(luò)中,以提高神經(jīng)網(wǎng)絡(luò)的性能;反之,神經(jīng)網(wǎng)絡(luò)理論也可以應(yīng)用到人工免疫系統(tǒng)中,從而產(chǎn)生一個(gè)相互之間可以受益的研究領(lǐng)域。
圖1中,抗原(Ag)表示神經(jīng)網(wǎng)絡(luò)中輸入神經(jīng)元到輸出神經(jīng)元的權(quán)向量Wk(由抗體Ab和自體庫集S共同作用后,基本調(diào)節(jié)好的權(quán)向量),基于計(jì)算機(jī)病毒的入侵檢測中,代表一類網(wǎng)絡(luò)數(shù)據(jù)包,以二進(jìn)制串表示??贵w(Ab)表示神經(jīng)網(wǎng)絡(luò)中的輸入樣本。S代表自體庫集合。權(quán)值及輸入樣本和輸出單元都使用二進(jìn)制,即只使用0和1表示,如圖2。
首先抗體庫中的向量都會和白體庫的向量進(jìn)行識別。如果抗體庫中的向量一旦和自體庫中的向量匹配,則會進(jìn)行剪枝操作。
沿用傳統(tǒng)的抗體網(wǎng)絡(luò)特征,規(guī)定ξj表示網(wǎng)絡(luò)中抗體j的抗原濃度,即抗體j所能識別的抗原個(gè)數(shù)。1個(gè)抗體細(xì)胞k與某種抗原細(xì)胞的親和力,由權(quán)向量與該抗體的漢明距離(Hamming)決定,可由式(1)得到與Ag可能性的最大狀態(tài)序列δ:
親和力δ越大,說明這種抗體能夠?qū)Υ丝乖M(jìn)行較好的應(yīng)答,保留。相反,通過剪枝的方式,從網(wǎng)絡(luò)中刪掉。把不與自身反應(yīng)的抗體保留,進(jìn)行對抗原的識別,進(jìn)行后續(xù)的工作。
否定選擇后的抗體與抗原進(jìn)行神經(jīng)網(wǎng)絡(luò)的作用,規(guī)則如上,如果抗體不匹配,按照已有的神經(jīng)網(wǎng)絡(luò)的權(quán)值算法的改進(jìn)步驟進(jìn)行權(quán)值的調(diào)整,以達(dá)到在給定抗體空間中擁有最大的解空間度,即2個(gè)抗體之間有最大的不相同度。
更新抗體種群,經(jīng)過若干次的疊代運(yùn)算,把抗體種群訓(xùn)練收斂于一個(gè)較穩(wěn)定的集合,即學(xué)習(xí)過程完畢。學(xué)習(xí)完成后,可以用于計(jì)算機(jī)病毒檢測中。
2 模型設(shè)計(jì)思路
整個(gè)網(wǎng)絡(luò)的競爭學(xué)習(xí)步驟分為2部分:
第1部分:首先從抗體庫里根據(jù)概率密度P(Ab)選擇出1個(gè)抗體進(jìn)行輸入。并和自體庫S進(jìn)行運(yùn)算,并設(shè)定閾值ε,當(dāng)滿足式(2)時(shí):
抗體經(jīng)過了自體耐受,變?yōu)槌墒斓臋z測器,且不與自體發(fā)生免疫應(yīng)答,是合格的檢測器。如果超過閾值ε,則從網(wǎng)絡(luò)中刪除此抗體節(jié)點(diǎn)??贵wAb1和自體集S中的S1產(chǎn)生了免疫應(yīng)答。
第2部分:經(jīng)過自體耐受的抗體分別和某個(gè)抗原Agk進(jìn)行作用,在抗體內(nèi)部設(shè)定1個(gè)ξi,一旦抗原的權(quán)向量和抗體的漢明距離超過閾值ε,ξj增加1,如果ξj長時(shí)間等于0,將此抗體從網(wǎng)絡(luò)中刪去。當(dāng)ξj增加到1個(gè)常值M時(shí),不再繼續(xù)增加,啟動1個(gè)計(jì)時(shí)器,按一定的間隔時(shí)間t遞減ξj,避免了長時(shí)間未產(chǎn)生應(yīng)答的抗體繼續(xù)殘留在抗體庫中。新模型中的神經(jīng)網(wǎng)絡(luò)處理單元如圖3。
在該模型中,每個(gè)神經(jīng)元的基本性質(zhì)相同,但具體形式不同。因此,每個(gè)神經(jīng)元的激活函數(shù)被設(shè)計(jì)成可變形式,也就是說,激活函數(shù)的基本性質(zhì)保持不變,但具體的形式應(yīng)該可以通過調(diào)整函數(shù)的參數(shù)來改變,任一神經(jīng)元i的激活函數(shù)可設(shè)計(jì)成:
3 抗體自體庫的建立
隨機(jī)獲取一組輸入向量抗原X,按照式(1)產(chǎn)生與X最匹配的中心序列k,把k添加到抗體群中。由于計(jì)算機(jī)病毒入侵檢測中在某段時(shí)間出現(xiàn)相同的入侵行為的概率較高,可根據(jù)網(wǎng)絡(luò)使用情況,進(jìn)行最快速度的匹配運(yùn)算,而不需要進(jìn)行學(xué)習(xí)功能。
抗體自體庫主要由選擇抗體集、交叉抗體集和變異抗體集組成。
1)選擇抗體集的設(shè)計(jì):是保證免疫算法種群優(yōu)勝劣汰的重要抗體集,且有較多的實(shí)現(xiàn)。
2)交叉抗體集的設(shè)計(jì):交叉就是把2個(gè)父個(gè)體的部分結(jié)構(gòu)加替換重組而生成新個(gè)體的操作,其目的是能在下一代產(chǎn)生新的優(yōu)化抗體集。
3)變異抗體集的設(shè)計(jì):因免疫算法中變異抗體集以輔助手段出現(xiàn),故采用本位變異的方法即可。
4 仿真實(shí)驗(yàn)
其訓(xùn)練方法如圖4。
4.1 仿真訓(xùn)練初始數(shù)據(jù)的收集
目前世界上很多研究機(jī)構(gòu)和研究人員致力于計(jì)算機(jī)病毒入侵檢測方面的研究和系統(tǒng)開發(fā),提供了一些測試資料集合,包括網(wǎng)絡(luò)資料、基于主機(jī)的審計(jì)資料和系統(tǒng)調(diào)用序列。
網(wǎng)絡(luò)傳輸協(xié)議/網(wǎng)絡(luò)協(xié)議(TCP/IP)對需要組織傳輸?shù)馁Y料包進(jìn)行打包。TCP層在包中加入了頭信息如:源埠、目的埠、序列號、ACK確認(rèn)號、偏移量、SYN、FIN、窗口和緊急指針等。含有TCP頭信息的包被送到IP層,加IP資料包頭如:包頭長度、服務(wù)類型、資料包長度、分段偏移量、生存期、協(xié)議類型、源地址和目標(biāo)地址等。而正常和異常的數(shù)據(jù)包都在網(wǎng)上傳輸,其特征是有差別的。
為測試改進(jìn)后的網(wǎng)絡(luò)在病毒入侵檢測應(yīng)用中的效果,采用了具有30萬條數(shù)據(jù)記錄的測試數(shù)據(jù)集,每條數(shù)據(jù)包括了網(wǎng)絡(luò)數(shù)據(jù)包的包頭信息、網(wǎng)絡(luò)連接信息和數(shù)據(jù)信息等,每條數(shù)據(jù)包含96位的二進(jìn)制代碼。其中前32位二進(jìn)制為源IP地址,32-64位二進(jìn)制為目標(biāo)IP地址,64-96位二進(jìn)制表示了一些數(shù)據(jù)信息,每個(gè)數(shù)據(jù)被標(biāo)記為異?;蛘哒?。該數(shù)據(jù)源由MATLAB利用random()函數(shù)產(chǎn)生一組隨機(jī)的小數(shù),因?yàn)榭紤]到是二進(jìn)制運(yùn)算,規(guī)定:
這樣隨機(jī)產(chǎn)生的二進(jìn)制串96個(gè)為一組,模擬的IP數(shù)據(jù)包,一共產(chǎn)生96萬個(gè)二進(jìn)制串組合。
4.2 抗體自體庫仿真訓(xùn)練(自體庫的建立)
使用這1萬條數(shù)據(jù)進(jìn)行自體庫的建立和神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。在不斷調(diào)整抗體自體庫的同時(shí),使自體庫的解空間在最大程度上得到提高,最后趨近與一個(gè)穩(wěn)定的自體庫接集合。利用建立好的抗體檢測庫檢測未知的29萬條數(shù)據(jù)紀(jì)錄。仿真試驗(yàn)算法如下:
4.3 病毒入侵檢測算法的仿真訓(xùn)練
建立起自體庫后,進(jìn)行病毒入侵檢測算法的仿真試驗(yàn),步驟如下:
首先,引入新的一組數(shù)據(jù)向量,與自體庫也就是所謂的記憶細(xì)胞匹配,如果在一定的閾值范圍內(nèi)匹配度很高,則認(rèn)為該向量為入侵行為,并把匹配度提升1;相反,如果匹配度不高,則找出記憶細(xì)胞里與之親和力較大的進(jìn)行權(quán)值的調(diào)整,達(dá)到兩者之間的最優(yōu)匹配度,然后把新的向量作為抗體集合加入到記憶細(xì)胞,重復(fù)操作,完成后統(tǒng)計(jì)結(jié)果。
檢測算法仿真程序如下:
4.4 實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)
在模式識別領(lǐng)域中,Receiver OperatingCharacteristics(ROC)曲線用于比較不同分類檢測算法的性能。曲線下的面積越大,則算法分類檢測性能越好越穩(wěn)定。圖5為該模型與遺傳算法模型以及傳統(tǒng)抗體模型的基于MATLAB環(huán)境下的仿真測試ROC圖。可見,集成新型抗體模型網(wǎng)絡(luò)ROC曲線下方的面積要大于其它2個(gè)網(wǎng)絡(luò)模型的面積。說明基于模塊化的免疫神經(jīng)網(wǎng)絡(luò)模型的計(jì)算機(jī)病毒檢測模型性能要優(yōu)于其它2個(gè),正好支持了文獻(xiàn)[2]的結(jié)論。文獻(xiàn)[2]對基于n-gram的惡意代碼檢測取得了很好的效果,一共測試了8種分類器,結(jié)果如圖5、圖6,其中Boosted J48性能最優(yōu)。
分析以上實(shí)驗(yàn)數(shù)據(jù),可得到以下結(jié)果:
1)由表1可知,自體庫選得過小,會造成單抗體的高擾動率,頻繁更新抗體群,缺乏抗體的多樣性,覆蓋范圍減小。
2)自體庫過大,會造成訓(xùn)練網(wǎng)絡(luò)的時(shí)間增多。擬采用200條為自體庫大小,對這30萬條數(shù)據(jù)記錄通過新模型進(jìn)行檢測,并與單免疫算法模型和傳統(tǒng)的抗體網(wǎng)絡(luò)模型進(jìn)行對比,如表2。雖然此網(wǎng)絡(luò)模型在時(shí)間上略遜于其他兩種已知算法模型,但在準(zhǔn)確率上卻有明顯的提高。
5 小結(jié)
由實(shí)驗(yàn)可知,基于免疫算法和神經(jīng)網(wǎng)絡(luò)的新型網(wǎng)絡(luò)模型降低了傳統(tǒng)的病毒入侵檢測模型的誤報(bào)率和漏報(bào)率,提高了免疫系統(tǒng)的學(xué)習(xí)效率和系統(tǒng)的智能化程度,在系統(tǒng)的容錯(cuò)性上也有較大的改善,對提高系統(tǒng)的檢測能力具有重要意義。
評論