趙自平
湖北工業大學 湖北 430068
無線傳感器網絡是一種特殊的自主無線網絡,可廣泛地應用于軍事、環境、醫療、家庭、工業、交通和環保等領域。與傳統無線網絡相比,傳感器網絡具有節點分布稠密、能量有限、節點計算能力和存儲空間有限、容易遭受安全攻擊等特點。由于其不依賴于固定基礎設施,使得防火墻方案無可適從。在加密、認證等技術得到廣泛認可之后,入侵檢測成為了網絡防御的第二道防線。入侵檢測技術是為保證系統安全而設計與配置的一種能夠及時發現并報告系統中未授權或異常現象的技術,作為一種主動的入侵防御技術,它能夠提供一種動態的監控、預防或抵御系統入侵行為的安全機制。由于無線傳感器網絡的特殊性,傳統網絡中的入侵檢測技術不能直接用于無線傳感器網絡中。隨著無線傳感器網絡的應用越來越廣泛,基于規則的入侵檢測技術無法有效地檢測到不斷增加的新型攻擊,因此無線傳感器網絡的攻擊檢測主要采用異常檢測技術。Krishnamachari等人利用貝葉斯模型預測入侵發生的位置,但沒有對攻擊行為實現量化。Su針對分簇式WSN提出一種能量節省的入侵檢測方案,卻增加了系統的復雜性。本文將人工免疫原理和多代理技術相結合,提出了一種適用于分簇式無線傳感器網絡的入侵檢測機制。在該機制中利用免疫系統的多樣性和Agent的輕型特征對無線傳感器網絡中不斷出現的各類新型入侵進行快速檢測,在提高系統安全性的同時減少網絡能量消耗,盡可能地延長WSN的生命周期。
Multi-Agent系統是管理一定數量和種類的Agent來完成特定目標的系統。每個Agent可以單獨存在,也可以存在于一個由很多Agent構成的整體系統中。它們有事先設定好的目標,有固定的活動準則,同時可以了解所處的環境信息,并且能夠根據環境信息進行判斷、交流、合作、學習并做出決策。Agent的自治性、移動性和智能性使其成為檢測入侵的理想載體。免疫系統本身是一個復雜的自治Agent系統,其分布式、自適應、自學習和多樣性等優良特征使其在信息安全技術研究中得到廣泛關注,并取得了一定成果。基于人工免疫的 Multi-Agent系統所具有的開放性、分布式和多樣性等特征與無線傳感器網絡的拓撲結構動態性、節點易失效及入侵形式廣泛等特點不謀而合。
定義1抗原。定義問題域 X∈ {0,1}l,抗原Ag?X,在網絡入侵檢測系統中,抗原定義為節點對發送給簇頭的數據包進行特征提取后得到的長度為l的比特串。它包括自體集合S?Ag和非自體集合F?Ag兩個子集,有S ∪F=Ag 且S∩F=φ。在入侵檢測系統中,自體為正常的網絡數據,而非自體代表來自網絡攻擊的數據。免疫系統所面臨的主要問題是如何識別自體和非自體,抗原的判斷結果對應識別入侵行為問題的解。
定義2抗體。定義抗體Ab?X是入侵檢測系統中的檢測器,系統的識別過程是在抗原和抗體之間發生的。Ab ={< ab, t, d >|a b ∈Ab, t ∈ {1,… ,T },d ∈{0,1,2}},其中,ab為免疫細胞,t為ab的年齡,T為免疫細胞的最大生存周期,d為ab的狀態標識。又有 Ab = AbI∪ AbT∪ AbM,其中AbI為未成熟免疫細胞,有 AbI= {i| i ∈ Ab, i, d = 0},表示由基因重組和變異產生的新型檢測器;AbT為成熟免疫細胞,有AbT= {t| t ∈ Ab, t, d = 1},表示用于識別未知入侵行為的檢測器;AbM為記憶細胞,有 AbM= {m| m ∈ Ab, m, d =2},表示用于識別已知入侵行為的檢測器。
定義3親和力。抗原—抗體的親和力與它們之間的距離相關,表示抗原與抗體的匹配程度;抗體—抗體的親和力表示抗體之間的相似程度。本文采用 Hamming距離來定義親和力。

其中,x、y表示參與計算的抗原或抗體,抗體的坐標用<ab1, ab2,… ,a bl>表示,抗原坐標用 <ag1, ag2,… ,agl>表示。參與計算的兩者之間的距離越小,即兩者越匹配,則它們的親和力越大,且0 < A( x, y)≤ 1。抗原—抗體的親和力用來檢測是否有入侵行為發生。假設簇頭收到來自某個傳感器節點的數據并提取出抗原ag,若?ab使得 A( a g, a b)>γ(γ為抗原—抗體匹配閾值,又稱檢測閾值),則表示有入侵行為發生。同時,抗體—抗體的親和力表示抗體的相似性,用來控制檢測器的規模,以適應傳感器節點存儲空間有限的特點。對于一個未成熟抗體 ab∈AbI,若 ?a b′ ∈ Ab使得A( ab, ab′)>φ (φ為抗體—抗體匹配閾值),則ab與抗體ab′具有較高的相似性。

