專利名稱:一種P2P網(wǎng)絡(luò)中協(xié)作抵抗覆蓋層DDoS攻擊的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于P2P網(wǎng)絡(luò)安全領(lǐng)域,具體涉及一種P2P網(wǎng)絡(luò)中協(xié)作抵抗覆蓋層DDoS攻 擊的方法。
背景技術(shù):
DDoS (Distributed Denial of Service,分布式拒絕服務(wù))攻擊從DoS攻擊發(fā)展 而來,這種攻擊利用網(wǎng)絡(luò)上已被攻陷的計(jì)算機(jī)作為傀儡機(jī),向某一特定的目標(biāo)計(jì)算機(jī)發(fā)動(dòng) 密集式的“拒絕服務(wù)”攻擊,把目標(biāo)計(jì)算機(jī)的網(wǎng)絡(luò)資源及系統(tǒng)資源耗盡,使之無法向正常請(qǐng) 求的用戶提供服務(wù)。DDoS攻擊僅需消耗攻擊者較少資源,但對(duì)被攻擊者會(huì)產(chǎn)生嚴(yán)重影響,并 且需要較長時(shí)間恢復(fù)。P2P網(wǎng)絡(luò)由于其非中心化和分布式的特性,對(duì)DDoS攻擊有著天然的抵御能力,但 攻擊者也會(huì)利用P2P網(wǎng)絡(luò)的自治性、節(jié)點(diǎn)數(shù)量大的特點(diǎn)來發(fā)起DDoS攻擊。結(jié)構(gòu)化P2P網(wǎng)絡(luò) 除了來自傳統(tǒng)的網(wǎng)絡(luò)層的DDoS攻擊外,還有來自覆蓋層的DDoS攻擊。在沒有中心服務(wù)器 的情況下,結(jié)構(gòu)化P2P網(wǎng)絡(luò)為準(zhǔn)確定位到資源,要求網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都保存局部的資源索 引表和路由表。由于節(jié)點(diǎn)會(huì)頻繁地加入和退出P2P網(wǎng)絡(luò),為使整個(gè)P2P網(wǎng)絡(luò)能正常工作,則 節(jié)點(diǎn)須不斷地更新資源索引表和路由表來準(zhǔn)確反應(yīng)當(dāng)前在線的節(jié)點(diǎn)和資源信息,因此節(jié)點(diǎn) 一般都采用“軟狀態(tài)”來維護(hù)局部資源索引表和路由表。而攻擊者則利用結(jié)構(gòu)化P2P網(wǎng)絡(luò) 的這種轉(zhuǎn)發(fā)查詢特性發(fā)起DDoS攻擊,常見的攻擊類型有(1)基于路由表污染的DDoS攻擊結(jié)構(gòu)化P2P網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都維護(hù)一張路由表,對(duì)網(wǎng)絡(luò)中節(jié)點(diǎn)的加入和退出,路 由表須實(shí)時(shí)更新。攻擊者利用結(jié)構(gòu)化P2P網(wǎng)絡(luò)中DHT (Distributed Hash Table,分布式哈 希表)的特性,可以簡單地發(fā)送一個(gè)節(jié)點(diǎn)加入消息來污染節(jié)點(diǎn)的路由表。該節(jié)點(diǎn)加入消息 包含目標(biāo)節(jié)點(diǎn)IP和虛假的節(jié)點(diǎn)標(biāo)識(shí)符,經(jīng)過節(jié)點(diǎn)間的轉(zhuǎn)發(fā)這個(gè)節(jié)點(diǎn)加入消息會(huì)到達(dá)其鄰 居節(jié)點(diǎn),鄰居節(jié)點(diǎn)會(huì)將該節(jié)點(diǎn)信息加入到自身的路由表中。攻擊者若發(fā)送大量這類包含目 標(biāo)節(jié)點(diǎn)IP和不同的虛假節(jié)點(diǎn)標(biāo)識(shí)符的節(jié)點(diǎn)加入消息,則P2P網(wǎng)絡(luò)中大量節(jié)點(diǎn)的路由表會(huì)遭 到污染,節(jié)點(diǎn)被污染的路由表項(xiàng)都指向同一個(gè)目標(biāo)節(jié)點(diǎn)。于是目標(biāo)節(jié)點(diǎn)有可能收到大量來 自該P(yáng)2P網(wǎng)絡(luò)中不同源節(jié)點(diǎn)的消息,這些消息都是正常的查詢消息或路由消息,當(dāng)目標(biāo)節(jié) 點(diǎn)沒有足夠的資源對(duì)這些消息進(jìn)行處理和響應(yīng)時(shí)便造成拒絕服務(wù)現(xiàn)象。(2)基于資源索引表污染的DDoS攻擊攻擊者偽裝成目標(biāo)節(jié)點(diǎn)發(fā)布虛假的熱門資源擁有消息,存儲(chǔ)該資源索引項(xiàng)的節(jié)點(diǎn) 收到該消息后,將其加入資源索引列表。當(dāng)普通節(jié)點(diǎn)查詢這個(gè)資源時(shí),便會(huì)向目標(biāo)節(jié)點(diǎn)請(qǐng)求 文件,普通節(jié)點(diǎn)首先會(huì)跟目標(biāo)節(jié)點(diǎn)建立一個(gè)TCP連接,在連接建立后,普通節(jié)點(diǎn)會(huì)向目標(biāo)節(jié) 點(diǎn)發(fā)送一個(gè)由P2P協(xié)議規(guī)定的應(yīng)用層消息,請(qǐng)求文件下載。如果目標(biāo)節(jié)點(diǎn)為該P(yáng)2P網(wǎng)絡(luò)中的 一個(gè)節(jié)點(diǎn),但沒有普通節(jié)點(diǎn)所請(qǐng)求的文件,則會(huì)返回沒有所需文件的響應(yīng)消息;如果目標(biāo)節(jié) 點(diǎn)并非該P(yáng)2P網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn),則該節(jié)點(diǎn)不能解析消息的格式,因此不知如何響應(yīng),目標(biāo) 節(jié)點(diǎn)只能丟棄這個(gè)消息并掛起或關(guān)閉TCP連接。如果有大量的節(jié)點(diǎn)向同一個(gè)目標(biāo)節(jié)點(diǎn)發(fā)送這類消息,則會(huì)使目標(biāo)節(jié)點(diǎn)的TCP連接資源耗盡,無法響應(yīng)其他的連接請(qǐng)求,從而造成DDoS 攻擊。(3)基于查詢消息的洪泛攻擊在結(jié)構(gòu)化P2P網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)都負(fù)責(zé)某一范圍內(nèi)的鍵值,對(duì)其他節(jié)點(diǎn)查詢由其 負(fù)責(zé)的鍵值須作出響應(yīng)。若沒有其他節(jié)點(diǎn)需要的鍵值則返回?zé)o法找到的消息給發(fā)起查詢的 節(jié)點(diǎn),若有其他節(jié)點(diǎn)查詢的鍵值則返回這個(gè)鍵值對(duì)應(yīng)的資源信息。這種必須響應(yīng)的查詢特 性可被攻擊者利用,發(fā)起基于查詢消息的洪泛攻擊,即控制大量節(jié)點(diǎn)發(fā)送查詢消息給目標(biāo) 節(jié)點(diǎn),目標(biāo)節(jié)點(diǎn)對(duì)查詢消息必須作出響應(yīng),大量的查詢消息嚴(yán)重消耗了目標(biāo)節(jié)點(diǎn)的處理能 力和帶寬,從而造成DDoS攻擊。通過對(duì)節(jié)點(diǎn)加入消息和資源發(fā)布消息進(jìn)行確認(rèn),可以保護(hù)結(jié)構(gòu)化P2P網(wǎng)絡(luò)中資源 索引列表和路由表的純潔性,從一定程度上預(yù)防因節(jié)點(diǎn)維護(hù)的局部資源索引列表和路由表 遭到污染而被攻擊者利用造成的DDoS攻擊。但若攻擊者配合其他攻擊手段發(fā)起基于查詢 消息的洪泛攻擊時(shí),在現(xiàn)有的技術(shù)下,P2P網(wǎng)絡(luò)中節(jié)點(diǎn)不與其他節(jié)點(diǎn)進(jìn)行合作,只依靠節(jié)點(diǎn) 自身進(jìn)行抵抗或退出網(wǎng)絡(luò)避開攻擊,因此不能進(jìn)行有效抵抗。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)所存在的問題,提出一種在結(jié)構(gòu)化P2P網(wǎng)絡(luò)中依靠 節(jié)點(diǎn)間的協(xié)作來抵抗基于查詢消息的洪泛DDoS攻擊的方法。在給出本發(fā)明技術(shù)方案之前,先對(duì)以下基本概念進(jìn)行說明。檢測(cè)周期At :P2P網(wǎng)絡(luò)中的節(jié)點(diǎn)在一段時(shí)間內(nèi)對(duì)收到的消息進(jìn)行計(jì)數(shù),這樣的一 段時(shí)間稱為一個(gè)檢測(cè)周期,用符號(hào)At表示,At的大小通常由P2P網(wǎng)絡(luò)根據(jù)網(wǎng)絡(luò)延時(shí)確定。攻擊容忍度θ :Ρ2Ρ網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)自身的處理能力確定的一個(gè)值, 這個(gè)值具體是節(jié)點(diǎn)在一個(gè)At內(nèi)能處理的消息數(shù)量的閾值,節(jié)點(diǎn)在一個(gè)At內(nèi)收到的目的 節(jié)點(diǎn)為本節(jié)點(diǎn)的消息數(shù)量超過該閾值時(shí)便認(rèn)為遭受到DDoS攻擊。協(xié)作抵抗容忍度Γ 若節(jié)點(diǎn)遭受到DDoS攻擊時(shí),節(jié)點(diǎn)的協(xié)作抵抗容忍度Γ根據(jù) 本節(jié)點(diǎn)的攻擊容忍度Θ來確定;若節(jié)點(diǎn)收到上一層節(jié)點(diǎn)發(fā)送的協(xié)作抵抗消息須進(jìn)行協(xié)作 攻擊檢測(cè)與抵抗時(shí),節(jié)點(diǎn)的協(xié)作抵抗容忍度Γ根據(jù)上一層節(jié)點(diǎn)發(fā)送的協(xié)作抵抗消息中的 檢測(cè)容忍度Γ ’來確定。檢測(cè)容忍度Γ,:Ρ2Ρ網(wǎng)絡(luò)中的節(jié)點(diǎn)在受到攻擊或收到協(xié)作抵抗消息時(shí),檢測(cè)下一 層節(jié)點(diǎn)中每個(gè)節(jié)點(diǎn)發(fā)送消息的數(shù)量是否超過Γ ’,Γ ’根據(jù)本節(jié)點(diǎn)的協(xié)作抵抗容忍度Γ確定。函數(shù)f(a) :f(a) = e—^Xa/m是為防止造成突發(fā)性誤判,提高檢測(cè)的靈敏度所做 的一個(gè)處理,其中m表示本節(jié)點(diǎn)的下一層節(jié)點(diǎn)個(gè)數(shù),η表示P2P網(wǎng)絡(luò)中的最大節(jié)點(diǎn)個(gè)數(shù),對(duì) 于某個(gè)特定網(wǎng)絡(luò)而言,η是個(gè)常數(shù)。本發(fā)明方法的具體步驟是步驟(1)Ρ2Ρ網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)在一個(gè)At內(nèi)收到的零目的消息數(shù)量超過該節(jié)點(diǎn) 的攻擊容忍度 ,則認(rèn)為該節(jié)點(diǎn)已受到DDoS攻擊,受到DDoS攻擊的節(jié)點(diǎn)記為第O層節(jié)點(diǎn)。 第O層節(jié)點(diǎn)根據(jù)記錄的消息讀取其下一層節(jié)點(diǎn)的信息,第O層節(jié)點(diǎn)將其協(xié)作抵抗容忍度Γ 改變?yōu)槠涔羧萑潭圈ǎ⒃谙乱粋€(gè)At內(nèi)檢測(cè)下一層節(jié)點(diǎn)中各個(gè)節(jié)點(diǎn)發(fā)送的零目的消息個(gè)數(shù)。第i層節(jié)點(diǎn)根據(jù)檢測(cè)結(jié)果,發(fā)送協(xié)作抵抗消息給第i+Ι層中零目的消息發(fā)送數(shù)量超 過檢測(cè)容忍度Γ ’的節(jié)點(diǎn),要求其進(jìn)行協(xié)助檢測(cè)。其中「’ = €(門,1是自然數(shù),此處土 = 0,表示第0層節(jié)點(diǎn)。所述的零目的消息是指以第0層節(jié)點(diǎn)為目的節(jié)點(diǎn)的查詢消息。所述的第i層節(jié)點(diǎn)是指與第0層節(jié)點(diǎn)之間的跳數(shù)為i的節(jié)點(diǎn)。所述的下一層節(jié)點(diǎn)是指消息路由過程中的上一跳節(jié)點(diǎn),即第i層節(jié)點(diǎn)為第i_l層 節(jié)點(diǎn)的下一層節(jié)點(diǎn),第i-Ι層節(jié)點(diǎn)為第i層節(jié)點(diǎn)的上一層節(jié)點(diǎn)。所述的協(xié)作抵抗消息包含兩個(gè)參數(shù)(?!?,χ)。其中χ表示第i層節(jié)點(diǎn)收到的消息 的最大跳數(shù),收到該消息的節(jié)點(diǎn)須在2xAt內(nèi)做出響應(yīng)。步驟⑵收到協(xié)作抵抗消息的節(jié)點(diǎn)讀取消息中的(?!?,χ),并進(jìn)行協(xié)助處理。所述的協(xié)助處理過程具體是a.節(jié)點(diǎn)的協(xié)作容忍度Γ根據(jù)從上一層節(jié)點(diǎn)收到的協(xié)作抵抗消息進(jìn)行改變,即本 節(jié)點(diǎn)的協(xié)作容忍度Γ改變?yōu)樯弦粚庸?jié)點(diǎn)的檢測(cè)容忍度?!?。b.節(jié)點(diǎn)在下一個(gè)At內(nèi)檢測(cè)由下一層節(jié)點(diǎn)發(fā)送的零目的消息個(gè)數(shù)是否超過本節(jié) 點(diǎn)的檢測(cè)容忍度?!?,其中?!?=f(r)。若節(jié)點(diǎn)未檢測(cè)到下一層有零目的消息發(fā)送數(shù)量超過Γ,的節(jié)點(diǎn),則認(rèn)為沒有檢測(cè) 到攻擊,對(duì)收到的協(xié)作抵抗消息不予響應(yīng);若節(jié)點(diǎn)檢測(cè)到下一層節(jié)點(diǎn)發(fā)送的零目的消息數(shù) 量超過Γ ’,則將當(dāng)前最大跳數(shù)X減去1,并發(fā)送包含(Γ ’,X)參數(shù)的協(xié)作抵抗消息給該節(jié) 點(diǎn)的零目的消息發(fā)送數(shù)量超過?!南乱粚庸?jié)點(diǎn)。步驟(3)若第i層節(jié)點(diǎn)在2x At的時(shí)間內(nèi)不做響應(yīng),而第i-Ι層節(jié)點(diǎn)檢測(cè)到來自 第i層節(jié)點(diǎn)的攻擊,則第i_l層節(jié)點(diǎn)會(huì)斷開與第i層節(jié)點(diǎn)的連接或不為第i層節(jié)點(diǎn)提供服務(wù)。通過步驟(1)至步驟(3)這樣的過程不斷地向攻擊源節(jié)點(diǎn)逼近,節(jié)點(diǎn)間協(xié)作地對(duì) 攻擊消息進(jìn)行檢測(cè)和抑制,最終使第0層節(jié)點(diǎn)收到的零目的消息數(shù)量在其攻擊容忍度Θ 內(nèi),從而能對(duì)合法節(jié)點(diǎn)提供正常的服務(wù)。所述的Ρ2Ρ網(wǎng)絡(luò)中的節(jié)點(diǎn)由消息處理單元、攻擊檢測(cè)單元和攻擊協(xié)作抵抗單元組 成。消息處理單元節(jié)點(diǎn)收到一個(gè)消息時(shí),根據(jù)消息類型的不同進(jìn)行相應(yīng)的處理,具體 是1)節(jié)點(diǎn)在收到一個(gè)消息時(shí),消息處理單元首先判斷該消息的類型。2)若該消息是協(xié)作抵抗消息,則將協(xié)作抵抗消息中的參數(shù)(Γ ’,χ)傳遞至攻擊協(xié) 作抵抗單元。3)若該消息是普通的路由消息或查詢消息,則記錄該消息的內(nèi)容、跳數(shù)及下一層 節(jié)點(diǎn),對(duì)于內(nèi)容和源節(jié)點(diǎn)都相同的消息不重復(fù)記錄。對(duì)于目的節(jié)點(diǎn)不同的消息做相應(yīng)的處 理,具體是3-1)若本節(jié)點(diǎn)是該消息的目的節(jié)點(diǎn),則將該消息進(jìn)行響應(yīng)并傳遞至攻擊檢測(cè)單 元;3-2)若本節(jié)點(diǎn)不是該消息的目的節(jié)點(diǎn),則對(duì)收到的消息做跳數(shù)加1的處理并根據(jù) 路由表進(jìn)行轉(zhuǎn)發(fā)。
攻擊檢測(cè)單元節(jié)點(diǎn)在每一個(gè)檢測(cè)周期At內(nèi)檢測(cè)收到的以本節(jié)點(diǎn)為目的節(jié)點(diǎn)的 消息數(shù)量是否超過其攻擊容忍度θ。攻擊檢測(cè)單元若檢測(cè)未遭受DDoS攻擊,則對(duì)這些消息 進(jìn)行正常地響應(yīng),否則通知該節(jié)點(diǎn)的攻擊協(xié)作抵抗單元進(jìn)行抵抗。攻擊協(xié)作抵抗單元節(jié)點(diǎn)收到攻擊檢測(cè)單元的通知或協(xié)作抵抗消息后,攻擊協(xié)作 抵抗單元讀取本節(jié)點(diǎn)的攻擊容忍度Θ或上一層節(jié)點(diǎn)發(fā)送的協(xié)作抵抗消息中的檢測(cè)容忍度 ?!⒆魅缦绿幚?)本節(jié)點(diǎn)的協(xié)作抵抗容忍度Γ改變?yōu)槭盏降膮f(xié)作抵抗消息中的檢測(cè)容忍度Γ, 或本節(jié)點(diǎn)的協(xié)作抵抗容忍度Γ改變?yōu)楸竟?jié)點(diǎn)的攻擊容忍度Θ ;2)在下一個(gè)At內(nèi)檢測(cè)下一層節(jié)點(diǎn)中是否有發(fā)送零目的消息數(shù)量超過本節(jié)點(diǎn)的 檢測(cè)容忍度Γ’的節(jié)點(diǎn),其中r’=f(r)。若節(jié)點(diǎn)未檢測(cè)到下一層節(jié)點(diǎn)中有發(fā)送零目的消 息數(shù)量超過Γ ’的節(jié)點(diǎn),則對(duì)協(xié)作抵抗消息不予響應(yīng);若節(jié)點(diǎn)檢測(cè)到下一層節(jié)點(diǎn)發(fā)送的零 目的消息數(shù)量超過Γ ’,則將當(dāng)前最大跳數(shù)X減去1,并發(fā)送包含(Γ ’χ)參數(shù)的協(xié)作抵抗消 息給該節(jié)點(diǎn)的下一層節(jié)點(diǎn)中發(fā)送的零目的消息數(shù)量超過?!墓?jié)點(diǎn)。本發(fā)明相對(duì)于現(xiàn)有技術(shù)具有以下有益效果Ρ2Ρ網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都進(jìn)行攻擊檢測(cè),若節(jié)點(diǎn)檢測(cè)到自身受到攻擊時(shí),就向下 一層發(fā)起協(xié)作抵抗請(qǐng)求,請(qǐng)求下一層協(xié)助自身進(jìn)行攻擊檢測(cè)與抵抗,通過逐級(jí)的回溯過程 盡可能使靠近攻擊源的節(jié)點(diǎn)能檢測(cè)出攻擊并對(duì)攻擊源進(jìn)行抑制,以此減少受影響的節(jié)點(diǎn)數(shù) 量。如果遭受攻擊的節(jié)點(diǎn)的下一層為攻擊節(jié)點(diǎn),或者下一層節(jié)點(diǎn)在協(xié)助遭受攻擊的節(jié)點(diǎn)進(jìn) 行攻擊檢測(cè)時(shí)未檢測(cè)到攻擊而不予響應(yīng),則受到攻擊的節(jié)點(diǎn)認(rèn)為攻擊來自該節(jié)點(diǎn)而主動(dòng)與 其斷開連接。
圖1為本發(fā)明Ρ2Ρ網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖2為本發(fā)明節(jié)點(diǎn)示意圖;圖3為本發(fā)明Ρ2Ρ網(wǎng)絡(luò)中節(jié)點(diǎn)協(xié)作抵抗DDoS攻擊的流程圖。
具體實(shí)施例方式結(jié)構(gòu)化Ρ2Ρ網(wǎng)絡(luò)如Chord、Pastry、Tapestry、CAN、Kademlia等,以某個(gè)節(jié)點(diǎn)為目的 節(jié)點(diǎn)的消息路由過程都呈現(xiàn)出以該節(jié)點(diǎn)為根節(jié)點(diǎn)的樹形特點(diǎn),隨著消息路由跳數(shù)的增加, 消息將不斷地匯聚,最終到達(dá)該目的節(jié)點(diǎn)。本發(fā)明實(shí)施例并不針對(duì)某一種特定的網(wǎng)絡(luò),對(duì)所 有基于DHT的結(jié)構(gòu)化P2P網(wǎng)絡(luò)都適用。圖1為本發(fā)明的P2P網(wǎng)絡(luò)結(jié)構(gòu)示意圖,該結(jié)構(gòu)化P2P網(wǎng)絡(luò)所允許的最多節(jié)點(diǎn)數(shù)目 為η個(gè),當(dāng)前在線節(jié)點(diǎn)數(shù)量為16個(gè),其中節(jié)點(diǎn)3、14、15發(fā)送大量查詢消息至節(jié)點(diǎn)0。如果節(jié) 點(diǎn)0在一個(gè)Δ t中檢測(cè)到零目的消息數(shù)量超過其攻擊容忍度 ,則認(rèn)為遭受到DDoS攻擊, 記節(jié)點(diǎn)O為第O層節(jié)點(diǎn)。為方便敘述,在實(shí)施例中直接用節(jié)點(diǎn)名稱進(jìn)行敘述,其中節(jié)點(diǎn)1、 節(jié)點(diǎn)2與節(jié)點(diǎn)O只有一跳的距離,為第1層節(jié)點(diǎn);節(jié)點(diǎn)3、4為節(jié)點(diǎn)1的上一跳節(jié)點(diǎn),節(jié)點(diǎn)5、 6、7為節(jié)點(diǎn)2的上一跳節(jié)點(diǎn),節(jié)點(diǎn)3、4、5、6、7與節(jié)點(diǎn)O的距離都是兩跳,為第2層節(jié)點(diǎn);相 應(yīng)的節(jié)點(diǎn)8、9、10、11、12、13、14、15為第3層節(jié)點(diǎn)。圖1中的粗實(shí)線表示攻擊消息的匯聚路 徑,細(xì)實(shí)線則表示正常的查詢和路由消息。
7
圖2為本發(fā)明的節(jié)點(diǎn)示意圖,具體由消息處理單元、攻擊檢測(cè)單元和攻擊協(xié)作抵 抗單元組成。下面以節(jié)點(diǎn)0檢測(cè)到正在遭受來自覆蓋層查詢消息的DDoS攻擊為例,說明節(jié) 點(diǎn)各模塊間的交互過程1)若節(jié)點(diǎn)O收到普通的路由消息或查詢消息,對(duì)目的節(jié)點(diǎn)不是本節(jié)點(diǎn)的消息做跳 數(shù)加1處理并根據(jù)路由表進(jìn)行轉(zhuǎn)發(fā);對(duì)目的節(jié)點(diǎn)是本節(jié)點(diǎn)的消息進(jìn)行正常的響應(yīng)并傳遞至 攻擊檢測(cè)單元。2)節(jié)點(diǎn)O在一個(gè)檢測(cè)周期△ t內(nèi)檢測(cè)到的以本節(jié)點(diǎn)為目的節(jié)點(diǎn)的消息數(shù)量超過了 其攻擊容忍度Θ,則認(rèn)為遭受到DDoS攻擊,通知該節(jié)點(diǎn)的攻擊協(xié)作抵抗單元進(jìn)行抵抗。3)節(jié)點(diǎn)O攻擊協(xié)作抵抗單元收到該節(jié)點(diǎn)攻擊檢測(cè)單元的通知后,讀取本節(jié)點(diǎn)的攻 擊容忍度 并作如下處理3-1)本節(jié)點(diǎn)的協(xié)作抵抗容忍度Γ改變?yōu)楸竟?jié)點(diǎn)的攻擊容忍度θ ;3-2)在下一個(gè)At內(nèi)檢測(cè)由第1層節(jié)點(diǎn)中是否有發(fā)送零目的消息數(shù)量超過檢測(cè)容 忍度?!墓?jié)點(diǎn),其中?!?=f(r);3-3)節(jié)點(diǎn)O的攻擊協(xié)作抵抗單元檢測(cè)到第1層節(jié)點(diǎn)中有發(fā)送零目的消息數(shù)量超過 Γ,的節(jié)點(diǎn),則將當(dāng)前最大跳數(shù)χ減去1,并發(fā)送包含(Γ ’,χ)參數(shù)的協(xié)作抵抗消息給第1 層節(jié)點(diǎn)中發(fā)送零目的消息數(shù)量超過Γ,的節(jié)點(diǎn),第1層中發(fā)送零目的消息數(shù)量超過Γ,的 節(jié)點(diǎn)進(jìn)行協(xié)作攻擊檢測(cè)和抵抗。圖3為本發(fā)明的Ρ2Ρ網(wǎng)絡(luò)中協(xié)作抵抗DDoS攻擊的流程圖。節(jié)點(diǎn)間協(xié)作地抵抗DDoS 攻擊過程中節(jié)點(diǎn)之間的交互是相似的,此處僅以某條攻擊消息匯聚的路徑為例進(jìn)行詳細(xì)說 明,具體過程是a、節(jié)點(diǎn)O在一個(gè)Δ t內(nèi)檢測(cè)到收到的零目的消息數(shù)量超過其攻擊容忍度 ,則節(jié) 點(diǎn)O將其協(xié)作抵抗容忍度Γ變?yōu)槠涔羧萑潭圈ú⒃谙乱粋€(gè)△ t內(nèi)檢測(cè)節(jié)點(diǎn)1、節(jié)點(diǎn)2各 自發(fā)送的零目的消息數(shù)量是否超過檢測(cè)容忍度?!?,其中r’=f(r)。此處,m = 2,故?!?= ,72。b、節(jié)點(diǎn)O檢測(cè)到其下一層節(jié)點(diǎn)中節(jié)點(diǎn)1、節(jié)點(diǎn)2發(fā)送的零目的消息數(shù)量均超過Θ_2/ 72,故發(fā)送協(xié)作抵抗消息( e_2/72,3)給節(jié)點(diǎn)1、節(jié)點(diǎn)2,請(qǐng)求節(jié)點(diǎn)1、節(jié)點(diǎn)2進(jìn)行協(xié)作檢測(cè) 和攻擊抑制,節(jié)點(diǎn)1、節(jié)點(diǎn)2須在6At內(nèi)作出響應(yīng)。C、節(jié)點(diǎn)1在收到節(jié)點(diǎn)O發(fā)送的協(xié)作攻擊抵抗消息后,其攻擊合作抵抗單元讀取節(jié) 點(diǎn)O發(fā)送的檢測(cè)容忍度Γ,并根據(jù)節(jié)點(diǎn)O發(fā)送的檢測(cè)容忍度Γ,對(duì)本節(jié)點(diǎn)的協(xié)作抵抗容忍 度Γ進(jìn)行處理,節(jié)點(diǎn)1的協(xié)作抵抗容忍度Γ為節(jié)點(diǎn)O的檢測(cè)容忍度Γ,,即節(jié)點(diǎn)1的協(xié)作 抵抗容忍度Γ = e_2/72。節(jié)點(diǎn)2在收到節(jié)點(diǎn)O發(fā)送的協(xié)作攻擊抵抗消息后,其攻擊合作抵抗單元讀取節(jié)點(diǎn) O發(fā)送的檢測(cè)容忍度Γ,并根據(jù)節(jié)點(diǎn)O發(fā)送的檢測(cè)容忍度Γ,對(duì)本節(jié)點(diǎn)的協(xié)作抵抗容忍度 Γ進(jìn)行處理,節(jié)點(diǎn)2的協(xié)作抵抗容忍度Γ為節(jié)點(diǎn)O的檢測(cè)容忍度Γ ’,即節(jié)點(diǎn)2的協(xié)作抵 抗容忍度Γ = e_2/n/2。d、節(jié)點(diǎn)1在下一個(gè)Δ t內(nèi)檢測(cè)由節(jié)點(diǎn)3、節(jié)點(diǎn)4各自發(fā)送的零目的消息數(shù)量是否超 過節(jié)點(diǎn)1的檢測(cè)容忍度?!?,其中r,=f(r) = Θ_4/η/4 ;節(jié)點(diǎn)2在下一個(gè)At內(nèi)檢測(cè)由節(jié)點(diǎn)5、節(jié)點(diǎn)6、節(jié)點(diǎn)7各自發(fā)送的零目的消息數(shù)量 是否超過節(jié)點(diǎn)2的檢測(cè)容忍度Γ ’,其中Γ,= f(r) = e_5/n/6。
e、節(jié)點(diǎn)1檢測(cè)得節(jié)點(diǎn)3發(fā)送的零目的消息數(shù)量在一個(gè)Δ t內(nèi)超過θ e_4/n/4,因此 節(jié)點(diǎn)1發(fā)送協(xié)作抵抗消息(Θ_4/η/4,2)給節(jié)點(diǎn)3,要求節(jié)點(diǎn)3在4Δ t內(nèi)做出響應(yīng);節(jié)點(diǎn)2檢測(cè)得節(jié)點(diǎn)7發(fā)送的零目的消息數(shù)量在一個(gè)Δ t內(nèi)超過Θ e_5/76,節(jié)點(diǎn)2發(fā) 送協(xié)助抵抗消息( e_5/n/6,2)給節(jié)點(diǎn)7,要求節(jié)點(diǎn)7在4At內(nèi)做出響應(yīng)。f、節(jié)點(diǎn)3在收到節(jié)點(diǎn)1發(fā)送的協(xié)作攻擊抵抗消息后,其攻擊合作抵抗單元讀取節(jié) 點(diǎn)1發(fā)送的檢測(cè)容忍度Γ,并根據(jù)節(jié)點(diǎn)1發(fā)送的檢測(cè)容忍度Γ,對(duì)本節(jié)點(diǎn)的協(xié)作抵抗容忍 度r進(jìn)行處理,節(jié)點(diǎn)3的協(xié)作抵抗容忍度Γ為節(jié)點(diǎn)1的檢測(cè)容忍度Γ ’,即節(jié)點(diǎn)3協(xié)作抵 抗容忍度Γ = e‘/4。節(jié)點(diǎn)7在收到節(jié)點(diǎn)2發(fā)送的協(xié)作攻擊抵抗消息后,其攻擊合作抵抗單元讀取節(jié)點(diǎn) 2發(fā)送的檢測(cè)容忍度Γ,并根據(jù)節(jié)點(diǎn)2發(fā)送的檢測(cè)容忍度Γ,對(duì)本節(jié)點(diǎn)的協(xié)作抵抗容忍度 Γ進(jìn)行處理,節(jié)點(diǎn)7的協(xié)作抵抗容忍度Γ為節(jié)點(diǎn)2的檢測(cè)容忍度Γ,,即節(jié)點(diǎn)7協(xié)作抵抗 容忍度Γ = θ_5ΛΥ6。g、節(jié)點(diǎn)3在下一個(gè)At內(nèi)檢測(cè)由節(jié)點(diǎn)8、節(jié)點(diǎn)9各自發(fā)送的消息數(shù)量是否超過節(jié)點(diǎn) 3的檢測(cè)容忍度Γ ’,其中Γ,= f(r) = Θ-6/η/8 ;節(jié)點(diǎn)7在下一個(gè)At內(nèi)檢測(cè)由節(jié)點(diǎn)14、節(jié)點(diǎn)15各自發(fā)送的消息數(shù)量是否超過節(jié)點(diǎn) 7的檢測(cè)容忍度?!渲笑?,=f(r) = e_"7l2。h、節(jié)點(diǎn)3未檢測(cè)得節(jié)點(diǎn)8、節(jié)點(diǎn)9發(fā)送消息數(shù)量超過θ e_6AV8,對(duì)節(jié)點(diǎn)1發(fā)送的協(xié) 作抵抗消息不予響應(yīng);節(jié)點(diǎn)7檢測(cè)得節(jié)點(diǎn)14、節(jié)點(diǎn)15發(fā)送消息數(shù)量均超過Θ e_"n/12,節(jié)點(diǎn)7發(fā)送協(xié)作抵 抗消息( e_7/n/12,l)給節(jié)點(diǎn)14、節(jié)點(diǎn)15,要求節(jié)點(diǎn)14、節(jié)點(diǎn)15在2At內(nèi)做出響應(yīng)。i、節(jié)點(diǎn)3對(duì)節(jié)點(diǎn)1發(fā)送的協(xié)作抵抗消息未響應(yīng),節(jié)點(diǎn)1與節(jié)點(diǎn)3斷開連接或不為 節(jié)點(diǎn)3提供服務(wù)。節(jié)點(diǎn)14、節(jié)點(diǎn)15根據(jù)協(xié)作抵抗消息中的x(此處χ = 1)值,可獲知本節(jié)點(diǎn)在節(jié)點(diǎn)0 為根節(jié)點(diǎn)的樹中已是最后一層節(jié)點(diǎn),因此節(jié)點(diǎn)14、節(jié)點(diǎn)15發(fā)送的零目的消息都是由其自身 產(chǎn)生的,它檢測(cè)不到經(jīng)其轉(zhuǎn)發(fā)的零目的消息,因此對(duì)節(jié)點(diǎn)7發(fā)送的協(xié)作抵抗消息不予響應(yīng), 節(jié)點(diǎn)7與節(jié)點(diǎn)14、節(jié)點(diǎn)15斷開連接或不為節(jié)點(diǎn)14、節(jié)點(diǎn)15提供服務(wù)。當(dāng)節(jié)點(diǎn)1與節(jié)點(diǎn)3斷開連接,節(jié)點(diǎn)7與節(jié)點(diǎn)14、節(jié)點(diǎn)15斷開連接后,節(jié)點(diǎn)0受到的 零目的消息數(shù)量會(huì)減少到其攻擊容忍度Θ以下,攻擊得到了抑制。攻擊節(jié)點(diǎn)在被上一層節(jié) 點(diǎn)斷開連接后,根據(jù)Ρ2Ρ網(wǎng)絡(luò)協(xié)議對(duì)網(wǎng)絡(luò)動(dòng)態(tài)性的維護(hù),處于攻擊節(jié)點(diǎn)下一層的正常節(jié)點(diǎn) 會(huì)更新路由表,重新加入網(wǎng)絡(luò)獲取服務(wù)。
9
權(quán)利要求
一種P2P網(wǎng)絡(luò)中協(xié)作抵抗覆蓋層DDoS攻擊的方法,其特征在于該方法包括以下步驟步驟(1)P2P網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)在一個(gè)檢測(cè)周期Δt內(nèi)收到的零目的消息數(shù)量超過該節(jié)點(diǎn)的攻擊容忍度Θ,則認(rèn)為該節(jié)點(diǎn)已受到DDoS攻擊,受到DDoS攻擊的節(jié)點(diǎn)記為第0層節(jié)點(diǎn);第0層節(jié)點(diǎn)根據(jù)記錄的消息讀取其下一層節(jié)點(diǎn)的信息,第0層節(jié)點(diǎn)將其協(xié)作抵抗容忍度Γ改變?yōu)槠涔羧萑潭圈?,并在下一個(gè)Δt內(nèi)檢測(cè)下一層節(jié)點(diǎn)中各個(gè)節(jié)點(diǎn)發(fā)送的零目的消息個(gè)數(shù);第i層節(jié)點(diǎn)根據(jù)檢測(cè)結(jié)果,發(fā)送協(xié)作抵抗消息給第i+1層中零目的消息發(fā)送數(shù)量超過檢測(cè)容忍度Γ’的節(jié)點(diǎn),要求其進(jìn)行協(xié)助檢測(cè),i是自然數(shù);其中?!絜 m/n×Γ/m,m表示本節(jié)點(diǎn)的下一層節(jié)點(diǎn)個(gè)數(shù),n表示P2P網(wǎng)絡(luò)中的最大節(jié)點(diǎn)個(gè)數(shù),n為常數(shù);所述的零目的消息是指以第0層節(jié)點(diǎn)為目的節(jié)點(diǎn)的查詢消息;所述的第i層節(jié)點(diǎn)是指與第0層節(jié)點(diǎn)之間的跳數(shù)為i的節(jié)點(diǎn);所述的下一層節(jié)點(diǎn)是指消息路由過程中的上一跳節(jié)點(diǎn),即第i層節(jié)點(diǎn)為第i 1層節(jié)點(diǎn)的下一層節(jié)點(diǎn),第i 1層節(jié)點(diǎn)為第i層節(jié)點(diǎn)的上一層節(jié)點(diǎn);所述的協(xié)作抵抗消息包含兩個(gè)參數(shù)(Γ’,x);其中x表示第i層節(jié)點(diǎn)收到的消息的最大跳數(shù),收到該消息的節(jié)點(diǎn)須在2xΔt內(nèi)做出響應(yīng);步驟(2)收到協(xié)作抵抗消息的節(jié)點(diǎn)讀取消息中的(Γ’,x),并進(jìn)行協(xié)助處理;所述的協(xié)助處理方法是a.節(jié)點(diǎn)的協(xié)作容忍度Γ根據(jù)從上一層節(jié)點(diǎn)收到的協(xié)作抵抗消息進(jìn)行改變,即本節(jié)點(diǎn)的協(xié)作容忍度Γ改變?yōu)樯弦粚庸?jié)點(diǎn)的檢測(cè)容忍度?!?;b.節(jié)點(diǎn)在下一個(gè)Δt內(nèi)檢測(cè)由下一層節(jié)點(diǎn)發(fā)送的零目的消息個(gè)數(shù)是否超過本節(jié)點(diǎn)的檢測(cè)容忍度Γ’;若節(jié)點(diǎn)未檢測(cè)到下一層有零目的消息發(fā)送數(shù)量超過Γ’的節(jié)點(diǎn),則認(rèn)為沒有檢測(cè)到攻擊,對(duì)收到的協(xié)作抵抗消息不予響應(yīng);若節(jié)點(diǎn)檢測(cè)到下一層節(jié)點(diǎn)發(fā)送的零目的消息數(shù)量超過?!?,則將當(dāng)前最大跳數(shù)x減去1,并發(fā)送包含(?!?,x)參數(shù)的協(xié)作抵抗消息給該節(jié)點(diǎn)的零目的消息發(fā)送數(shù)量超過?!南乱粚庸?jié)點(diǎn);步驟(3)若第i層節(jié)點(diǎn)在2xΔt的時(shí)間內(nèi)不做響應(yīng),而第i 1層節(jié)點(diǎn)檢測(cè)到來自第i層節(jié)點(diǎn)的攻擊,則第i 1層節(jié)點(diǎn)會(huì)斷開與第i層節(jié)點(diǎn)的連接或不為第i層節(jié)點(diǎn)提供服務(wù);通過步驟(1)至步驟(3)這樣的過程不斷地向攻擊源節(jié)點(diǎn)逼近,節(jié)點(diǎn)間協(xié)作地對(duì)攻擊消息進(jìn)行檢測(cè)和抑制,最終使第0層節(jié)點(diǎn)收到的零目的消息數(shù)量在其攻擊容忍度Θ內(nèi),從而能對(duì)合法節(jié)點(diǎn)提供正常的服務(wù);所述的P2P網(wǎng)絡(luò)中的節(jié)點(diǎn)由消息處理單元、攻擊檢測(cè)單元和攻擊協(xié)作抵抗單元組成;消息處理單元節(jié)點(diǎn)收到一個(gè)消息時(shí),根據(jù)消息類型的不同進(jìn)行相應(yīng)的處理,具體方法是1)節(jié)點(diǎn)在收到一個(gè)消息時(shí),消息處理單元首先判斷該消息的類型;2)若該消息是協(xié)作抵抗消息,則將協(xié)作抵抗消息中的參數(shù)(?!?,x)傳遞至攻擊協(xié)作抵抗單元;3)若該消息是普通的路由消息或查詢消息,則記錄該消息的內(nèi)容、跳數(shù)及下一層節(jié)點(diǎn),對(duì)于內(nèi)容和源節(jié)點(diǎn)都相同的消息不重復(fù)記錄,對(duì)于目的節(jié)點(diǎn)不同的消息做相應(yīng)的處理,具體是3 1)若本節(jié)點(diǎn)是該消息的目的節(jié)點(diǎn),則將該消息進(jìn)行響應(yīng)并傳遞至攻擊檢測(cè)單元;3 2)若本節(jié)點(diǎn)不是該消息的目的節(jié)點(diǎn),則對(duì)收到的消息做跳數(shù)加1的處理并根據(jù)路由表進(jìn)行轉(zhuǎn)發(fā);攻擊檢測(cè)單元節(jié)點(diǎn)在每一個(gè)檢測(cè)周期Δt內(nèi)檢測(cè)收到的以本節(jié)點(diǎn)為目的節(jié)點(diǎn)的消息數(shù)量是否超過其攻擊容忍度Θ;攻擊檢測(cè)單元若檢測(cè)未遭受DDoS攻擊,則對(duì)這些消息進(jìn)行正常地響應(yīng),否則通知該節(jié)點(diǎn)的攻擊協(xié)作抵抗單元進(jìn)行抵抗;攻擊協(xié)作抵抗單元節(jié)點(diǎn)收到攻擊檢測(cè)單元的通知或協(xié)作抵抗消息后,攻擊協(xié)作抵抗單元讀取本節(jié)點(diǎn)的攻擊容忍度Θ或上一層節(jié)點(diǎn)發(fā)送的協(xié)作抵抗消息中的檢測(cè)容忍度Γ’,并作如下處理①本節(jié)點(diǎn)的協(xié)作抵抗容忍度Γ改變?yōu)槭盏降膮f(xié)作抵抗消息中的檢測(cè)容忍度?!虮竟?jié)點(diǎn)的協(xié)作抵抗容忍度Γ改變?yōu)楸竟?jié)點(diǎn)的攻擊容忍度Θ;②在下一個(gè)Δt內(nèi)檢測(cè)下一層節(jié)點(diǎn)中是否有發(fā)送零目的消息數(shù)量超過本節(jié)點(diǎn)的檢測(cè)容忍度?!墓?jié)點(diǎn),若節(jié)點(diǎn)未檢測(cè)到下一層節(jié)點(diǎn)中有發(fā)送零目的消息數(shù)量超過?!墓?jié)點(diǎn),則對(duì)協(xié)作抵抗消息不予響應(yīng);若節(jié)點(diǎn)檢測(cè)到下一層節(jié)點(diǎn)發(fā)送的零目的消息數(shù)量超過Γ’,則將當(dāng)前最大跳數(shù)x減去1,并發(fā)送包含(?!?,x)參數(shù)的協(xié)作抵抗消息給該節(jié)點(diǎn)的下一層節(jié)點(diǎn)中發(fā)送的零目的消息數(shù)量超過?!墓?jié)點(diǎn)。
全文摘要
本發(fā)明涉及一種P2P網(wǎng)絡(luò)中協(xié)作抵抗覆蓋層DDoS攻擊的方法。現(xiàn)有的方法抵抗性能差。本發(fā)明方法首先檢測(cè)P2P網(wǎng)絡(luò)中的節(jié)點(diǎn)在檢測(cè)周期內(nèi)收到的零目的消息數(shù)量是否超過該節(jié)點(diǎn)的攻擊容忍度,然后讓收到協(xié)作抵抗消息的節(jié)點(diǎn)讀取消息,并進(jìn)行協(xié)助處理;若第i層節(jié)點(diǎn)在2xΔt的時(shí)間內(nèi)不做響應(yīng),而第i-1層節(jié)點(diǎn)檢測(cè)到來自第i層節(jié)點(diǎn)的攻擊,則該節(jié)點(diǎn)會(huì)斷開與第i層節(jié)點(diǎn)的連接或不為第i層節(jié)點(diǎn)提供服務(wù)。通過上述過程向攻擊源節(jié)點(diǎn)逼近,節(jié)點(diǎn)間協(xié)作地對(duì)攻擊消息進(jìn)行檢測(cè)和抑制,使第0層節(jié)點(diǎn)收到的零目的消息數(shù)量在其攻擊容忍度Θ內(nèi)。本發(fā)明通過逐級(jí)的回溯過程盡可能使靠近攻擊源的節(jié)點(diǎn)能檢測(cè)出攻擊并對(duì)攻擊源進(jìn)行抑制,以此減少受影響的節(jié)點(diǎn)數(shù)量。
文檔編號(hào)H04L29/06GK101895541SQ201010224719
公開日2010年11月24日 申請(qǐng)日期2010年7月9日 優(yōu)先權(quán)日2010年7月9日
發(fā)明者孫小華, 宋革聯(lián), 沈佳峰, 王茂華, 謝磊, 趙帆程, 陳惠芳, 陳煒, 陳高翔 申請(qǐng)人:浙江省公眾信息產(chǎn)業(yè)有限公司;浙江大學(xué)