張 毅 張秀梅
(武漢數字工程研究所 武漢 430074)
移動自組織網絡(mobile Ad Hoc network,MANET)是由一組帶有無線收發裝置的移動節點組成的一個支持多跳的臨時性的網絡自治系統[1].MANET網絡無線信道、動態拓撲、合作的路由算法、缺乏集中的監控等特點都使得它的安全更加脆弱,特別是移動節點缺乏物理保護,容易被偷竊、捕獲,落入敵手后又重新加入網絡.而采用密碼學理論的網絡安全方案無法完全對抗此類攻擊,入侵檢測系統就成為安全方案之后的第二道防護墻.移動Agent是一個能在異構網絡中自主從一臺主機遷移到另一臺主機,并可與其他Agent或資源進行交互的程序,實際上它是Agent技術與分布式計算技術的結合體,具有移動性和自主性等特點[2-3].將移動Agent應用到 MANET網絡入侵檢測系統中是一種十分新穎的方法.
1)最壞存活期(aij)
定義1 在節點n傳輸范圍R內的節點為節點n的鄰居.
定義2 節點i和j之間的最壞存活期aij的大小為:aij=(R-d)/2 M (R>d);aij=0(R≤d).式中:R為傳輸范圍;d為節點i,j之間的距離;M為節點平均速度.最壞存活期aij用以度量節點i和j之間連接可以有效維持的最短時間.
2)計數器 每個節點上設置一個計數器,網絡剛開始運行時,所有計數器為零.Agent從一個節點跳到另一個節點收集分布節點的信息,當一個Agent完成信息交換任務離開節點時,就將該節點的計數器增加1.計數器的大小代表了該節點被Agent訪問過的次數.
3)Agent的數據結構 一個Agent由下列幾部分組成:Agent標識符id;Agent程序P;Agent數據包.Agent數據包里包含了一些狀態參數,如aij、計數器等,Agent能夠與其他Agent和節點分享數據包里的內容.
Agent的首要任務是傳送每個節點的信息到另一些節點.為使開銷達到最小,采用“最先訪問‘訪問次數最少的節點’”的Agent移動策略.
任意Agent到達目的節點i后,Agent內的程序將完成以下的工作步驟.
1)Agent到達節點i,將Agent里數據包里存儲的節點的計數器值與存在當前節點中的所有其他節點的計數器值進行比較,計數器值大的數據會更新,于是將數據包里更新的節點的行列信息保存到節點的cache上.
2)該Agent排在cache隊列的最后,在等待TM時間后選擇路由路徑,并發送.
3)在該節點的cache上比較所有鄰居的計數器值,取最小值,該值的節點就是下一個可能要訪問的節點.
4)如果被選擇的節點最近3次沒有被訪問過,該節點就是Agent下一個要訪問的節點;如果被選的節點在最近三次被訪問過,則選擇下一個最少訪問的鄰居,以此類推.
5)將節點i的計數器值加1,即將訪問的節點加入到節點i的歷史信息中.
6)Agent離開前,將節點i里cache上的內容存儲到Agent的數據包里.
7)Agent繼續訪問下一個節點.
數據報文的路徑選擇算法采用廣度優先搜索算法,以目的節點為樹的根節點,每一跳形成樹的一層,該樹的最大層數為網絡節點的數量.
設節點i是源節點,節點j是目的節點,則節點j是樹的根.數據報文的路徑選擇算法如下.
1)節點i查看本節點矩陣表中節點i和節點j之間是否有連接,即查看aij是否為零,如果不是零,說明有連接,則信號直接發送,路由結束;如是零,說明不存在一跳操作,則進入2).
2)查看矩陣表中j節點的列式aj,找出aj列中所有的非零項.如果aj列中所有值都為零,則節點i和j不存在有效的路徑,路由結束;否則非零項就是節點j的子節點,記錄其子節點,進入3).
3)將上述子節點根據其相應的列繼續找出其子節點.若這層子節點中存在節點i,則刪除不包括節點i的路徑,對包括i的剩余的多條路徑對其各自路徑的權值進行相加,得到各路徑的權值和,比較各權值和,和最大者為首選路徑,次大者為第一備用路徑,依此類推,記錄路徑走法,路由結束;若這層子節點中不存在節點i,則進入4).
4)這層子節點繼續根據其相應的列找出其子節點,同樣判斷這些子節點是否存在節點i,存在則如步驟3)記錄路徑,路由結束;若不存在節點i則繼續查找其子節點,這樣就形成一個循環,若在n次循環中找到了i節點,則記錄路徑,路由結束;若循環次數超過了n依舊未找到i節點,則路由路徑不存在,i和j不通,路由結束.
1)監視器子系統(鄰居監視) 當節點中有數據包要傳輸時,通過數據報文路由算法,可以迅速得到數據包的路由路徑.在數據包傳輸的同時,在節點的cache中留一個路徑備份,如果在某個固定時間內,該其鄰居節點按正常路徑轉發數據包,則說明一切正常,刪除節點cache中的備份;如果數據包到達鄰居節點后,在某個固定時間內未能轉發,則說明該節點有可能有故障,按cache中的備份重新發送,若連續三次重新發送依然不正確,記錄結論傳輸給“本地判斷子系統”做出判斷,并下命令給“路徑處理子系統”,采用選用備用路徑或其他措施.
2)本地判斷子系統 管理一個表格,包括各節點的信譽值.信譽值只有在由明顯證據表明某節點有可能存在問題,而且有大量重復的數據表明該問題重復發生時,才會有變化.榮譽值變化的權重也不同,本節點觀察到的權重最大,其次是鄰居節點發送過來的消息,權重最小的是遠處匯報來的消息.
該子系統采用貝葉斯方法.當某鄰居節點的榮譽值超出一定“懷疑”范圍時,向“路徑處理子系統”給出本地意見,“路徑處理子系統”可采用繞路的策略;當某節點“本地判斷子系統”的榮譽值超出了可以容忍的范圍時,信息會傳送給“綜合判斷子系統”.“本地判斷子系統”單元內部保存有各種異常行為的模型,將鄰居節點的異常和模型進行比較,得出故障類型.
3)綜合判斷子系統 首先收集“本地判斷子系統”給出的本地意見,同時也收集從其他節點收集來的告警信號,利用收集的綜合信息,利用拜占庭將軍算法來進行綜合識別得出最后的結論給“路徑處理子系統”.“綜合判斷子系統”由以下部分組成:告警信息表(包含收到的警告及發出的警告);信任表(每個節點的信任等級);節點列表;發送和接收告警.
4)通信子系統 該子系統處理輸入和輸出告警信號.當“綜合判斷子系統”利用拜占庭將軍算法,得出結論確認某節點故障時,向“通信子系統”發出告警,“通信子系統”由 Mobile Agent攜帶該信息向鄰居節點發出故障告警信號;當“通信子系統”從鄰居節點收到告警信號時,將其傳遞給“綜合判斷子系統”,用拜占庭將軍算法進行處理.
5)路徑處理子系統 當“本地判斷單元”給出本地告警意見時,采用“繞路”的方式,即繞開問題節點;當“綜合判斷單元”給出確認故障時,采用“隔離”的策略.
如圖1所示,每個節點根據系統基礎算法監視它的下一跳鄰居.如果一個可疑的節點監測到,首先給到“本地判斷子系統”,結合鄰居的觀察,根據貝葉斯方法,如果超出一定的域值,則向“綜合判斷子系統”給出本地意見,并通知“路徑處理子系統”,采用繞開該節點的路徑的方法;若節點監視重新恢復正常,發出故障恢復信號給“綜合判斷子系統”,并同時取消繞路命令.

