滕萍
遼寧警官高等專科學校公安信息系 遼寧 116036
無線移動Ad Hoc(Mobile Ad Hoc Networks)網絡作為一種無中心控制的多跳傳輸網絡,逐漸成為移動通信網絡的一種重要類型。移動Ad Hoc網絡工作在一個要求節點共同協作的開放環境中,同時該網絡節點間共享型無線鏈路易被截獲,具有通信缺乏身份認證保障、沒有集中監控和管理機制、拓撲結構變化頻繁和節點資源受限等特征。網絡因此存在很多安全漏洞,極易受到各種類型的攻擊,如欺騙攻擊、自私攻擊、拒絕服務攻擊等。其中,蟲洞攻擊是一種針對移動Ad Hoc網絡路由協議的高級攻擊形式。這種攻擊能對網絡造成很大危害,并且極難防御,一般的安全加密手段對其沒有作用。絕大部分Ad Hoc網絡路由協議沒有針對蟲洞攻擊的安全機制,不能有效檢測蟲洞攻擊。本文提出了一種較為簡便的網絡拓撲分析算法檢測蟲洞攻擊,并基于該算法提出了OLSR路由協議安全改進機制。
蟲洞(Wormhole)攻擊是一種針對Ad Hoc網絡路由協議的高級攻擊形式。它是網絡中的兩個攻擊節點合謀發動的一種協同攻擊。攻擊節點間建立了一條高質量高帶寬的私有鏈路通道,稱為“隧道”(Tunnel)。攻擊節點X在網絡中監聽并記錄接收到的分組,然后通過“隧道"秘密的將該分組傳到網絡中另一端的合謀節點Y,再由Y將分組重新注入網絡中,如圖1所示。這種攻擊形式簡單,但危害很大,極難檢測。

