摘要:隨著Ad hoc網絡的廣泛應用,其固有的特性和安全漏洞帶來了極大的安全隱患,其中蟲洞攻擊是Ad Hoc網絡難以解決的攻擊之一,本文首先闡述了蟲洞攻擊的原理,然后將蟲洞攻擊的2種模式進行了分析。后面介紹了現在已提出的檢測蟲洞攻擊的多種方法,本文第3部分對這些方法的一些功能和局限(同時檢測2種模式的蟲洞攻擊、定位惡意節點、需要額外的硬件設備等)進行了比較,對在什么環境使用什么檢測方法提出觀點,最后作者提出了如何解決蟲洞攻擊的思路。
關鍵詞:移動自組網;蟲洞攻擊;安全
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2008)01-10ppp-0c
Detection Method of Wormhole Attacks in Ad Hoc Networks
ZHOU Long-Fei,WANG Qian-ping
(College of Computer Science and Technology,China University of Mining and Technology,Xuzhou 221008,China)
Abstract:With the development of applications on Ad Hoc network,its peculiarities and leaks on security bring serious threat to its security.Wormhole attack is one of difficulties of the Ad Hoc network,This paper expatiate the elements of the wormhole attack,and analyses the two sorts of wormhole attacks.Then,some relevant solutions of detecting wormhole attacks are introduced. The performance and limitation analysis of these methods(detecting two sorts of wormhole attacks at the same time, locating the malicious nodes, additional hardware requirement) is introduced in the section 4.In the last section,writer bring forward the self viewpoint of it.
Key words:Ad Hoc;Wormhole Attacks;Security
1 Ad Hoc網絡下的蟲洞攻擊
Ad Hoc網絡中蟲洞(Wormhole)攻擊是最難以檢測與預防的.蟲洞攻擊,是一種針對Ad hoc 路由協議,特別是帶防御性的路由協議的嚴重攻擊,它是在兩個串謀惡意結點間建立一條私有通道,攻擊者在網絡中的一個位置上記錄數據包或位信息,通過此私有通道將竊取的信息傳遞到網絡的另外一個位置。因為私有通道的距離一般大于單跳無線傳輸范圍,所以通過私用通道傳遞的數據包比通過正常多跳路徑傳遞的數據包早到達目標結點。如果蟲洞攻擊者故意傳遞部分數據包,如只傳遞控制信息數據包,或篡改數據包的內容,將造成數據包的丟失或破壞。同時因為蟲洞能夠造成比實際路徑短的虛假路徑,將會擾亂依靠結點間距離信息的路由機制,從而導致路由發現過程的失敗。