圖1 節點的入侵檢測單元
無線傳感器網絡內每個傳感器節點都配置一個入侵檢測單元(IDU),每個IDU由多個Agent構成,如圖1所示。在簇的形成階段,傳感器節點利用DU判斷簇頭是否被入侵,從而決定是否加入該簇。在簇形成以后,由簇頭來監視簇內節點的活動。簇頭IDU從節點上傳的數據來判斷入侵,能有效地避免內部叛變。
(1)監視Agent(MonA)
簇頭節點上的監視 Agent收集簇內所有節點的通信活動,將收集到的數據進行特征提取后,產生抗原交給上層的檢測Agent分析。本文中抗原和抗體的編碼方式采用二進制編碼,如圖2所示。主要考慮從能量、協議、IP地址和端口等內容發現異常,從而判斷是否有入侵發生。

圖2 抗原的編碼形式
(2)檢測Agent(DetA)
檢測Agent利用免疫原理對抗原進行檢測,這是整個入侵檢測系統的核心部分。如果發現入侵,則激活上層的響應Agent。檢測Agent使用的入侵檢測器為所有成熟免疫細胞和記憶細胞的集合,其中記憶細胞利用先驗知識能夠快速識別入侵,成熟免疫細胞用于檢測未知新型入侵。
(3)響應Agent(ResA)
響應Agent負責處理報警信息和接收疫苗,響應Agent根據具體的情況采取相應的響應措施,包括降低相應節點的信任度、切斷通信、更新密鑰等。簇頭的IDU將檢測到新型入侵的抗體作為疫苗朝發送給簇內所有傳感器節點,減少網絡學習的時間。為了降低誤報率,每個節點的DU對來自其它節點的疫苗首先要進行自體耐受,只有疫苗不與該節點的任何自體匹配時才能成為該節點的記憶細胞。
(4)管理Agent(ManA)
管理Agent負責刺激應答、更新自體集、管理和控制其他 Agent。簇頭與簇內節點之間、簇頭與簇頭之間以及簇頭與Sink節點之間通過各自的管理Agent相互通信,交換檢測結果及相關信息。管理Agent再通過接口與 IDU內的其它Agent通信,達到分布式協作檢測的目的。
為適應無線傳感器網絡的動態性,IMAIDM的抗體在檢測過程中也是動態變化的。如圖3所示。
隨機生成的二進制串作為未成熟免疫細胞,但其不能與任何自體相匹配。利用否定選擇算法對未成熟細胞進行自體耐受,如果在耐受期內沒有與任何自體匹配,則成長為成熟免疫細胞,期望能檢測未知新型入侵。由于傳感器節點存儲空間有限,因此有必要對成熟細胞的濃度進行一定的控制,即高相似性的細胞不應太多,對每個新成熟的免疫細胞,按式(1)和式(2)計算它與成熟細胞集中其它抗體的親和力,并按式(3)計算其濃度。


