摘 要:提出了基于馬爾可夫過程的信任和信譽模型,在節點間構建信任關系,利用節點間信任與信譽信息的交互對惡意節點進行識別,阻斷對惡意消息的轉發傳播,從而增強抵御DDoS攻擊的效能。仿真實驗結果表明,提出的模型能有效地隔離惡意節點的消息數,提高網絡抵御這種基于應用層的DDoS攻擊的容忍度。
關鍵詞:對等網;Gnutella協議;分布式拒絕服務攻擊;可信和信譽
中圖分類號:TP309文獻標志碼:A
文章編號:1001-3695(2009)06-2116-03
doi:10.3969/j.issn.1001-3695.2009.06.035
Defending P2P from flooding-based DDoS
GENG Ji,MA Xin-xin
(School of Computer Science Engineering, University of Science Technology of China, Chengdu 610054, China)
Abstract:This paper proposed a trust and reputation model based on Markov process,which constructed trust relationship among peers.In this model, well-behavior peers possessed ability to identify bad-behavior peers to intermit transmission of malicious message through the interaction of trust and reputation information established among peers, so that the networks could resist on the DDoS attack. Simulation result shows that the model of provides an efficient isolation on malicious message amount and promotion on tolerance of the DDoS attack resisting on the application layer.
Key words:P2P;Gnutella protocol;DDoS;trust and reputation
0 引言
Gnutella網絡是一種非結構化的對等網絡,該網絡是基于應用層上的自組織網絡。網絡中節點基于同一興趣加入網絡并共同維護網絡的運行。節點間彼此可信,共享資源內容真實可靠;在對共享資源查找、定位和下載過程中運用Query消息的查詢過程進行泛洪的路由查找,共享資源的下載傳輸基于HTTP協議[1]。通過Gnutella的Query/Query Hit查詢機制和HTTP協議的下載機制的優勢實現網絡中共享資源的快速查找和定位。但在開放的Internet網絡中首先各節點彼此間多數是不熟悉,甚至是陌生的,網絡中每一節點對其行為產生的后果沒有任何的追究責任,且任何節點出于私心而盡可能最大化地利用網絡資源但自身并不向對等網絡貢獻任何的資源。節點間實際上并沒有明確的信任關系,導致彼此共享資源的不可靠[2]。
Gnutella協議的Query/Query Hit消息查詢沒有對消息內容的確認機制,節點對收到的查詢消息進行本地查找和繼續向網絡其他節點進行轉發,使得基于Query/Query Hit的消息查詢過程成為DDoS攻擊的平臺[3]。正常情況下只有當節點存儲有匹配Query消息的資源時, 節點才能夠回復QueryHit消息。但惡意節點會對Query消息和回應的QueryHit消息包內容進行竄改,偽造大量不存在的節點標志和目的不可達信息,而Query/Query Hit消息交換由于沒有采用消息完整性保護機制, 缺乏對回應節點回傳的QueryHit消息進行驗證的手段或策略,對回應節點也沒有可信確認機制, 從而無法保證QueryHit 消息中的IP 地址和端口號就是回復該Query-Hit消息節點的IP地址和端口號。事實上,惡意節點可以對收到的每一個Query 消息回復QueryHit 消息,并將其欲攻擊的節點或虛構的IP 地址和端口號填入QueryHit 消息中。而網絡中一些無知的良性行為的節點會在不知曉的情況下幫助這些惡意節點在網絡中對更改后的消息進行轉發,這種由于網絡中各節點通信匿名特性,使惡意節點利用匿名通信的便利條件主動響應所有查詢請求并返回偽造的信息內容。正常節點因為沒有察覺偽造資源的惡意內容而進行共享并轉發;查詢消息的響應消息沿著查詢消息的逆路徑經過每一個鄰居節點轉發回發起查詢的節點。惡意節點就是利用這種查詢機制向網絡中發送大量無用或有害的消息,促使DDoS攻擊發生。此外,為加大DDoS攻擊的效果,惡意節點利用Gnutella 網絡中查詢消息以泛洪方式具有的冪定律(power law)和小世界現象(small world)[4~6],盡量使自己處于網絡服務較集中的地方, 對轉發的查詢消息進行竄改從而使得大量的查詢節點向潛在的受攻擊節點發送連接請求, 導致受攻擊節點耗費大量的連接資源和帶寬。
第三,惡意節點利用Gnutella網絡中節點共享資源的下載采用HTTP協議特性進一步擴大DDoS攻擊的危害性[7]。更糟糕的是,惡意節點還可以借助對等網中這個應用網絡平臺,利用各節點產生的DDoS攻擊流,將該攻擊流引向對等網外的受害主機。而基于這種應用層的DDoS攻擊的過程中, 除了消息包的傳輸方向被重新定向外,所有的消息包均合法。其危害極大且隱藏性極強,很難檢測。
與已有基于網絡層的DDoS攻擊相比,基于Gnutella的DDoS攻擊是一種基于應用層的泛洪攻擊[8,9]。該攻擊無須事先控制一批傀儡主機,只需利用查詢定位的泛洪路由轉發消息的機制就能為惡意消息的擴散傳播提供絕佳的手段,因為對等網絡基于泛洪的資源查找機制給基于P2P應用層的DDoS攻擊的設計和操作帶來便捷且無須特別的資源。攻擊節點只需加入對等系統,然后向網絡中發送大量無用的查詢信息。這些無用的查詢消息會很快經過轉發而被復制的量非常大從而迅速消耗對等網絡的資源。攻擊過程中所有的請求消息都是合法的請求,造成采用已有針對網絡層的DDoS檢測技術和防范手段針對基于Gnutella的DDoS攻擊的不適用[10]。
本文研究Gntella網絡中基于應用層的DDoS攻擊,并針對查詢消息機制中DDoS攻擊的發生是由于節點不可信,共享資源內容不可靠的分析結果,提出在節點間建立信任和信譽模型的方法來防范這種攻擊。通過節點間的這種信任關系的建立,節點在轉發一條來自鄰居節點的查詢消息時會對消息轉發的節點或消息的來源節點進行可信判斷;當消息來自不可信的節點,節點會停止對該消息的轉發從而對惡意節點進行隔離,將惡意消息的傳播控制在局部范圍,通過各節點的協作達到防范DDoS攻擊的目的。
1 節點信任與信譽模型
根據馬爾可夫過程基于節點已有行為結果預測其將來可能行為的概率事件行為特性,本文提出了基于馬爾可夫鏈的信任和信譽模型。通過將節點可信值和推薦值進行關聯計算得出節點的評估值對節點的信任等級進行劃分以識別惡意節點。下面進一步描述基于馬爾可夫評估計算模型。設T表示所有可信節點的信譽值集合,R表示這些可信節點對某一節點推薦值集合。集合T和R的笛卡爾集體構成一個可信評估矩陣。該矩陣值為某一被評估節點未來行為可信的概率值,同時根據上述設定得出基于馬爾可夫可信計算公式如下:
E=T×R=[Ti1,i2,…,Tik,…,Tin]T×[R1j,R2j,…,Rkj,…,Rnj](1)
其中:i表示提出對某一節點進行評估的節點;j表示待評估的節點;整數集合{1,2,3…,n}表示網絡中除去節點i和j;Tik表示節點k的可信值;Rkj表示節點k對節點j的推薦值。接下來詳細討論如何計算集合T和R中的元素。由于可信值和推薦值分別側重于可信評估的某一方面但可信評估的結果是基于一個具體的數值。為此可信或推薦集合的計算過程用集合X表示,即X=[x0,x1,…,xk,…,xn]。其中xk表示第k步評估過程且計算結果值構成評估集合P,即P=[p1,p2,…,pk,…,pn]。這里假設前N次的評估結果已得出。基于前N步的評估可以預測計算第N+1步的評估值。在具體的計算過程前,將評估準則劃分為四類:
a)若第N步被評估節點的結果是誠實行為且令評估節點滿意,則pn+1=pn+A;
b)若第N步被評估節點的結果是誠實行為且評估節點不完全滿意,則pn+1=pn+B(A>B);
c)若第N步被評估節點的結果是不誠實行為且評估節點對該結果可以容忍,則pn+1=pn-C; d)若第N步被評估節點的結果是不誠實行為且評估節點對該結果不可容忍,則pn+1=pn-D(C 上面四種劃分類中,A、B、C、D被定義為權重系數且均為非負整數。第N+1步評估結果值Xn+1=in+1的產生依賴于前一步,即xn=in而與x0=i0,x1=il,…,xn-1=in-1無關。此時集合{Xn,n≥0}構成一離散狀態的齊次馬爾可夫鏈。 在模型的初始化過程中,假設任一節點在第一次進行交互前其評估值為零,即X0=i0=0。對于權重系數A和B的取值根據評估節點的滿意程度分別取為10和5;而對于C則定義為評估節點對被評估節點不誠實行為的懲罰,其取值為10。若in-rC≥0,(r≥1,r∈Z)同時被評估節點連續發生上述情況c),則in+1值在連續減少直至in+1≤0的情況時,該被評估節點被認為是不可靠的節點且被剔除或者說被P2P網絡隔離。當連續發生上述情況a)或b)則in+1將持續增加但該值的上限為90,即in+1≥90時in+1=90。當被評估節點處于情況d)時,權重值D被指定為30。選擇D為30是基于當in=90的情況下若被評估節點連續發生三次d)類行為通過計算就可以得出該節點為不可信任節點而被隔離。 基于上述A、B、C和D的不同設定值,in的取值范圍[0,90]及有限集合X{xi|xi=5n,0≤n≤18,n∈Z}中的元素代表Xn的可能取值,可以構造出{Xn,n=0}的馬爾可夫鏈的轉移概率矩陣P={pij}。其中P滿足如下條件: Pij=0,i, j∈X;iPij=1,i∈X 而轉移概率矩陣的元素根據上述評估標準劃分為四類: (a)0→5,0 →10 and 5→10,5→15。在該類評估條件下,一旦被評估節點發生上述c)類或d)類行為則會立即被隔離,即被評估節點只能產生a)或b)類行為且都為等概率事件則 p0,5=p0,10=p5,10=p5,15=1/2(2) (b)當i∈{10,15,20,25}時,被評估節點有條件產生評估的c)類行為,且與a)b)類行為的產生為等概率事件則 pi,i-5=pi,i+5=pi,i+10=1/2(3) (c)當i∈{30,35,40,45,…,80}時,被評估節點有條件產生評估的d)類行為,且與a)~c)類為等概率事件則 pi,i-10=pi,i-30=pi,i+5=pi,i+10=1/4(4) (d)當i∈{85,90}時,因為in+1上限值等于90則 p85,55=p85,75=p90,60=p90,80=1/4且 p85,90=p90,90=1/2 根據Kolmogorov-Chapman方程: pij(m+n)=kP(n)ikP(m)kj(5) 因為i∈X,j∈XPij=1并且集合X是一閉集,所以利用以上四類條件即對應的公式可計算pij(n)得公式如下且結果在[0,1]內。 p(n)ij=kpikp(n-1)kj=k∈XPikp(n-1)kj(6) 式中初始條件為p(0)ij=δij=1 i=j0 i≠j′;p(1)ij=pij。 2 仿真實驗 2.1 節點間信任關系建立的仿真實驗 本文仿真實驗是基于PeerSim平臺并在該平臺實現Gnutella0.4網絡協議。查詢消息是以泛洪方式傳遞,且每一個節點都連接一定數量的鄰居節點,由節點發出的查詢消息通過鄰居節點向網絡中擴散,消息的跳數由TTL指定。在仿真實驗中,人為指定所有節點都共享一定數量的文件,并以一定的時間間隔選擇本地不存在的文件向網絡中發出查詢消息,在收到文件查詢消息時,如果本地發現了所查詢的文件則返回一個響應消息;對于惡意節點在收到文件查詢消息時,它會對文件查詢消息進行竄改使查詢的消息在網絡中不停地轉發直至超時。在仿真實驗測試中,本文仿真2 000個節點,每個節點的鄰居節點定為3,TTL等于3。每個節點在一個循環時間內能處理取最大消息數為30,則整個網絡的消息總數為60萬。每個節點偵測其鄰居節點的可信度并建立鄰居節點的可信評估表。為得到惡意節點攻擊網絡的產生破壞力及評估本文提出的節點間信任和信譽模型抵御基于Gnutella協議的應用層DDoS攻擊的容忍度,假設進行仿真實驗中的節點一旦加入系統則始終,不會動態地加入、離開,即構成的網絡是相對靜態的。仿真實驗各參數的設置如表1所示。 2.2 仿真實驗結果分析 圖1為網絡中惡意節點合謀對網絡資源的消耗示意圖。圖中橫坐標為一個循環周期時間內惡意消息數,縱坐標為不同的循環周期時間網絡中惡意節點產生的惡意消息數占整個網絡資源的百分比數。圖中共有五條曲線分別代表惡意節點數占整個網絡節點的比例為20%~60%時對網絡資源的消耗。從圖中可以看出惡意節點產生的惡意消息數曲線呈冪函數分布,并隨惡意節點的增加,對網絡資源的消耗也呈急劇增大趨勢。惡意節點的增加會在極短的循環周期時間內就能使網絡處于資源消耗殆盡的邊緣,如圖中當惡意節數的比例為50%時在不到四個循環周期時間內其合謀產生的惡意消息數占整個網絡可容納的消息數80%以上。這說明利用泛洪的查詢機制惡意節中可以輕意地對網絡發起攻擊,攻擊破壞力極大。網絡本身對此類攻擊沒有任何作為。 圖2為采用本文提出的節點信任和信譽模型評估方法后網絡中惡意節點合謀對網絡資源的消耗示意圖。與圖1類似五條曲線分別代表惡意節點數占整個網絡節點的比例為20%~60%時對網絡資源的消耗。曲線同樣呈冪函數分布。與圖1相比,圖2中的惡意節點合謀對網絡資源的消耗明顯降低,在惡意節點數比例從20%~40%時,惡意節點消息數占整個網絡消息數的10%之內,與圖1相比惡意消息數降低了4~8倍,即使惡意節點數比例為50%~60%時,惡意消息數也降低1倍。實驗仿真數據說明本文提出在節點間建立信任關系來識別惡意節點的方法能有效抵抗基于泛洪DDoS攻擊。圖3采用柱狀示意圖比較了采用節點信任和信譽模型評估方法前后惡意消息數。 3 結束語 基于Gnutella協議的P2P網絡因為其Query/Query Hit消息查詢中沒有對消息內容的確認機制,使該體系結構極易受到DDoS的攻擊并進一步成為危害Internet網絡的攻擊平臺。而已有的防范DDoS攻擊的技術手段無法應用于這種基于應用層、利用泛洪查詢機制的DDoS攻擊。本文針對查詢消息機制中DDoS攻擊的發生是由于節點不可信,共享資源內容不可靠的分析結果,提出了基于馬爾可夫過程的信任和信譽模型。 參考文獻: [1]李曉戈,楊壽保.對等網絡DoS攻擊的防御機制[J].計算機工程,2004,30(2):66-67. [2]樂光學.基于Gnutella協議的P2P網絡中DoS攻擊防御機制[J].微電子學與計算機,2005,12(8):78-85. [3]FEINSTEIN L,SCHNACHENBERG D,BALUPARI R,et al.Statistical approaches to DDoS attack detection and response[C]//Proc of DARPA Information Survivability Conference and Exposition.2003:303-314. [4]MIRKOVIC J,DIETRICH S,DITTRICH D,et al.Internet denial of service:attack and defense mechanisms[S].Upper Saddle River,NJ:Prentice Hall,2004. [5]XIANG Y,LIU Y,LEI W L,et al.Detecting DDoS attack based on network self similarity[J].Intel Communication,2004,15(3):292-295. [6]SIATERLIS C,MAGLARIS V.Detecting incoming and outgoing DDoS attack at the edge using a single set of network characteristics[C]//Proc of the 10th IEEE Symposium on Computers and Communication.Washington DC:IEEE Computer Society,2005:469-475. [7]LIU Yun-hao,WANG Xiao-mei,LI Xiao-chen,et al.Defending P2Ps from overlay flooding-based DDoS[C]//Proc of International Confe-rence on Parallel Processing (ICPP 2007).Washington DC:IEEE Computer Society,2007. [8]NAOUMOV N,ROSS K W.Exploiting P2P systems for DDoS attacks[C]//Proc of International Workshop on Peer-to-Peer Information Management.New York:ACM Press,2006. [9]DASWANI N,GARCIA-MOLINA H.Query-flood DoS attacks in Gnutella[C]//Proc of ACM Computer and Communications Security.New York:ACM Press,2002:181-192. [10]LEE K W,CHARI S,SHAIKH A,et al.Improving the resilience of content distribution networks to large scale distributed denial of service attacks[J].Computer Networks,2007,151(10):2753-2770.