劉學
(菏澤學院,山東菏澤274015)
移動Ad Hoc網絡是一種移動節點通過無線連接組成的自治系統。每個節點不僅是一個終端節點,而且具有路由功能以轉發分組。這些節點可以自由的移動,自組織成一個網絡。移動Ad Hoc網絡不需要任何的固定基礎設施(如:基站),因此可以對移動設備進行快速靈活的組網。應用的領域主要有:軍事、緊急事務、個人電子設備聯網以及無線網絡會議或無線教室等。在有線網絡中,也存在泛洪攻擊。通常稱它為SYN泛洪攻擊。它的工作機制是一個攻擊者向被攻擊者發送大量的TCP連接請求,這些連接請求有假源地址。每一次請求都會讓目標主機在有限的資源池中分配數據結構。一旦目標主機的資源被耗盡,任何TCP連接將不會被建立,因此,它將拒絕其它合法的訪問。SYN泛洪攻擊的目的是耗盡被攻擊主機的資源,本文描述了防止Ad Hoc泛洪攻擊的方法。
有關Ad Hoc網絡安全大致可分為三類:密鑰管理、路由安全以及入侵檢測。Capkun,Buttyan和Hubaux提出了一種完全自組織的公鑰管理系統,這個系統可以被用來支持Ad Hoc網絡路由協議的安全。Hass首次提出了利用閾值密碼學來安全的向多個節點分發認證私鑰,由于早期的Ad Hoc網絡路由協議缺乏路由安全的討論與研究,如今路由安全以被人們所關注。因此許多包含安全服務的Ad Hoc網絡路由協議被提出。如有:SRP、Ariadne、ARAN、SEAD。但這些安全協議都不能夠阻止Ad Hoc泛洪攻擊。因為攻擊者是一個內部的可信節點,它具有合法的密鑰。
在AODV中,路徑發現完全是按需進行的。當一個源節點需要發送數據包到一個目的節點時,如果這個源節點沒有到達目的節點的路由,它會給它的相鄰廣播一個路由請求(RREQ)分組。每個節點維持一個單調增加的序列號,以確保路由無環路并且及時取代緩存中陳舊的路由條目。源節點將一個已知的到達目標節點的序列號包含到RREQ分組中。接收到RREQ分組的中間節點會檢查它的路由表項。如果它有一條到達目標節點的路由條目,并且這個路由條目中的序列號比RREQ分組中的序列號要大,那么它會單播發送一條路由應答RREP分組給它的相鄰節點(這個相鄰節點是剛才給它發送RREQ分組的那個)。否則,它會建立一條反向路徑,并且再次廣播RREQ分組。從一個節點重復接收到的RREQ分組在默認情況下是被丟棄的。
在Ad Hoc泛洪攻擊中,攻擊節點會耗盡網絡資源。首先,攻擊節點和網絡中的其它節點都建立路徑。接著,攻擊者通過這些路徑向其它節點發送大量的無用的數據分組。這些過量的無用數據會阻塞網絡耗盡其它節點正常通信的帶寬。目的節點只能忙于接收攻擊者發送過來的無用分組而無法正常工作。耗盡可用的網絡通信帶寬,使其它節點彼此由于網絡的擁塞而無法正常的通信。另一方面,它們又有各自的特點。RREQ泛洪攻擊會造成節點中路由表的溢出,使節點不能接收新的RREQ分組。在數據泛洪攻擊中,接收攻擊數據包的過程將會消耗節點的大量的資源。如果攻擊者聯合使用這兩種攻擊手段,那么會造成網絡的崩潰。
這一部分將給出一套防止Ad Hoc泛洪攻擊的機制:相鄰抑制和路徑切斷。這兩種方法能夠分別阻止以上兩種泛洪攻擊。
據鏈路層提供了基本的可靠傳輸的功能,但沒有任何的數據鏈路安全服務,如:WEP協議。而且,假設鏈路是雙向的,大多數訪問控制協議都需要這個條件,特別是在協議中啟用了RTS/CTS對話。另外,還需要MAC地址到IP地址的一對一的映射關系。最后,無線信道的廣播特性使一個節點的傳輸能被它的所有相鄰節點都收到。每一臺主機能有唯一的ID,而且,它的ID在Ad Hoc網絡中不允許被修改。
使用相鄰抑制的方法可以阻止RREQ泛洪攻擊。移動Ad Hoc網絡是多跳的無線網絡,節點通過它的相鄰來發送和接收數據分組。如果它周圍的相鄰都拒絕轉發它的數據分組,那么這個節點就無法和Ad Hoc網絡中的其它節點進行通信。這個節點會被其它節點孤立出來。
依據Ad Hoc網絡的特點,本文設計一種相鄰抑制的方法。在AODV路由協議中,節點在處理RREQ分組是根據先進先出(FIFO)的原則。如果前面的RREQ分組沒有被處理,后面的RREQ分組將不會被接收。正是由于這個原則,攻擊者發出的大量的RREQ分組會首先到達,從而阻止后到達的RREQ分組。本文改變FIFO作為優先級的準則,使用過程優先級和閾值的方法來阻止RREQ泛洪攻擊。節點為他的相鄰節點建立了一個過程優先級和閾值節點的優先級與相鄰節點發送RREQ的頻率成反比。
當攻擊者發起數據泛洪攻擊時,相鄰節點很難識別,因為相鄰節點不能在網絡層上判斷分組中的數據是否有用。當目的節點接收到無用的數據分組后,它會在應用層進行判斷。下面介紹利用路徑切斷方法來阻止數據泛洪攻擊。當攻擊者發起數據泛洪攻擊時,這個攻擊者首先建立一條到達被攻擊節點的路徑。當被攻擊節點發現是一個數據泛洪攻擊時,它將切斷與攻擊者的路徑,阻止攻擊者繼續進行數據泛洪攻擊。被攻擊節點向攻擊者發送RRER消息。這個消息會指出被攻擊這的IP地址是不可達的。中間節點會沿路經轉發這個消息,并將自己路由表中到達被攻擊節點的路由刪除。RRER消息可能會攔截一些與數據泛洪攻擊無關的路徑,但是這些路徑以后會被發送消息的節點修復。由于泛洪攻擊的路徑被切斷,所以數據泛洪攻擊也就此終止。
本文介紹了一種針對Ad Hoc網絡中按需路由協議的泛洪攻擊。攻擊者向Ad Hoc網絡發動拒絕服務攻擊,攻擊使用了按需路由協議的Ad Hoc網絡,即使是安全按需路由協議也會遭受攻擊。本文設計的防止泛洪攻擊的方法來阻止這種攻擊,能夠有效的防止Ad Hoc網絡的泛洪攻擊。
[1]Haining Wang,Danlu Zhang,and Kang G.Shin,Detecting SYN Flooding Attacks[C].New York:IEEE INFOCOM’2002.
[2]Karthik Lakshminarayanan,Daniel Adkins,Adrian Perrig,Ion Stoica,Taming IP packet flooding attacks[J].ComputerCommunication Review,2004,34(1):45-50.