圖3 IMAIDM中的抗體
對于抗體x,若有 AbCh( x)>λ(λ為抗體濃度閾值),則x發生了冗余,無需重復存儲。同時,對每個抗體設置一個生命期,在生命期內若匹配可疑抗原,則該細胞被激活,管理Agent向Sink節點及其它簇頭節點發起協同檢測,如果協同判斷的結果為入侵,則成熟細胞成長為記憶細胞。記憶細胞將優先檢測所有的抗原,利用先驗知識達到快速檢測入侵的目的。為解決諸如檢測效率隨著記憶細胞集的無限增長而降低、記憶細胞達到飽和后新的抗體無法生成,導致無法檢測到新的入侵等問題,本文通過 LRU算法來淘汰最近最少使用的記憶細胞,以保證記憶細胞集的容量一定,并有能力動態地加入最新的抗體。淘汰的記憶細胞將重新加入成熟細胞集。針對網絡入侵行為的相似性,本文對記憶細胞進行交叉變異生成新的未成熟細胞,減少未成熟細胞產生的盲目性,提高學習效率。同時,我們注意到新增的記憶細胞可以檢測最新的入侵,因此本文利用簇頭節點之間相互交換最新的記憶細胞,以注射疫苗的方式,迅速提高全網的安全性。
IMAIDM中入侵檢測分兩個階段,第一個階段是在形成簇的時期,第二個階段則是在簇形成以后。當某一個節點競爭成為簇頭,向其它節點發布當選信息時,每個傳感器節點內的IDU將被激活,檢測該簇頭節點的安全性以判斷是否加入該簇。
算法l 簇頭判定檢測算法
MonA:抗原提呈
(1)MonA接收簇頭當選信息、密鑰驗證應答等信息;
(2)將收到的相關信息進行數據融合,提取特征向量組成抗原ag;
(3)將ag上傳給本地DetA。
DetA:免疫檢測
(1)計算抗原ag與記憶細胞集AbM以及成熟細胞集AbT中的每一個抗體ab的親和力 A( a g, ab);
(2)若?ab使得 A( a g, a b)>γ,則判斷該簇頭節點為入侵,將結果上傳給本地ResA;
(3)否則,判斷沒有發生入侵,接受并加入該簇。
ResA:入侵響應
(1)若收到ResA上傳的入侵信息,將該簇頭的入侵標簽Ttag++,并上傳給本地ManA;
(2)若收到ManA發送的聯合入侵信息,則將該簇頭的入侵標簽Itag++;
(3)若入侵標簽Itag>τ(τ為聯合閾值),則將該簇頭標記為入侵;
(4)切斷與入侵節點的通信,不選擇該節點作為簇頭。
ManA:協同檢測
(1)收到本地ResA發送的入侵信息,將該消息聯合發送給其它鄰居節點;
(2)收到鄰居節點發送的聯合入侵消息,將該消息傳給本地ResA。第一階段的檢測是分布式聯合檢測,當鄰居中有τ個節點認為該簇頭不安全時,傳感器節點將拒絕加入該簇。其中聯合閾值τ可根據安全性要求進行設置。當簇頭選擇完成以后進入第二階段,被選為簇頭的節點負責整個簇內的入侵檢測任務。在第二階段中,僅簇頭節點的IDU處于激活狀態,監視簇內其它節點發送來的數據,并檢測是否有入侵發生。簇內的普通節點除管理Agent外,其它Agent均處于休眠狀態,達到節能的目的。
算法2 簇內入侵檢測算法
MonA:抗原提呈
(1)簇頭IDU的MonA接收簇內每個節點發送來的數據包,并提取特征向量組成抗原ag;
(2)將抗原ag上傳給本地DetA。
DetA:免疫檢測
(1)For ab∈AbM,計算抗原—抗體的親和力A( ag,ab)。若?ab使得 A( a g, a b)>γ,則轉(4);
(2)For ab∈AbT,計算抗原—抗體的親和力 A( a g, a b)。若?ab使得 A( a g, a b)>γ,則轉(5);
(3)判斷沒有發生入侵,接受該數據包,轉(7);
(4)判斷有入侵發生,并將入侵信息上傳給本地ResA,轉(7);
(5)將入侵信息上傳給本地ManA,請求協同刺激;
(6)根據ManA發回的協同刺激,若協同判定為入侵,則匹配該抗原的成熟細胞成長為記憶細胞,轉(4);否則匹配該抗原的成熟細胞死亡,轉(3)。
(7)檢測結束。ResA:入侵響應
(1)若收到ResA上傳的入侵信息,丟棄該數據包,并標記該節點,切斷與該節點的通信,將入侵消息上傳給ManA。
(2)若收到ManA發送的疫苗信息,則對疫苗進行自體耐受,耐受成功以后加入A%。
ManA:協同檢測
(1)收到本地DetA發送的協同請求,將入侵消息發送給Sink節點,并將Sink節點返回的協同判定發送給DetA。
(2)收到本地ResA發送的入侵信息,將相關抗體作為疫苗發送給其它簇頭節點和本簇內的所有節點。
(3)收到鄰居簇頭節點發送的疫苗,將該疫苗傳給本地ResA。
(4)收到Sink節點發送的網絡變更消息,更新自體集,并將消息發送給簇內所有節點。在第二階段,簇內節點將數據發送到簇頭,由簇頭節點負責全簇的安全。同時,簇頭節點之間進行疫苗交換,以加快全網的學習效率。當有未知情況發生時,由Sink節點來判定是入侵行為,還是網絡的合法變更。在這一階段,簇內節點的IDU功能僅僅是更新自體集和接受疫苗,而不再對簇頭節點進行監視和檢測,以減少能量的消耗。對于這一階段簇頭節點叛變的問題,可以通過限制簇頭的任期來進行一定的控制。
IMAIDM采用多代理技術,傳感器節點和簇頭在不同的時期承擔不同的檢測任務,融合本地檢測和聯合檢測于一體,能有效降低網絡的能耗。每個節點中的Agents基于人工免疫的基本原理,利用免疫系統的多樣性和自適應性來加強對未知新型入侵的檢測。同時,各Agent之間通過疫苗注射來加快入侵檢測的速度,從而迅速提高了全網的安全性并延長了網絡的生存周期。IMADM符合無線傳感器網絡的動態特點,可成為無線傳感器網絡中繼加密、認證等安全措施之后的又一安全保障措施。
[1]孫利民,李建中,陳渝.無線傳感器網絡[M].北京:清華大學出版社.2005.
[2]Denning DE An Intrusion Detection Model [J].IEEE Tram Off Software Engineering.1987.
[3]楊黎斌,慕德俊,蔡曉妍.基于核聚類的無線傳感器網絡異常檢測方案[J].傳感技術學報.2009.
[4]王騏,王殊,盂中樓.無線傳感器網絡中一種基于接收功率異常的入侵檢測算法[J].計算機科學.2009.
[5]Krishnamachari B,Lyengar S.Distributed Bayesian Algorithms for Dault-Tolerantevent Region Detection in Wireless Sensor Networks[J].IEEE Trans on Computer.2004.