摘 要:為了降低入侵檢測系統的誤報率和漏報率,提出了一種基于人工免疫的新型入侵檢測系統模型。借鑒生物免疫系統抗體的演化機制,該模型改進了目前基于免疫的入侵檢測系統中抗原、抗體的靜態描述方式,給出了抗原、抗體的動態描述方式和變化機制,并針對傳統固定r連續位匹配方法的不足,提出了一種r可變匹配機制,最后進行了相關仿真實驗。理論分析和實驗結果表明,該系統具有較低的誤報率和漏報率,提高了入侵檢測系統的可信性。
關鍵詞:入侵檢測系統; 誤報率; 漏報率; 人工免疫
中圖分類號:TP393.08 文獻標志碼:A
文章編號:1001-3695(2010)03-1092-03
doi:10.3969/j.issn.1001-3695.2010.03.079
Study of creditability for intrusion detection system based on immunity
LIU Shuai1a,1b, ZHANG Xing2
(1.a.Institute of Advanced Control Intelligent Information Processing,b.College of Computer Information Engineering, Henan University, Kaifeng Henan 475000, China;2.Dept. of Computer Science Engineering, Henan University of Urban Construction, Pingdingshan Henan 467044, China )
Abstract:To reduce the high 1 positive rate and 1 negative rate of intrusion detection systems,this paper proposed an novel intrusion detection system(IDS) based on immunity.Presented the methods to reduce the 1 positive rate after analyzing creditability of IDS and 1 positive rate of anomaly IDS.The emphasis on constructing normal profile dynamically based on artificial immunity to restrain 1 positive rate, then did simulation experiment.The results show that the method can improve the detection efficiency and reduce the 1 positive rate and 1 negative rate, so it improves the creditability of IDS.
Key words:intrusion detection system; 1 positive rate; 1 negative rate; artificial immunity
0 引言
目前,入侵檢測系統(intrusion detection system,IDS)存在的主要問題是誤報率和漏報率較高。誤報率是指把系統的正常行為誤判為入侵行為而進行報警的概率;漏報率是指系統把某些入侵行為誤判為正常行為而沒有報警的概率。過高的誤報率和漏報率必然造成入侵檢測結果的不可信。因此,如何盡可能降低IDS的誤報率和漏報率已經引起廣大研究者的普遍關注。
入侵檢測問題與生物免疫系統(biological immune system,BIS)消滅外來病原體入侵問題具有驚人的相似性。基于人工免疫的入侵檢測系統也多有研究,但目前大多數的系統模型中,系統自體/非自體、檢測器等的描述均為靜態方式,一旦定義后就極少變化,缺乏系統性的描述和自適應性機制,不能滿足真實網絡環境,導致了誤報率和漏報率較高。在真實網絡環境中,由于網絡管理員關閉了某些端口,過去被認為是正常的網絡活動會被禁止;另外,隨著時間的推移,網絡管理員可能會開放更多的端口,即以前被禁止的網絡活動現在被允許。在這種情況下,如果系統自體/非自體不能動態變化,將相應產生漏警和虛警。鑒于此,本文提出了入侵檢測環境下有關自體/非自體、抗原、抗體的形式化定義,并建立了自體、抗原、成熟抗體和記憶抗體的動態淘汰機制。在抗原和抗體的匹配規則中,改進了傳統的r連續位匹配算法,提出了一種可變r匹配機制,最后進行了仿真以及對比實驗。結果顯示,本文提出的方法較傳統方法具有更低的誤報率和漏檢率。
1 生物免疫與AIDS映射關系
本文提出的方法模擬了生物免疫系統中抗體自身演化以及對入侵抗原的檢測過程。網絡對應生物體,網絡中的主機對應生物免疫系統中的淋巴結,免疫系統中的抗原被映射成AIDS中的網絡行為。根據免疫學原理,抗原又被分為自體抗原和非自體抗原,因此自體抗原被映射成正常網絡行為,非自體抗原被映射成非法網絡行為。
生物免疫系統中抗體(包括成熟抗體和記憶抗體)識別抗原的過程就是識別判斷抗原是自體/非自體的過程。入侵檢測系統中,檢測器(正常行為輪廓)對應為抗體,網絡行為對應為抗原,檢測器檢測網絡行為是否正常的過程被抽象為BIS中抗體識別抗原的過程。通過檢測,將抗原分類為自體Agself或非自體Agnonself。其中分類為自體的抗原Agself被并入整個模型的自體集self中,用做下一步未成熟抗體的耐受處理,保證了正常行為的動態更新。
2 模型理論與實現
2.1 自體與非自體形式化描述
定義論域D={0,1}l,抗原集合AgD,自體集合selfAg,非自體集合nonselfAg。有self∪nonself=Ag,self∩nonself=。其中Ag表示對網絡上傳輸的IP包進行特征提取得到的長度為l的二進制字符串,包括IP地址、端口號、協議類型等網絡事務特征;self集為正常網絡服務事務,nonself集為非法活動或網絡攻擊。
2.2 抗原與抗體形式化描述
定義抗體細胞集合B,每個抗體為一個三元組,B={〈d,age,count〉|d∈D∧age∈N∧count∈N} 。其中:d為抗體(長度為L的二進制字符串);age為抗體年齡;count為抗體的累計親和力數目;N為自然數集合。
抗體分為三類,即成熟抗體、記憶抗體和未成熟抗體。抗體集合B=Mb∪Tb。其中Tb為成熟免疫抗體集合,它由經過自體耐受過程的未成熟免疫抗體構成。記憶免疫抗體集合Mb={x|x∈B,x.count>β},β為匹配閾值,即記憶抗體由被激活的成熟抗體進化而來。定義未成熟免疫抗體集合為尚未進行自體耐受的抗體Ib={〈d,age〉|d∈D,age∈N}。
為了防止抗體匹配到自體,新生成的未成熟抗體必須通過自體耐受才能與抗原匹配,對新生成的未成熟抗體Ib進行自體耐受。通過自體耐受的未成熟抗體將進化為成熟抗體Tb,而未通過自體耐受的未成熟抗體將死亡。抗體抗原的匹配采用下面所示的可變r匹配算法。
2.3 可變r連續匹配算法基本思想
目前,基于人工免疫實現的入侵檢測系統中大多數采用連續r匹配算法。定義r匹配算法如式(1)所示。其中1表示匹配,0表示不匹配。
fmatch(x,y)=1iffi, j(x.di=yi,x.di+1=yi+1,…,x.dj=yj,j-i≥r,0
通過分析可知,r值的大小非常關鍵。若r值過小,抗原與抗體之間的差異不明顯,使得形成的該成熟抗體根本不具有識別足夠多的抗原的能力,會造成誤報率增大;當r值過大,又會使得親和力總是累積失敗,形成成熟抗體的時間太長,甚至會發生不能形成成熟抗體的情況,最后入侵檢測系統又會出現漏報的狀況。因此,本文提出一種可變r連續匹配的算法。
可變r連續匹配算法思想為:r值的大小并不是一成不變的,而是根據免疫系統自身的運行狀態動態進行調整。具體算法體現在親和力積累過程中,當發現剛產生的抗體很容易與抗原匹配時,r值就應該加大,目的是讓成熟抗體親和力累積難度被加大,讓被產生的成熟抗體足夠成熟能夠匹配較多的抗原,最終達到提高入侵檢測系統準確率,降低誤報率。當發現成熟抗體總是不容易產生的時候,r值被降低,也就是降低親和力匹配的門檻值,讓成熟抗體相對容易產生一些,目的在于能較快地產生出成熟抗體去檢測出入侵行為,降低漏報率。
r的動態變化方程定義為
r(t+1)=rt-v(t+1)-vt/n」(2)
其中」表示向下取整,vt表示t時刻網絡的數據流強度,n為比例系數,可根據實際情況確定。
2.4 自體及動態演化過程
在真實網絡環境中, 正常行為和非正常行為往往是動態變化的(對應于自體/非自體)。例如,由于網絡管理員關閉了某些端口,過去被認為是正常的網絡活動會被禁止;反之,網絡管理員可能會開放更多的新端口,即以前被禁止的網絡活動現在被允許。這里定義一個網絡正常活動(自體)隨時間動態演化的方程。
定義自體的動態演化模型為
self(t)=self(t-1)-selfdead(t)-selfvariation(t)∪selfnew(t)(3)
其中:selfdead(t)是當自體集合大小超過閾值L時,按LRU(最久未使用,即淘汰最久未被激活的自體)的原則淘汰一部分自體元素;selfvariation表示發生變異的自體;selfnew(t)是新收集的自體元素。
動態自體模型很好地模擬了真實網絡環境下自體隨時間動態演化的情形。通過自身動態演化監視,隨時清除發生變異的自體(selfvariation),避免未成熟細胞對發生變異的自體耐受,從而降低了漏報率。另外通過動態地增加自體元素擴大自體的描述范圍,降低了誤報率。
2.5 動態耐受模型
由于自體是動態的,耐受也是動態的。
動態耐受模型方程定義為
Ib(t)=Itolerance(t)-Imaturation(t)-Inew(t)(4)
Imaturation(t)={x|x∈Itolerance(t),x.age>a}(5)
方程(4)模擬免疫細胞自體耐受情況。其中:Itolerance(t)為對上一階段的自體self(t-1)經歷一次耐受后剩下的免疫細胞;Imaturation(t)為t時刻已經成熟的免疫細胞;Inew(t)為t時刻隨機產生的新的未成熟免疫細胞。
耐受模型是動態的,模型會對新添加的自體抗原產生對該自體耐受的免疫細胞,具有很好的自適應性。動態耐受模型很好地模擬了真實網絡應用環境中的網絡活動情況。一般來說,經常出現的活動是正常、合法的網絡行為,而突然出現的某種網絡活動非常可疑,很可能是非法的入侵。動態耐受模型被設計成剛好保證新生的成熟細胞對那些經常性的正常網絡活動耐受,從而確保了對突發事件檢測的敏感性。也就是說,動態耐受模型生成的成熟細胞具有很好的有效性。
2.6 抗體產生與淘汰機制
成熟抗體通過親和力累積實現進化。在生命周期λ內,每經過單位時間,成熟抗體的年齡age增加1;如果該抗體與抗原匹配成功,則該成熟抗體匹配抗原數目count增加1。成熟抗體在生命周期內匹配抗原數目達到激活閾值,則激活為記憶抗體,如式(6)所示。
Tactive={x|x∈Tb∧x.count≥β∧x.age≤λ}(6)
成熟抗體年齡超過生命周期而匹配抗原數目未達到激活閾值,則被刪除,如式(7)所示。
Tdead={x|x∈Tb∧x.count<β∧x.age>λ}(7)
設Tb為成熟細胞集合,t為某時刻成熟細胞集合中元素數量。成熟細胞集合的動態變化方程為
Tb(t)=Tb(t-1)+Itolerance(t)-(Tactive(t)+Tdead(t))(8)
設Mb為記憶細胞集合,記憶細胞動態變化可表示為
Mb(t)=Mb(t-1)+Tactive(t)+Mother(t)-Mdead(t)(9)
其中Mdeath(t)={x|x∈Mb(t),fmatch(x,self(t-1))=1}(10)
Mdeath(t)模擬記憶細胞死亡過程,若某記憶細胞匹配了一個已經被證實的自體抗原,那么該記憶細胞會因發生了誤識別而被刪除掉。Mother(t)是指從其他主機接受的免疫記憶細胞,類似于接種免疫疫苗,以迅速使其他機器具備抵御類似抗原攻擊的能力。這樣,當類似抗原再次入侵時,免疫系統能很快地進行二次響應,對威脅進行迅速準確的判斷。
動態免疫記憶模型中的淘汰機制能夠進一步降低誤報率和漏報率,進一步增強模型的自適應性。
2.7 模型動態檢測過程
由上面的分析可知,B=Mb∪Tb就是入侵檢測系統中的正常輪廓,它是動態變化的,可以動態跟隨正常行為的改變。對網絡入侵行為檢測利用成熟抗體Tb和記憶抗體Mb完成,具體步驟如下:
a)記憶抗體檢測抗原。利用記憶抗體集合Mb對抗原集合Ag進行檢測,把被記憶抗體檢測為非自體的抗原Agnonself從Ag中刪除,如果記憶抗體檢測到自體就從Mb中刪除。
b)成熟抗體檢測抗原。利用成熟抗體集合Tb對抗原集合Ag進行檢測,被成熟抗體檢測為非自體的抗原Agnonself從Ag中刪除,如果成熟抗體在一定周期內檢測到足夠的抗原就會被激活,進化為記憶抗體(Tactive);反之在生命周期內未被激活或檢測到自體元素,則死亡(Tdead)。
c)自體集合更新。經過上述檢測剩下的抗原作為自體抗原加入自體集合,保持自體動態更新,同時與未成熟抗體集合Ib元素進行自體耐受,保持抗體的動態進化循環。
3 系統仿真實驗與分析
實驗在網絡安全實驗室進行,40臺主機參加了實驗。主機安裝Windows操作系統,用Java語言進行編程實現,模擬對網絡進行SYN flood、Land、Smurf、Teardrop等20多種典型攻擊。實驗中主要參數設置如下:取二進制串抗原l=128,選取初始自體集合大小n=50;每次從網上捕獲100個IP包,取檢測率η為0.75。實驗結果采用TP值(檢測率)和FP值(誤報率)對模型進行評估。實驗時采取每100個數據包中夾雜30個非自體。其中非自體中有15個是剛剛確定的,即以前這種類型的IP包被認為是自體,現在被認為是非法的網絡行為,以觀察檢測率TP(1-漏報率)。同時,采取的方法是每100個數據包中夾雜30個自體。其中15個自體為新近定義,即以前這些IP包被認為是不正常的網絡行為,但現在被認為它們是正常的,以觀察FP值。
由于其他系統參數對結果影響很大,經過反復比較實驗,在系統表現穩定的情況下,最終選定了參數:β =50,λ=7 d,δ=10代,L=1 000。這組參數組合在保證系統有較高檢測率的前提下(95%以上),FP可以達到2.25%左右。具體結果如圖1所示。
為了便于比較,采用了三個開放源代碼的IDS:Snort、Bro, Dragon IDS,共選用5天時間測試。模擬對網絡進行SYN flood、 Land、Smurf、Teardrop等20多種典型攻擊,各檢測器的漏報率如表1所示,誤報率如表2所示。
通過對比以上實驗數據可以發現,本文方法的漏報率和誤報率與其他IDS相比均有所改善。究其原因,是因為本算法的自體定義為動態,并且在抗原和抗體匹配時使用了可變r匹配策略,適應性較好,通過自體演化、動態耐受和記憶細胞的淘汰機制以及動態匹配方法,降低了誤報率FP和漏報率(1-檢測率TP),提高了檢測性能。
4 結束語
本文針對目前大部分基于免疫的入侵檢測系統自體、檢測器的靜態描述問題,給出了一種自體、抗原、抗體動態定義方法,定義了成熟抗體、記憶抗體的動態演化和淘汰過程,并提出了一種可變r匹配規則,達到了與真實網絡環境同步動態演化的目的。仿真以及對比實驗表明,本文提出的方法較傳統方法具有更低的誤報率和漏報率,具有一定的應用價值。經過適當變換,本文提出的模型還可以應用于病毒檢測以及垃圾郵件識別等領域。
參考文獻:
[1]李濤.基于免疫的網絡監控模型[J].計算機學報,2006, 29(9):1515-1522.
[2]羅文堅,曹先彬,王煦法.檢測器自適應生成算法研究[J].自動化學報,2005,31(6):907-916.
[3]閆巧,江勇,吳建平.基于免疫機理的網絡入侵檢測系統的抗體生成與檢測組件[J].計算機學報,2005,29(9):1515-1522.
[4]馬占飛,鄭雪峰.基于生物免疫機理的分布式agent入侵檢測系統模型[J].計算機應用研究,2008,25(3):895-898.
[5]楊義先,鈕心忻.入侵檢測理論與技術[M].北京:高等教育出版社,2006.
[6]李永忠,徐靜,羅軍生.基于免疫agent的網絡入侵檢測系統[J].計算機科學,2008,35(12):121-125.
[7]何申,羅文堅,王煦法.一種檢測器長度可變的非選擇算法[J].軟件學報,2007,18(6):1361-1369.
[8]倪建成,李志蜀.基于免疫原理的多代理網格入侵檢測系統體系結構研究[J].計算機應用研究,2009,26(2):705-708.