例如,對于使用HELLO數據包來檢測鄰結點的周期性路由協議OLSR,如果攻擊者通過私有通道將由結點A 發出的HELLO 數據包傳遞給結點B 附近的串謀攻擊者,同樣攻擊者通過私有通道將結點B發出的HELLO 數據包傳遞給先前的攻擊者,那么A 和B 將相信它們互為鄰結點,這將導致當它們實際不是鄰結點時,路由協議將不能找到正確的路徑。
蟲洞攻擊可以根據惡意節點在網絡中的位置分為顯式攻擊和隱式攻擊,如圖1
隱式攻擊:蟲洞節點轉發時不改變數據包頭,因此蟲洞節點在網絡中是隱身的,W1和W2僅僅是轉發S發出的數據包到D,隱式蟲洞攻擊下S到D的路徑為:
S → A→ B → D
顯式攻擊:這種蟲洞節點不改變數據包的內容,但是它將自己的身份證明加載在包頭,就像合法節點做的一樣,因此,其它的節點知道蟲洞節點的存在,但是他們不知道蟲洞節點是惡意的,顯式蟲洞攻擊下S到D的路徑為:
S→A→W1→W2→B→D
2 蟲洞檢測方法
蟲洞非常難于檢測,因為它用于傳遞信息的路徑通常不是實際網絡的一部分,同時它還特別危險,因為它們能夠在不知道使用的協議或網絡提供的服務的情況下進行破壞。許多研究者對此提出了許多的方案,本文下面將進行介紹:
2.1 基于地理位置
GEAR ( Geograp hic and Energy Aware Routing)是基于地理位置的路由協議[1],利用GPS(Global Positioning System)或GNSS(Global Navigation Satellite Systems)等全球定位系統對無線節點的位置進行確定,并根據節點的具體坐標計算出節點間的相對距離,如果節點間的距離大于節點的傳輸距離,則可以斷定存在惡意節點。另外在根據地理位置信息的基礎上,另外還衍生出端到端的蟲洞檢測方法[2]
2.2 基于同步時鐘
Yih-Chun Hu等人[3]提出了一種稱為“數據包限制”(packet leashes)的機制,所有網絡節點必須要具有嚴格同步的時鐘。并采用一種有效的認證協議TIK 來檢測并防御蟲洞攻擊目的節點。目的節點可以根據接收時間和發送時間檢測數據包傳輸的距離是否太長。同樣也可以在數據包內設置一個失效時間,超過這個時間,接受者應該收不到數據包。如果發現數據包傳輸距離過長或超過數據包中定義的實效時間,則認為存在蟲洞。但此方案增加了計算與通信開銷,也需要較大的存儲空間。
2.3 基于監聽與信賴
這種方法[4]首先設定網絡節點天線都是全方向的,并支持混雜模式,這樣源節點在發出數據包之后可以對鄰居節點進行監聽,也就是可以監聽鄰居節點轉發數據包的時間,根據轉發時間可以對鄰居節點進行信任評估,在源節點發送數據包之前,根據鄰居節點的信任值進行選擇,如果鄰居節點是蟲洞攻擊的惡意節點,那它轉發數據包不可能被源節點監聽到,也就是說惡意節點的信任值是最低的,從而不會被選擇到,這樣自然就孤立了惡意節點,也避免了蟲洞攻擊的危害。
2.4 RTT
Jane Zhen和Sampalli Srinivas[5]使用了一種稱之為循環旅行時間(RTT)的方法來檢測蟲洞。A節點計算與節點B之間的RTT,通過發送一個信息給B,要求立刻回復。A,B間的RTT就是從A發送請求到接收到B的回復所經歷的時間。每個節點都計算與鄰居節點間的RTT,因為2個假冒鄰居間的RTT必然大于真正鄰居間的RTT。因此通過比較A和A的鄰居間的RTT,A節點可以確定哪個鄰居是假冒鄰居。這種方法不需要額外的硬件并容易實現,但是對于顯式蟲洞攻擊的檢測是無效的。
2.5 使用加密算法
基于加密算法的安全策略,比如:SAODV、SEAD、 SAR。這些安全路由協議可以提供較完善的路由安全保障,但是這些策略需要在路由協議中加入復雜的加解密算法和相應的協議,并且需要節點間具有很強的協作關系。這顯然不適用于一般商用性和自發性、臨時性的自組網。該類網絡所面臨的安全威脅(比如大規模的協同攻擊)和需要達到的安全標準都比較低,采用上述幾種策略的低價比太高。
2.6 使用RF(射頻)水印
節點間通過特有的方法改變射頻RF的波形,來認證無線傳輸,防止惡意結點的接入。
2.7 SECTOR
SECTOR [6]方法使用特殊的能接收單個二進制位的硬件收發器來計算通信雙方的精確距離,接收節點可以據此確定所收的包是由合法路徑傳輸而來還是由惡意節點通過隧道傳輸而來。由于此方案需要安裝特殊的硬件設備,所以限制了它的使用范圍。
2.8 基于統計分析的方法
SAM協議[7]是由分裂路由協議(SMR)改進而來,使用統計分析的方法進行蟲洞檢測,這種方法在多路路由協議的環境下使用,每次檢測前,當前節點發起路由發現過程,將所得到的所有路由經過的鏈接進行統計,因為在蟲洞攻擊下,惡意節點所在的鏈接將在路由表中出現的比例很高,所以此方法統計處出現比例最高的鏈接,并使用探測包對它進行檢測,由此確定惡意節點。
另外還有一種基于統計分析的檢測方法,稱之為鄰居數量檢測方法[8],這種方法是基于惡意節點周圍的鄰居數量將增加這個簡單的假設之上的,基站將得到所有節點的鄰居信息,計算鄰居數量分布的估計值,并且使用統計測試來決定是否存在蟲洞
2.9 基于定向天線
Lazos等人針對無須測距定位系統分別提出了SeRLoc[9]協議。SeRLoc是一種完全分布式、局部化的安全定位協議,其設計目標是在非安全環境中,每個節點借助少量可信信標節點的輔助正確地估算自己的坐標。.借助定向天線的幾何特性,SeRLoc在假定沒有惡意干擾的前提下,可以檢測出蟲洞攻擊和女巫攻擊。
2.10 DelPHI
DelPHI[10]方法由Hon Sun Chiu 和 King-Shan Lui提出,能夠檢測隱式和顯式的蟲洞攻擊,在這種方法中,盡量找到發送節點和接收節點間所有可能的不相交路徑。然后計算每條路徑的延時和長度,就可以得到每條路徑的平均跳延時(每跳的平均延時),因為存在蟲洞攻擊的路徑上的平均跳延時必定遠遠大于正常路徑上的值,以此可確定蟲洞攻擊的存在。這種方法可以發現蟲洞攻擊,但是不能定位惡意節點。另外,因為節點的移動導致路徑長度也在變化,所以蟲洞節點也可以按照特定的方法改變路徑長度,使這種檢測方法實效。
3 蟲洞檢測方法比較
由表1中可以看出,能檢測出顯式蟲洞攻擊的有7種方法,檢測出隱式攻擊的有8種,同時滿足兩種條件的只有5種方法,這說明其他的方法在檢測蟲洞的功能上有缺陷,并不能完全解決蟲洞問題。定義惡意節點的功能有3種方法不能實現,這3種方法在維護網絡安全方面也存在一定的隱患,如果不能及時定位惡意節點,也就不能及時孤立惡意節點,可能在網絡后面的運行中再次發起蟲洞攻擊。另外Ad Hoc網絡節點的能源,存儲空間往往是有限的,特別是WSN網絡,這就要求網絡節點要盡量減少節點的計算,減少電源的消耗,由圖中可以看出,有4種檢測方法需要大量的計算,或存儲空間,這在資源有限的Ad Hoc網絡中是個巨大的挑戰。最后一個指標反映了網絡具體部署的費用問題,如果需要額外的硬件需求,也就代表了網絡的部署費用上升,性價比下降,這對于該檢測方法在實際中的使用是不利的。

