摘 要:當無線傳感器網絡(WSN)遭受分布式拒絕服務(DDoS)攻擊時,攻擊者會傳送大量攻擊數據包到受害主機,使其迅速消耗資源而無法正常運作,最終造成網絡癱瘓。為了檢測針對資源有限的WSN的DDoS攻擊,基于傳統網絡的概率包標記算法提出一個改進概率包標記算法,使其適應在WSN中檢測DDoS攻擊。改進的算法減少了重建攻擊路徑所需的攻擊數據包,從而減少WSN的資源消耗,彌補了WSN資源有限的缺陷。
關鍵詞:分布式拒絕服務攻擊; 攻擊路徑; 包概率標記; 收斂時間
中圖分類號:TP309.08文獻標志碼:A
文章編號:1001-3695(2010)06-2324-03
doi:10.3969/j.issn.10013695.2010.06.094
Extending probabilistic packet marking algorithm to detect DDoS in WSN
LIU Gang, LIU Junli, YAN Junsong, JIAO Xintao
(Dept. of Computer Engineering, Nanhai College, South China Normal University, Foshan Guangdong 528225, China)
Abstract:Traditional probabilistic packet marking algorithm can not fit to detect DDoS in wireless sensor networks (WSNs), because WSNs have resource constraints. A DDoS attack may result in network disasters due to the energy exhaustion of the nodes along the attacking path. This paper presented a new extended probabilistic packet marking algorithm to detect DDoS in WSNs which enabled to reconstruct attacking paths with fewer collected packets under multiple attacks. The effectiveness of the proposed algorithm was demonstrated in the simulate studies.
Key words:DDoS; attacking path; packet probabilistic marking; convergence time
0 引言
隨著無線傳感器網絡[1](WSN)在諸多領域中的應用,針對WSN網絡的通信帶寬資源非常有限的特點而進行的分布式拒絕服務(DDoS)攻擊將會使用大量攻擊數據包強制占用網絡帶寬,極易消耗其資源,造成網絡癱瘓。如何檢測此類攻擊將是WSN網絡安全的一大挑戰。
在IP網絡中,針對DDoS攻擊最有效的檢測方法是IP回溯方法[2],就是將攻擊者直接回溯出來,然后停止此攻擊源。在IP回溯方法中又以基于邊界取樣的概率包標記算法的應用最為廣泛。但傳統的概率包標記算法需要在收集到大量攻擊數據包后,方能重建攻擊路徑。如果直接將此算法應用到WSN中,就會導致在找出攻擊者之前,網絡已因消耗大量資源而癱瘓。因此,本文提出改進概率包標記方法,使其適合于針對WSN網絡的DDoS攻擊檢測。該方法的主要思想是利用分類節點標記概率的不同,減少重建攻擊路線所需攻擊數據包的數目,即減少算法收斂時間。
本文介紹了概率包標記方法的相關研究,詳細闡述如何改進概率包標記方法以適應針對WSN的DDoS攻擊,通過具體的實例對算法進行性能測試。
1 概率包標記算法
概率包標記算法最早是由Savage等人[2,3]提出,其主要思想是在路由器中以相同的概率對數據包進行標記,標記內容包括攻擊路徑上兩個相鄰標記路由器的地址信息,即攻擊路徑圖上的邊以及邊到攻擊目標的距離,然后被攻擊者根據收到的標記信息恢復攻擊路徑。Snoeren等人[4]提出的高級包標記算法和認證包標記算法是在傳統概率包算法基礎上改進的。該算法使用了IP地址的hash函數值之一來標記數據包,大大減少了標記的信息,提高了處理的速度,縮短了算法的收斂時間,支持分布式部署。
為了能在資源有限的網絡中應用概率包標記算法,許多研究已提出了多種基于傳統概率包算法的改進算法。在已有的相關研究工作中,Jin等人[5]提出一種應用于自主網的基于區域取樣的概率包標記算法,此算法將網絡分割成幾個區數據報域,每個區數據報域有ID,當節點決定要標記攻擊數據包時,不是將自己的地址寫入,而是將自己所在的區數據報域的ID寫入。因為在自主網中,節點是會移動的,如果只存儲區數據報域ID,變更信息會較少,不過該方法所建構出的路徑有可能不正確。Thing等人[6]提出另一個基于ICMP的概率包標記算法,它也需要額外的攻擊數據包傳送。Sy等人[7]提出了利用攻擊數據包的廣播特性,將攻擊數據包記錄在多維度搜尋過濾器(bloom filter),并利用信息交換將攻擊路徑找出,但由于此算法的過濾器設計較為復雜,并不適合于DDoS的路徑回溯。
2 改進概率包標記算法
因為WSN的資源有限,如果需要在WSN上附加防御DDoS攻擊的方法,要求消耗的資源必須較少。如果能夠減少重建攻擊路線所需的攻擊數據包數目,概率包標記算法能夠適用于WSN。
2.1 設計思路
為了減少對WSN網絡資源的消耗,本文首先將WSN的節點分為多個組,并為每一組定義一個ID,每個組包括一個組頭節點(cluster head),其他的為一般節點。在此網絡中,各傳感器節點的信息不是直接傳送給匯聚傳感器節點,而是傳給每個集群里的組頭節點,組頭節點再將信息傳送到匯聚節點。組頭節點將信息傳送到匯聚節點的方法如圖1所示。一般節點將收集到的攻擊數據包傳送到組頭節點,如果該組頭節點無法直接把攻擊數據包傳給匯聚傳感器節點,可以經由其他組頭節點將攻擊數據包傳給指定的與匯聚傳感器節點通信的其他組頭節點,再由它傳給匯聚節點。這樣的網絡結構將大大減少重建攻擊路徑所需的數據包數量。
攻擊者由S節點將攻擊數據包傳出,S節點位于ID為Z1的組中,所以當攻擊數據包傳到Z1后,就直接傳到下一個組頭節點 Z2,再經由Z3、Z4最后傳到匯聚傳感器節點。
概率包標記算法是利用概率標記攻擊數據包,當攻擊數據包到達受害主機時,將這些標記過的攻擊數據包收集起來,利用標記過的信息重建攻擊路線。通常DDoS攻擊會有許多攻擊者同時發動,假如每條攻擊路線都不相交,概率包標記是可以將攻擊者找出的;但是如果攻擊路徑相交時,概率包標記可能沒辦法發揮其功能了。因此,在改進概率包標記方法中,除了已有的start、end和distance三個數據報域之外,又增加了root、first和next三個數據報域。三個數據報域的含義如下:root表示攻擊數據包所經過的第一個組頭節點的地址;first表示攻擊數據包被標記后,經過的第一個組頭節點的地址;next表示first的下一個組頭節點地址。
通過上述改進,改善了概率包標記算法的檢測能力,因為組頭節點的功能類似于橋,攻擊數據包必須經過組頭節點。本算法利用root數據報域,可以很容易地將多個攻擊路線區別開來。如圖1中有兩條攻擊路線,分別為path1和path2,如果兩個攻擊同時發動,根據改進前的概率包標記算法是無法辨別這兩條路徑的,因為這兩條攻擊路徑有相交,在Z2執行包標記時就會清除之前傳感器節點所標記的信息。而改進后的算法是可以分辨它們的,因為path1的root數據報域為Z1,而path2為Z2,憑借root數據報域就可以將這兩條攻擊路線辨別出來。通過first和next這兩個數據報域可以快速找出攻擊者所在的組,然后封鎖此組傳出的攻擊數據包。舉例說明,如匯聚節點接收到兩個攻擊數據包,其包含(S,A,7,Z1,Z1,Z2)與(X,Y,5,Z2,Z2,Z3)的標記信息,憑root數據報域便可判別攻擊源是來自于兩個不同ID的組。
2.2 算法實現
上面討論了在攻擊數據包中增加哪六個數據報域,下面重點討論這六個數據報域應該如何加入攻擊數據包中。IEEE 802.15.4(ZigBee)的數據包格式包括五個數據報域,分別為幀控制(frame control)、序列號(sequence number)、地址域(addressing fields)、數據負載(data payload)和FCS。除了數據負載這個數據報域外,其余的數據報域均無法更改,所以本文提出的改進算法在數據負載字段加入所需的數據報域,如圖2所示。PAN ID用于辨別每個節點,在某節點標記的攻擊數據包會將該節點的 PAN ID寫入相應的數據報域,因為PAN ID數據報域是使用2 Byte記錄該節點地址,每個數據報域同樣需要2 Byte的空間,所以在數據負載這個數據報域中劃分出12 Byte的空間供改進方法使用。
解決了添加的數據報域的存在位置,改進算法還要解決如何為每個節點配置標記概率。本文提出的節點配置概率的思想是:當組頭節點選出時,組頭節點會存儲有整個組(cluster)的信息,所以一般節點的概率由組頭節點配置,而組頭節點的概率則由匯聚傳感器節點配置。
在概率包標記中,每個節點被標記的概率是相同的,而在改進方法中,配置給一般節點和組頭節點不同的概率,其包標記概率分別如下:
a)一般節點。假設在組中有i個節點,一般節點的包標記概率為PN=1/[i/2]。
b)組頭節點。假設網絡上有C組,則組頭節點的包標記概率為PC=1/[C+K]。其中K為正整數。
一般節點和組頭節點標記攻擊數據包的算法分別如下:
Marking procedure at normal node N:
for each packet ω
Let x be a random number from [0…1)
if (x< pi)
place 0 into all fields except for Root
write R into ω.start
else
if ω.distance=0
write R into ω.end
if ω.First=0
increment ω.distance
Marking procedure at cluster head C:
for each packet ω
performs modified edge sampling
if ω.Root=0
write R into ω.Root
break
if ω.First=0
write R into ω.First
break
if ω.Next=0
write R into ω.Next
break
現舉例說明如何利用改進方法中的六個數據報域標記攻擊數據包:在圖1中path1的一個一般節點A決定要標記經過的攻擊數據包,數據報域會被填充為(A,0,0,0,0,0),當此攻擊數據包經過下一個節點B,如果B不標記,數據報域變為(A,B,1,0,0,0),其后每個一般節點都不標記;經過Z1時,數據報域被填充為(A,B,3,Z1,Z1,0),經過Z2會變成(A,B,3,Z1,Z1,Z2);如果B決定標記,會將之前的標記覆蓋掉,數據報域則會填充為(B.0,0,0,0,0)。
經過實例分析,證明了利用改進算法,可以找出攻擊數據包所經過的組,然后,可以通過封鎖發動攻擊的組,達到阻止DDoS攻擊的目的。本文著重于尋找整條路徑,保證使用該方法找出的路徑是正確的,并且可以分辨出多條攻擊路徑。
3 算法性能測試
為了測試改進算法的性能,本文將使用改進算法與傳統概率包標記算法作比較。比較的參數是網絡中組的數目或每個組中節點的數目和重建攻擊路徑所需數據報數目(數目少,表示收斂時間少,算法性能就好)。實驗環境是選用網絡模擬工具NS及WSN路由協議Rumor。因為DDoS攻擊均在短時間內完成,所以在實驗過程中,假設網絡拓撲結構不改變,即假設短時間內攻擊數據包從某一點到匯聚傳感器節點的路徑沒有改變,利用同一條路徑,比較兩個算法的攻擊路徑所需數據報的數目,即路徑重建過程的收斂時間。
1)比較組的數目與重建路徑所需數據報的數目關系
假設網絡上節點的數目是固定的,設為100,并假設每個組中節點數目相同。在網絡中組的數目分別為1、2、3、4 和5的情況下,比較傳統概率包標記算法和改進算法。在此假設一般節點的包標記概率和組頭節點概率相等。以網絡中組數目10為例,那么每個組中的節點數目為10,假設每個攻擊者經過一半的節點,即5個,再經由組頭節點將攻擊數據包傳送到匯聚傳感器節點,則此路徑經過14個節點,一般節點的標記概率為1/10,組頭節點的概率為1/(5+k),k是常數,在此假設為10。組的數目與重建路徑所需的攻擊數據包即收斂時間的關系如表1所示。
表1 組數目與路徑重建所需數據報關系
算法
組數目
12345
傳統算法620250190170100
改進算法40021017514085
2)比較組密度(每個組中節點的數目)與收斂時間的關系
假設組的數目固定,設為10,每個組的節點數目相同,當在密度分別為10、20、30、40和50的情況下進行比較。在此假設一般節點的標記概率和改進算法的包標記概率相等。以密度50為例,一般節點的概率為1/25,組頭節點的概率為1/(5+k),k是常數,亦設為10,所得的密度數值與重建路徑所需的攻擊數據包即收斂時間的關系如表2所示。
表2 密度數值與路徑重建所需包關系
算法
組內節點密度
1020304050
傳統算法90160280400430
改進算法60100120210250
通過表2,可以得出以下結論:a)當組的數目越大,所需的攻擊數據包數目就越少;b)當組內節點密度越大,所需的攻擊數據包數目越大;c)改進算法的路徑重建過程所需數據報的數量小于傳統算法,即收斂時間較小。因此,本文提出的改進算法比較適合于檢測WSN網絡的DDoS攻擊。
4 結束語
如何回溯DDoS攻擊者,是研究WSN網絡安全的一大挑戰:首先必須克服WSN的資源有限問題。本文基于IP網絡上原有的概率包標記算法,提出一個改進的概率包標記算法。實例表明,此算法可以利用其多增加的三個數據報域,輕松地辨別出來自不同組的多個攻擊者,減少了IP回溯的路徑重建時間。需要說明的是,此算法雖然性能大大優于傳統算法,但也會造成網絡的負擔,因為當攻擊數據包必須要依靠被封鎖組的組頭節點傳送,此時,如果需要封鎖此組,必須重新尋找路徑。下一步的工作將集中在保持WSN順利工作的基礎上,進一步減少對WSN網的資源負擔。
參考文獻:
[1]AKYILDIZ I,SU W,CAYIRCI E. A survey on sensor network[J]. IEEE Communications Magazines, 2002, 40(8):102-114.
[2]SAVAGE S, WETHERALL D, KARLIN A.Practical network support for IP traceback[C]//Procof ACM SIGCOMM. 2000:295-306.
[3]胡長俊. 概率包標記技術綜述[J]. 通信技術,2009, 42(2): 267-268.
[4]SNOEREN A C,PARTRIDGE C,SANZEZ L A. Hashbased IP trace back[C]//Proc of ACM SIGCOMM. 2001:3-14.
[5]JIN X, ZHANG Y, PAN Y,et al.ZSBT: a novel algorithm for tracing DoS Attackers in MANETS[J]. EURASIP Journal on Wireless Communications and Networking, 2006(2):82.
[6]THING V, LEE H, SLOMAN M, et al. Enhanced ICMP traceback with cumulative path[C]//Proc of the 61st IEEE Vehicular Technology Conference. 2005:2415-2419.
[7]SY D, BAO Lichun. CAPTRA: coordinated packet trace back [C]//Proc of the 5th International Conference on Information Processing in Sensor Networks. 2006:152-159.