圖1 入侵檢測系統體系結構
“綜合判斷子系統”同時還通過“通信子系統”接受來自其他節點的告警信息,收到告警信號后,結合本節點的“本地判斷子系統”信息,采用拜占庭將軍算法,采用簽名后繼續發送,最后得到某節點是否是故障節點,確認后觸發“路徑處理子系統”采用隔離的方法,將該故障節點從cache中的矩陣表中,將包含該節點的行和列都刪除掉,徹底從網絡中剔除該節點.
利用NS-2仿真平臺進行仿真實驗,在仿真中,網絡環境范圍設置為1 000m×1 000m,節點隨機分布.設定該網絡內有30個移動節點,每個節點的通信傳輸范圍400m.每個節點的移動速度范圍為1m/s到10m/s.每個節點隨機選擇一個方向作為其目標方向,采用統一的移動速度和行為策略:一旦指定的節點到達了目的地,在那等待特定的時間后,然后再隨機地選擇另一個方向,開始下一次移動.
“黑洞”是MANET網絡中極易出現的入侵方式.惡意節點偽裝此路徑為最佳路徑,使得數據包都流向此節點,就在網絡中形成了一個“黑洞”.從而對網絡進行攻擊[4-6].圖2說明了 AODV 協議和基于Agent入侵檢測系統關于“黑洞”問題對比的仿真圖.