縱觀10種蟲洞檢測方法,沒有一種完全滿足各項比較指標,可以看出如果追求網絡的高安全性,可以忍受部署費用的提高,建議使用第1或第2種方法。基于地理位置和基于同步時鐘的方法可以簡單便捷地檢測蟲洞攻擊并定位惡意節點位置,而且節點的資源消耗最小。如果網絡節點的能源充足,而且具有較強的計算能力和存儲空間,可以使用基于統計分析的方法,這種方法不需要較高的部署費用,而且對原網絡協議的改動也較小,算法簡單,易于實現,缺點是不能完全適用于所有的網絡協議。基于監聽與信賴的方法雖然對硬件有一定的要求(需要網絡節點支持混雜模式),而且對節點的電源要求較高,如果能滿足上述要求,這種方法在一定環境下也可以有很好的表現。最后一種DelPHI方法,雖然不能定位惡意節點,而且惡意節點按照特定規則移動的情況下,檢測方法實效,但是在節點位置固定的網絡中,不失為一種經濟有效的方案。
4 結論
經過上述對各種檢測方法的對比,可以看出沒有十全十美的方法。筆者認為要達到最好的檢測效果,應該將蟲洞檢測算法和數據加密、身份認證、加載特殊硬件模塊等方法結合起來,綜合各種方法,使Ad Hoc網絡應該形成一套整體的安全方案,這樣才能從容面對蟲洞攻擊及以后出現的各種安全問題,使Ad Hoc網絡成為健壯的、高效的、安全的網絡。
參考文獻:
[1]Y.Yu,R.Govindan,D.Estrin,\"Geographical and energy aware routing:A recursive data dissemination protocol for wireless sensor networks,\" University of California at Los Angeles Computer Science Department,Tech.Rep.UCLA/CSD-TR-01-0023,May 2001.
[2]X Wang,J Wong,An End-to-end Detection of Wormhole Attack in Wireless Ad-hoc Networks,31st Annual International Computer Software and Applications Conference(C0MPSAC 2007).
[3]HU Y C,PERRIG A,JOHNSON D B. Packet Leashes:A defense against wormhole attacks in wireless networks[A].The 22nd Annual Joint Conference of t he IEEE Computer and Communications Societies[C].San Francisco:Kluwer Academic Publishers,2003. 197621 986.
[4]A.Pirzada,C. McDonald,Circumventing sinkholes and wormholes in wireless sensor networks,in:International Conference on Wireless Ad Hoc Networks (IWWAN),2005.
[5]J.Zhen and S.Srinivas.Preventing replay attacks for secure routing in ad hoc networks.Proc.of 2nd Ad Hoc Networks Wireless (ADHOCNOW' 03), pp.140-150,2003.
[6]S.Capkun,L.Buttyan,and J. Hubaux. Sector: Secure Tracking of Node Encounters in Multi–hop Wireless Networks.Proc.Of the ACM Workshop on Security of Ad Hoc and Sensor Networks( SASN 2003),2003,21-32.
[7]Lijun Qian,Ning Song,Xiangfang Li;Detecting and Locating Wormhole Attacks in Wireless Ad Hoc Networks through Statistical Analysis of Multi-pathIEEE Communications Society/WCNC,2005.
[8]Levente Buttyán, László Dóra, István Vajda: Statistical Wormhole Detection in Sensor Networks. Second European Workshop on Security and Privacy in Ad Hoc and Sensor Networks (ESAS 2005) Visegrád, Hungary, July 13-14, 2005: 128-141
[9]Lazos L, Poovendran R. SeRLoc: Secure range-independent localization for wireless sensor networks. In: Jakobsson M,Perrig A, eds. Proc. of the 2004 ACM Workshop on Wireless Security. New York: ACM Press, 2004,21-30.
[10]Hon Sun Chiu King-Shan Lui, DelPHI: Wormhole Detection Mechanism for Ad Hoc Wireless Networks, International Symposium on Wireless Pervasive Computing ISWPC,2006.
收稿日期:2008-02-15
基金項目:基金頒發部門,江蘇省自然科學基金;項目名稱,嵌入式無線傳感網絡在礦區數據采集中的應用研究(編號:BK-2006039),基金申請人,王潛平。
作者簡介:周龍飛(1977-),男(漢),江蘇徐州人,中國礦業大學計算機學院碩士生,研究方向為計算機網絡安全;王潛平(1964-),男(漢),江蘇徐州人,中國礦業大學計算機學院博士生導師,教授,研究方向為CSCW,數據庫技術,無線傳感器網絡。