圖1 蟲洞攻擊
OLSR路由協議是由 IETF MANET(Mobile Ad Hoc Networks)工作組專門為無線移動Ad Hoc網提出的一種標準化的表驅動式優化鏈路狀態路由協議。作為一種先應式路由協議,它周期性的交換路由信息并能在需要時隨時建立起路由。而作為鏈路狀態協議,它維護了從洪泛拓撲控制分組獲得的網絡拓撲信息,以此依據路由算法決定到網絡中每個目的地的最佳路徑。OLSR路由協議在單純鏈路狀態協議上作了改進,表現出了以下重要特征: .
(1)只有被鄰居節點選擇出來的 MPRs(Multi Point Replay,多點中繼集)才能向網絡轉發拓撲控制分組,實現分組洪泛最小化;
(2)節點對外只通告與 MPR selector(多點中繼選擇者)之間的鏈路,減小了控制分組的大小。
在OLSR路由協議中,并不是所有的鄰居都會進行路由控制分組的轉發,只有被選為MPR的鄰居才能進行轉發。節點利用本地鄰居表和路由表中的信息路由分組,通過MPR機制來控制TC分組在網絡中廣播的規模,減少控制分組給網絡帶來的負荷,同時避免形成廣播風暴。它適合于流量是隨機發生的并且是散布的而不總是在發生在小的特定節點集的網絡。OLSR也適合于通信對發生改變的場景,在這種情況下,不需要產生額外的控制分組,因為所有所知的目的節點隨時都要維護路由。移動Ad Hoc網絡越大越密集,OLSR路由協議就越有優越性。
針對蟲洞攻擊,本文提出一種OLSR安全路由協議,通過將HIDA檢測算法嵌入到OLSR路由協議中,然后輔以相應安全機制來完成。
在這里介紹 HIDA檢測算法在OLSR路由協議中的實現,使協議在完成路由功能的同時進行蟲洞攻擊的防御檢測。OLSR路由協議是表驅動的,以l跳鄰居表和2跳鄰居表作為路由計算的基礎,HIDA算法即主要依據這兩個表項實現。OLSR路由協議嵌入HIDA算法的主要流程:節點A若收到一個之前不在2跳鄰居表的新鄰居的HELLO報文,它就設置一個全局定時器,啟動蟲洞攻擊檢測算法。當A在HELLO Interval這段時間內第一次收到兩個節點M和N的HELLO分組,并且這兩個節點不互為鄰居,同時檢測到它們不在A的l跳和2跳鄰居表內時,將它們記錄在一個可疑鄰居表中。在HELLO Interval中,A通過接收到舊鄰居節點的HELLO分組,可以計算出這個短時間內收到M和N的HELLO分組的正常鄰居節點個數,若這種舊鄰居節點個數大于或等于兩個以上,則A就可判定存在蟲洞攻擊、M和N為偽鄰居。否則,A就認為可疑鄰居表中節點是可信任的,將這些臨時存儲信息移除。檢測到蟲洞攻擊后,A將其偽鄰居M和N記錄在偽鄰居表中,并迅速采取一系列自愈措施:將偽鄰居從MPR集中及時刪除,忽略它們的HELLO分組以及M和N鄰居表中的節點的HELLO分組。在一定時間(5s)之后,A重新接收所有節點分組。
HIDA檢測算法在全局定時器啟動后進行工作,節點將接收到的節點信息記錄進行臨時存儲,并在兩倍 HELLO Interval時間內完成可疑鄰居表的計算。定時器超時,統計可疑鄰居表信息,分析鄰居拓撲關系。最后對可疑鄰居表清零,撤銷定時器,并進行下一次檢測循環。
本文基于OLSR路由協議,提出一種探詢分組機制,將其加入至UOLSR安全路由協議中,彌補了HIDA蟲洞攻擊檢測算法的不足,完善其性能。
當節點檢測到偽鄰居的存在時,就會立即向所有鄰居廣播一種探詢分組。探詢分組包括節點對當前鄰居的認知信息,即偽鄰居表當中的信息。通過探詢分組的交互,如果收發雙方節點均在對方的偽鄰居表中,即檢測到蟲洞攻擊的節點同時收到其它節點的探詢分組的話,那么該節點就可以確定:存在蟲洞攻擊、對方節點是自己的偽鄰居。如果只有一方節點發現自己存于對方的偽鄰居表當中,表明檢測結果的信任級別不高,可能會存在誤判現象。
探詢分組機制主要用來評估偽鄰居檢測結果的信任級別,根據網絡應用環境條件或者不同的防御級別需求,節點可以根據OLSR安全路由協議的檢測結果采取不同的處理機制:節點通過偽鄰居處理完成自愈以防止蟲洞攻擊或者節點將檢測結果反饋給網絡的監控實體來處理。
探詢分組機制在OLSR安全路由協議中的具體實現是在周期性的HELLO報文中對偽鄰居做特殊標識,接收節點通過檢查標識來識別出探詢分組和鄰居節點偽鄰居信息。探詢分組在節點檢測到蟲洞攻擊的一個HELLO Interval時間內發送,接收節點能迅速地做出反應。
當蟲洞攻擊被檢測到時,節點就需要對偽鄰居進行處理。OLSR路由協議中蟲洞攻擊產生的偽鄰居中的一部分最終會成為節點的MPR節點。MPR節點實現洪泛TC控制分組的功能,它們對分組的轉發決定著節點對網絡拓撲的認知,節點的路由表項的建立完全建立在TC控制分組基礎上。偽鄰居一旦成為MPR節點,節點與偽鄰居之間的鏈路必將會出現在其它節點的路由表項當中,而這條鏈路是攻擊節點通過“隧道”發動蟲洞攻擊表現出來的。那么,這些路由都會受控于攻擊節點。因此,偽鄰居處理的第一步是將 MPR集中的偽鄰居及時刪除,這樣就避免了蟲洞攻擊的產生的最主要危害作用。
基于以上分析,對偽鄰居的處理可以依據以下兩種機制:
(1)自愈機制:主要考慮去除偽鄰居的引入對網絡造成的危害作用。節點在檢測到蟲洞攻擊后采取一系列自恢復措施:移除協議各個表中偽鄰居的相關信息、屏蔽偽鄰居及相關分組。自愈機制是每個節點以自組織的形式對偽鄰居進行處理,它需要每個節點都運行OLSR安全路由協議,因此,它對節點的計算資源消耗更大。
(2)報警機制:主要考慮解決誤判現象引起的合法節點間不能通信的問題。節點不輕易將未經確認的偽鄰居進行移除和屏蔽,而是在檢測到蟲洞攻擊后向網絡的管理者或用戶做反饋,由它們進行進一步處理。報警機制在網絡中劃分不同區域,每個區域選擇一個信任節點進行蟲洞攻擊檢測,區域的大小由檢測級別決定,檢測級別越高,區域劃分就越小。這種機制需要網絡提供一種輔助方案來完成被信任的檢測節點的選取。
本文綜合分析已有安全路由協議的策略,根據蟲洞攻擊的原理和特性,提出了一種較為簡便的蟲洞攻擊檢測算法——HIDA算法。HIDA算法的主要思想是通過分析蟲洞攻擊在網絡中產生偽鄰居的特殊現象,采用偽鄰居檢測的手段來防御攻擊。
[1]陳林星,曾曦,曹毅.移動Ad Hoe網絡:自組織分組無線網絡技術.電子工業出版社.2006.
[2]于宏毅.無線移動自組織網.人民郵電出版社.2006.