圖2 “黑洞”仿真圖
從圖2可以看出,在網絡正常情況下,AODV協議與基于Agent路由算法的傳輸率相差不大,在90%左右.當仿真一個惡意“黑洞”節點產生時,AODV協議下傳輸率大幅度下降(在30%左右),而基于移動Agent的入侵檢測系統仍保持較高的傳輸率(在80%左右),可以很好地解決“黑洞”的安全問題.
“蟲洞”攻擊也稱為隧道攻擊,是一種針對MANET路由協議的嚴重攻擊,它是在兩個串謀惡意結點間建立一條私有通道,攻擊者在網絡中的一個位置上記錄數據包或信息,通過此私有通道將竊取的信息傳遞到網絡的另外一個位置.圖3是AODV協議和基于Agent入侵檢測系統關于“蟲洞”問題對比的仿真圖.

圖3 蟲洞仿真圖
從圖3可以看出,在網絡正常情況下,AODV協議與基于Agent路由算法的傳輸率相差不大,在90%左右.當仿真兩個串通惡意蟲洞節點時,AODV協議下傳輸率大幅度下降(在65%左右),而基于移動Agent的入侵檢測系統仍保持較高的傳輸率(在85%左右),可以很好地解決“蟲洞”問題.
本文提出了一種在MANET網絡中基于移動Agent的入侵檢測系統.該系統的基礎算法是基于移動Agent的路由算法.入侵檢測系統通過監視器、本地判斷、綜合判斷、通信、路徑處理等子系統協同工作,當判斷出可疑行為超出了預警范圍時,發出告警信號,并采用繞路的措施;當可疑行為超出可容忍的范圍時,綜合考慮來自各個節點的告警信號,得出最終可靠的結論,并從網絡中徹底刪除該節點.在NS-2網絡仿真系統中對入侵檢測系統進行了仿真實驗.仿真結果顯示,本系統僅使用很少的Agent便獲得較多的全局信息,大大地減少維持節點信息而產生的開銷,具有很高的效率和魯棒性.
[1]Ramanathan R,Jason R.A brief overview of mobile Ad Hoc networks:challenges and directions[J].IEEE Communications Magazine 50th anniversary issue,2002(5):20-22.
[2]Lange D B.Mobile objects and mobile Agents:the future of distributed computing?[M].Addison-Wesley,1998.
[3]Kachirski O,Guha R.Intrusion detection using mobile Agents in wireless Ad Hoc networks[C]//IEEE Workshop on Knowledge Media Networking,Kyoto,JAPAN,2005.
[4]Tseng ChinYang,Balasubramanyam P.A specificationbased intrusion detection system for AODV[C]//2003ACM Workshop on Security of Ad Hoc and Sensor Networks(SASN’03),Fairfax,USA,October 2003.
[5]Michiardi P,Molva R.Core:a collaborative reputation mechanism to enforce node cooperation in mobile Ad Hoc networks[C]//Sixth IFIP conference on security communications and multimedia,Slovenia,2004.
[6]Venkatraman L,Agrawal D P.Strategies for enhancing routing security in protocols for mobile Ad Hoc networks[J].Journal of Parallel and Distributed Computing,2003,63(2):214-227.