摘 要: 在分析現(xiàn)有報(bào)文丟棄攻擊檢測(cè)算法的基礎(chǔ)上,提出了一種基于簇首協(xié)作的報(bào)文丟棄攻擊全局感知方案,,利用IDS簇首協(xié)同監(jiān)視節(jié)點(diǎn)報(bào)文收發(fā)狀態(tài),,改進(jìn)現(xiàn)有算法的監(jiān)測(cè)方式和節(jié)點(diǎn)狀態(tài)判定算法。仿真結(jié)果表明,,該算法具有良好的檢測(cè)率和誤檢率,,在規(guī)避網(wǎng)絡(luò)中的惡意節(jié)點(diǎn)以及維護(hù)網(wǎng)絡(luò)正常吞吐量等方面具有較好的性能。
關(guān)鍵詞: 移動(dòng)自組織網(wǎng)絡(luò),;丟棄攻擊,;惡意節(jié)點(diǎn)檢測(cè);入侵檢測(cè)系統(tǒng)
移動(dòng)自組織網(wǎng)絡(luò)MANET(Mobile Ad Hoc Networks)由眾多節(jié)點(diǎn)以自組織的方式組成,,網(wǎng)絡(luò)中不存在中心控制節(jié)點(diǎn),,較遠(yuǎn)距離節(jié)點(diǎn)間以多跳的方式進(jìn)行通信。然而,,在大規(guī)模無(wú)線自組織網(wǎng)絡(luò)中,,部分節(jié)點(diǎn)為了保護(hù)自身較少的資源,可能不轉(zhuǎn)發(fā)其他節(jié)點(diǎn)請(qǐng)求轉(zhuǎn)發(fā)的數(shù)據(jù)包,,產(chǎn)生自私節(jié)點(diǎn)問(wèn)題[1],,特別場(chǎng)景下(如戰(zhàn)爭(zhēng)環(huán)境)合法節(jié)點(diǎn)被攻陷后將成為惡意節(jié)點(diǎn)。
在數(shù)據(jù)報(bào)文傳輸過(guò)程中,,自私節(jié)點(diǎn)和惡意節(jié)點(diǎn)可以故意隨機(jī)丟棄部分需要自身轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文來(lái)對(duì)網(wǎng)絡(luò)通信實(shí)施破壞,,這就是內(nèi)部節(jié)點(diǎn)丟棄報(bào)文攻擊,它導(dǎo)致網(wǎng)絡(luò)吞吐率下降,、報(bào)文重傳率增高,,嚴(yán)重時(shí)會(huì)造成網(wǎng)絡(luò)報(bào)文傳輸無(wú)法進(jìn)行。然而,,由于無(wú)線自組織網(wǎng)絡(luò)中節(jié)點(diǎn)性質(zhì)的不確定性,,現(xiàn)有的適用于Ad Hoc網(wǎng)絡(luò)的路由協(xié)議無(wú)法應(yīng)對(duì)這種在網(wǎng)絡(luò)層發(fā)起的攻擊。報(bào)文丟棄攻擊難以檢測(cè)和防范,,嚴(yán)重影響到了無(wú)線自組織網(wǎng)絡(luò)的通信性能和實(shí)際應(yīng)用,。
目前,,針對(duì)報(bào)文丟棄攻擊的研究多數(shù)集中在基于鄰居節(jié)點(diǎn)監(jiān)測(cè)方法[2]對(duì)現(xiàn)有路由協(xié)議(如DSR)的改進(jìn),希望構(gòu)造一個(gè)安全的路由協(xié)議或模型來(lái)抵抗攻擊,。然而,,鄰居節(jié)點(diǎn)監(jiān)測(cè)算法本身存在一些局限性,此類(lèi)方案增加了MANET網(wǎng)絡(luò)路由協(xié)議的復(fù)雜度,,監(jiān)測(cè)效果卻不理想,。
本文在分析現(xiàn)有解決方案的基礎(chǔ)上,提出了一種基于簇首協(xié)作的報(bào)文丟棄攻擊全局感知算法,,在MANET入侵檢測(cè)系統(tǒng)中利用分簇IDS的簇首節(jié)點(diǎn)協(xié)作進(jìn)行全局監(jiān)測(cè),。該方案將安全檢測(cè)從路由協(xié)議中獨(dú)立出來(lái),由IDS來(lái)實(shí)現(xiàn)報(bào)文丟棄攻擊的檢測(cè),,簡(jiǎn)化了Ad Hoc路由協(xié)議的設(shè)計(jì),,同時(shí)彌補(bǔ)了鄰居節(jié)點(diǎn)監(jiān)測(cè)算法的不足,在報(bào)文丟棄攻擊的檢測(cè)率,、誤報(bào)率和檢測(cè)響應(yīng)速率方面有較好的性能,。
1 鄰居節(jié)點(diǎn)檢測(cè)算法分析
1.1 報(bào)文丟棄攻擊相關(guān)研究
為對(duì)抗內(nèi)部節(jié)點(diǎn)在網(wǎng)絡(luò)層發(fā)起的報(bào)文丟棄攻擊,MARTI S等人提出了Watchdog算法[3],,節(jié)點(diǎn)在混雜模式下工作,,當(dāng)節(jié)點(diǎn)把報(bào)文轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)后,利用無(wú)線信號(hào)暴露在空中的特性來(lái)監(jiān)聽(tīng)下一跳節(jié)點(diǎn)是否繼續(xù)轉(zhuǎn)發(fā)該報(bào)文,。LEE S和CHOI Y采用了類(lèi)似Watchdog的鄰居節(jié)點(diǎn)監(jiān)測(cè)系統(tǒng)(NWS)來(lái)獲取鄰居節(jié)點(diǎn)的報(bào)文狀況,,但是局部管理的方法增加了節(jié)點(diǎn)能量耗費(fèi),降低了網(wǎng)絡(luò)帶寬使用效率,。參考文獻(xiàn)[4]中提出兩種不合作的節(jié)點(diǎn)形式,,并提出用CCS中央控制系統(tǒng)給每個(gè)節(jié)點(diǎn)分配信用值,,如果節(jié)點(diǎn)A為節(jié)點(diǎn)B轉(zhuǎn)發(fā)了到目的節(jié)點(diǎn)D數(shù)據(jù)報(bào),,則D要給A一些信用幣,哪個(gè)節(jié)點(diǎn)用完了信用,,可以向CCS要求補(bǔ)充,。由于每次都是目的節(jié)點(diǎn)支付信用幣,這就為DOS攻擊提供了方便,。參考文獻(xiàn)[5]希望利用有限自動(dòng)機(jī)構(gòu)造自組網(wǎng)的入侵檢測(cè)算法,,此方案能夠監(jiān)測(cè)節(jié)點(diǎn)發(fā)送的報(bào)文,但在如何監(jiān)測(cè)節(jié)點(diǎn)收到的報(bào)文方面沒(méi)有給出有效的解決方法,。
1.2 鄰居節(jié)點(diǎn)監(jiān)測(cè)算法介紹
上述研究大多以鄰居節(jié)點(diǎn)監(jiān)測(cè)算法為基礎(chǔ)對(duì)節(jié)點(diǎn)的收發(fā)報(bào)文情況進(jìn)行監(jiān)聽(tīng),,從而達(dá)到判斷入侵節(jié)點(diǎn)的目的。當(dāng)一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)時(shí),,鄰居監(jiān)測(cè)系統(tǒng)會(huì)確認(rèn)路由的下一跳節(jié)點(diǎn)是否轉(zhuǎn)發(fā)了該報(bào)文,。鄰居監(jiān)測(cè)系統(tǒng)監(jiān)聽(tīng)下一跳節(jié)點(diǎn)采取的行為,,并依此判斷下一跳節(jié)點(diǎn)是否有惡意行為。
如圖1所示,,假設(shè)S到D有通路,,中間節(jié)點(diǎn)為A、B,、C,,節(jié)點(diǎn)A不能直接和C通信,但A可以監(jiān)聽(tīng)到B發(fā)送的報(bào)文,。A可以辨認(rèn)B是否轉(zhuǎn)發(fā)了報(bào)文,。A緩存下剛發(fā)送的數(shù)據(jù)報(bào),和監(jiān)聽(tīng)到的B轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)比較,,看是否一致,。如果一致,表明此數(shù)據(jù)報(bào)已經(jīng)發(fā)送,,A移除緩存的數(shù)據(jù)報(bào),,這一過(guò)程結(jié)束;如果不一致,,表明B有篡改信息的惡意行為,;如果數(shù)據(jù)報(bào)在緩存區(qū)保留的時(shí)間超過(guò)一個(gè)門(mén)限,則認(rèn)為B沒(méi)有正常工作,。對(duì)于后兩種情況,,A會(huì)給這個(gè)沒(méi)有盡責(zé)的節(jié)點(diǎn)記過(guò)。如果B被記過(guò)的次數(shù)超過(guò)一個(gè)門(mén)限值,,A確定此節(jié)點(diǎn)有惡意行為,,它向源節(jié)點(diǎn)S發(fā)送路由出錯(cuò)報(bào)文(RRER)通知B是惡意節(jié)點(diǎn)。在從A回到S節(jié)點(diǎn)過(guò)程中,,路由到的節(jié)點(diǎn)都會(huì)記錄下B是惡意節(jié)點(diǎn),,在以后的路由選擇過(guò)程中會(huì)將B節(jié)點(diǎn)從路由鏈路中排除。
1.3 鄰居節(jié)點(diǎn)監(jiān)測(cè)算法的缺陷
鄰居節(jié)點(diǎn)算法利用無(wú)線網(wǎng)絡(luò)信號(hào)暴露在空間中而且信號(hào)多向傳播的特性來(lái)實(shí)現(xiàn)對(duì)鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)的監(jiān)測(cè),,然而這種方法卻存在以下的局限性:
(1)鄰居監(jiān)測(cè)系統(tǒng)需要每個(gè)節(jié)點(diǎn)監(jiān)督其鄰居節(jié)點(diǎn),,并緩存有用的狀態(tài)信息,要求節(jié)點(diǎn)的存儲(chǔ)和計(jì)算功能得到加強(qiáng),。而且由于每個(gè)節(jié)點(diǎn)均被其所有鄰居節(jié)點(diǎn)監(jiān)視,,導(dǎo)致監(jiān)測(cè)信息存在大量冗余,浪費(fèi)了節(jié)點(diǎn)電池能量和計(jì)算資源,。
(2)節(jié)點(diǎn)A只能孤立地監(jiān)測(cè)其鄰居節(jié)點(diǎn)的轉(zhuǎn)發(fā)報(bào)文狀態(tài),,并根據(jù)自身的監(jiān)測(cè)記錄判斷鄰居節(jié)點(diǎn)B是否有惡意丟包行為,不能綜合B的其他鄰居節(jié)點(diǎn)(如C)對(duì)節(jié)點(diǎn)B的監(jiān)測(cè)結(jié)果,。因此,,這種判斷帶有很大的片面性,,容易得出錯(cuò)誤的監(jiān)測(cè)結(jié)論。
(3)惡意節(jié)點(diǎn)可以把無(wú)辜節(jié)點(diǎn)作為惡意節(jié)點(diǎn)放在RRER數(shù)據(jù)報(bào)中,,發(fā)送給源節(jié)點(diǎn)S,,比如,節(jié)點(diǎn)A可以向S打虛假報(bào)告B沒(méi)有轉(zhuǎn)發(fā)報(bào)文,,使S認(rèn)為B是惡意節(jié)點(diǎn),,這個(gè)問(wèn)題的發(fā)現(xiàn)就需要依賴(lài)消息正常發(fā)送到D,節(jié)點(diǎn)D反饋消息給S,,則S會(huì)認(rèn)為路由是正常的,。如果在消息給B傳遞后未能到達(dá)目的節(jié)點(diǎn)D,或者D的反饋消息沒(méi)有正常到達(dá)A,,則節(jié)點(diǎn)B就會(huì)被當(dāng)作惡意節(jié)點(diǎn),,從而造成誤報(bào),本文稱(chēng)這種攻擊為虛假丟報(bào)文丟棄攻擊,。
2 報(bào)文丟棄攻擊全局感知方案
2.1 分簇IDS
移動(dòng)自組網(wǎng)的組網(wǎng)特點(diǎn)決定了相應(yīng)的入侵檢測(cè)系統(tǒng)必須要采取分簇架構(gòu),。分簇結(jié)構(gòu)IDS典型層次如圖2所示,整個(gè)MANET系統(tǒng)以簇為單位分成多IDS簇,,每個(gè)簇選出簇頭,,IDS功能模塊按需要置于簇頭或簇成員節(jié)點(diǎn)上。
在鄰居節(jié)點(diǎn)檢測(cè)算法中,,每個(gè)節(jié)點(diǎn)都監(jiān)測(cè)其鄰居節(jié)點(diǎn)的行為,,產(chǎn)生大量冗余監(jiān)測(cè)信息,耗費(fèi)了節(jié)點(diǎn)資源,。本文提出基于簇首的監(jiān)測(cè)模式,,即整個(gè)網(wǎng)絡(luò)劃分為簇,每個(gè)區(qū)域選出一個(gè)簇頭作為監(jiān)視節(jié)點(diǎn),,負(fù)責(zé)整個(gè)區(qū)域的入侵檢測(cè),。該簇頭收集整個(gè)區(qū)域內(nèi)節(jié)點(diǎn)的行為信息,并按檢測(cè)算法進(jìn)行分析,,確定入侵行為,。IDS簇首節(jié)點(diǎn)周期性地廣播告示報(bào)文,以維持簇首監(jiān)測(cè)節(jié)點(diǎn)的地位,。簇首節(jié)點(diǎn)服務(wù)時(shí)間到了后,就重新啟動(dòng)一個(gè)新的選舉過(guò)程,。為了保證公平和隨機(jī)性,,防止惡意節(jié)點(diǎn)一直占據(jù)簇首位置,發(fā)動(dòng)虛假報(bào)文丟棄攻擊,,IDS分簇算法要求上一分簇周期的簇首節(jié)點(diǎn)將不能參加下一周期簇首節(jié)點(diǎn)的選舉,,除非整個(gè)區(qū)域只有一個(gè)節(jié)點(diǎn)存在,。
2.2 簇首節(jié)點(diǎn)協(xié)作實(shí)現(xiàn)監(jiān)測(cè)節(jié)點(diǎn)報(bào)文收發(fā)狀態(tài)
不同于傳統(tǒng)有線網(wǎng)絡(luò)中的IDS,MANET中的簇首節(jié)點(diǎn)并不能像在有線網(wǎng)絡(luò)中那樣監(jiān)測(cè)到節(jié)點(diǎn)的報(bào)文收發(fā)狀態(tài),。由于無(wú)線網(wǎng)絡(luò)的傳播特性,,分簇結(jié)構(gòu)IDS中的簇首節(jié)點(diǎn)只能監(jiān)測(cè)到其簇成員節(jié)點(diǎn)發(fā)送的報(bào)文,而對(duì)于簇成員接收到的數(shù)據(jù)包只能部分監(jiān)測(cè)到,,因此,,在應(yīng)對(duì)報(bào)文丟棄攻擊之類(lèi)的被動(dòng)攻擊時(shí)顯得無(wú)能為力。圖2中,,節(jié)點(diǎn)C,、E為簇首,節(jié)點(diǎn)A,、S為C的簇成員,,節(jié)點(diǎn)B、D為E的簇成員,。簇首節(jié)點(diǎn)E只能監(jiān)測(cè)到節(jié)點(diǎn)B發(fā)送了數(shù)據(jù)包,,如果節(jié)點(diǎn)A轉(zhuǎn)發(fā)給B一個(gè)數(shù)據(jù)包,并要求B轉(zhuǎn)發(fā)給D,,如果節(jié)點(diǎn)B此時(shí)發(fā)動(dòng)報(bào)文丟棄攻擊,,這時(shí),簇首節(jié)點(diǎn)E并不能監(jiān)測(cè)到B接收了這樣一個(gè)數(shù)據(jù)包,,因此,,并不能發(fā)現(xiàn)B丟棄了應(yīng)轉(zhuǎn)發(fā)給節(jié)點(diǎn)D的數(shù)據(jù)包。
為了解決這個(gè)缺陷,,本文提出了基于簇首協(xié)作監(jiān)測(cè)的方案,,利用各簇首節(jié)點(diǎn)間相互通信協(xié)作檢測(cè)的方法實(shí)現(xiàn)對(duì)報(bào)文丟棄攻擊的檢測(cè)。圖2中,,雖然節(jié)點(diǎn)E不能夠監(jiān)測(cè)到B應(yīng)該轉(zhuǎn)發(fā)一個(gè)數(shù)據(jù)包,,但節(jié)點(diǎn)A在給B轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí),節(jié)點(diǎn)A的簇首節(jié)點(diǎn)C能夠監(jiān)測(cè)到節(jié)點(diǎn)A給節(jié)點(diǎn)B轉(zhuǎn)發(fā)了數(shù)據(jù)包,,并通過(guò)查詢數(shù)據(jù)包中下一跳路由信息得知B接收了這個(gè)數(shù)據(jù)報(bào)并應(yīng)該轉(zhuǎn)發(fā)該數(shù)據(jù)包給D,,如果E和C進(jìn)行通信,交換彼此監(jiān)測(cè)信息,,節(jié)點(diǎn)B的簇首節(jié)點(diǎn)E就能夠借助和C交換的消息來(lái)全面監(jiān)測(cè)節(jié)點(diǎn)B應(yīng)發(fā)的數(shù)據(jù)報(bào)和已發(fā)數(shù)據(jù)報(bào)狀態(tài),。下面利用這一方法給出詳細(xì)解決方案。
2.3 基于簇首協(xié)作的報(bào)文丟棄攻擊全局感知方案
首先,,為了監(jiān)測(cè)節(jié)點(diǎn)收發(fā)報(bào)文狀態(tài),,各IDS簇首節(jié)點(diǎn)需要為網(wǎng)絡(luò)中所有節(jié)點(diǎn)維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu),記錄各節(jié)點(diǎn)收到報(bào)文的數(shù)量和發(fā)送報(bào)文的數(shù)量,。數(shù)據(jù)結(jié)構(gòu)定義偽碼表示如下:
typedef struct {Long Receive,; Long Send,;} Record;其中,,Record表示此數(shù)據(jù)結(jié)構(gòu),,下文簡(jiǎn)記為Recd;Send表示監(jiān)聽(tīng)到節(jié)點(diǎn)轉(zhuǎn)發(fā)一個(gè)數(shù)據(jù)報(bào)文,;Receive表示根據(jù)監(jiān)聽(tīng)到的報(bào)文中的路由信息,,該數(shù)據(jù)報(bào)文下一跳節(jié)點(diǎn)應(yīng)該轉(zhuǎn)發(fā)此數(shù)據(jù)報(bào)文,其值為負(fù),,下文簡(jiǎn)記為Rece,。
假設(shè)S到D有通路,中間節(jié)點(diǎn)為A,、B,,此時(shí)節(jié)點(diǎn)S轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文到A,因?yàn)楣?jié)點(diǎn)S處于簇首C的簇內(nèi),,C能夠監(jiān)聽(tīng)到節(jié)點(diǎn)S轉(zhuǎn)發(fā)了一個(gè)數(shù)據(jù)報(bào)文,,同時(shí),從該數(shù)據(jù)報(bào)文路由信處表中查得一下跳地址為節(jié)點(diǎn)A,,則執(zhí)行操作S.Recd.Send+1和A.Recd.Rece-1,,表示節(jié)點(diǎn)A需要轉(zhuǎn)發(fā)一個(gè)數(shù)據(jù)報(bào)文。如果節(jié)點(diǎn)A也正常轉(zhuǎn)發(fā)了該數(shù)據(jù)報(bào)文,,其簇首節(jié)點(diǎn)C會(huì)監(jiān)聽(tīng)到該數(shù)據(jù)報(bào)文,,執(zhí)行操作A.Recd.Send+1和B.Recd.Rece-1。節(jié)點(diǎn)B并不在簇首C的監(jiān)控范圍內(nèi),,但如果節(jié)點(diǎn)B正常轉(zhuǎn)發(fā)此數(shù)據(jù)報(bào)文到節(jié)點(diǎn)D,,則其簇首節(jié)點(diǎn)E會(huì)監(jiān)聽(tīng)到該數(shù)據(jù)報(bào)文并執(zhí)行操作B.Recd.Send+1和C.Recd.Rece-1。
在MANET網(wǎng)絡(luò)中,,各簇首節(jié)點(diǎn)在監(jiān)測(cè)周期結(jié)束時(shí)多播Hello消息,,彼此交換監(jiān)測(cè)的簇內(nèi)節(jié)點(diǎn)報(bào)文轉(zhuǎn)發(fā)狀態(tài)表,其中,,服務(wù)周期的長(zhǎng)短由系統(tǒng)根據(jù)需要設(shè)定,。通過(guò)檢測(cè)算法就可以對(duì)網(wǎng)絡(luò)中是否存在報(bào)文攻擊及惡意節(jié)點(diǎn)號(hào)做出檢測(cè)。
2.4 報(bào)文丟棄攻擊全局感知算法詳細(xì)實(shí)現(xiàn)
設(shè)網(wǎng)絡(luò)中共有m個(gè)IDS簇頭,,分別記為H1,、H2、…,、Hm,。則經(jīng)過(guò)一個(gè)Hello周期交換后,節(jié)點(diǎn)i應(yīng)發(fā)送數(shù)據(jù)包數(shù)為-■Xk.I.Recd.Rece,,已發(fā)送的報(bào)文總數(shù)為-■Xk.I.Recd.Rece,。則節(jié)點(diǎn)i的報(bào)文轉(zhuǎn)發(fā)率可以表示為:
2.5 惡意丟棄報(bào)文節(jié)點(diǎn)判定
本方案采用狄克遜準(zhǔn)則對(duì)惡意節(jié)點(diǎn)進(jìn)行判定。狄克遜準(zhǔn)則是通過(guò)極差比判定和剔除異常數(shù)據(jù),。與一般比較簡(jiǎn)單的極差方法不同,,該準(zhǔn)則為了提高判斷效率,對(duì)不同的實(shí)驗(yàn)量測(cè)定數(shù)應(yīng)用不同的極差比進(jìn)行計(jì)算,。該準(zhǔn)則認(rèn)為異常數(shù)據(jù)應(yīng)該是最大數(shù)據(jù)和最小數(shù)據(jù),,因此其基本方法是將數(shù)據(jù)按大小排隊(duì),檢驗(yàn)最大數(shù)據(jù)和最小數(shù)據(jù)是否是異常數(shù)據(jù),。
依式(4)分別計(jì)算各節(jié)點(diǎn)的Status值,,從小到大排列為Status(1),≤Status(2),,……≤Status(n),,因?yàn)閬G包率大的節(jié)點(diǎn)才有可能是惡意節(jié)點(diǎn),所以這里舍棄最小值,,僅取最大值,,應(yīng)用狄克遜準(zhǔn)則進(jìn)行節(jié)點(diǎn)類(lèi)型進(jìn)行判定。如果f0>f(n,,α)就可以判定該值所對(duì)應(yīng)節(jié)點(diǎn)為可疑節(jié)點(diǎn),。f(n,α)可以查表獲得,,其中n是節(jié)點(diǎn)個(gè)數(shù),,α為檢驗(yàn)水平,根據(jù)檢測(cè)精度需要可以取0.01或是0.05,。fo的計(jì)算如下:
為防止惡意簇首節(jié)點(diǎn)發(fā)送虛假報(bào)文丟棄通告對(duì)正常節(jié)點(diǎn)進(jìn)行攻擊,,節(jié)點(diǎn)i連續(xù)在兩個(gè)系統(tǒng)監(jiān)測(cè)周期內(nèi)都被判定為可疑節(jié)點(diǎn)后,系統(tǒng)即判定該節(jié)點(diǎn)為惡意節(jié)點(diǎn),,發(fā)出告警并通過(guò)Hello消息廣播將該節(jié)點(diǎn)隔離出網(wǎng)絡(luò)后,,重新進(jìn)行報(bào)文丟棄惡意節(jié)點(diǎn)檢測(cè)。
如果簇首節(jié)點(diǎn)j在自己的監(jiān)測(cè)周期內(nèi)發(fā)動(dòng)虛假報(bào)文丟棄攻擊,,使正常節(jié)點(diǎn)i在該監(jiān)測(cè)周期內(nèi)被判定為可疑節(jié)點(diǎn),,但下一監(jiān)測(cè)周期中,由于更改了IDS簇頭,,節(jié)點(diǎn)i將不再被判定為可疑節(jié)點(diǎn),,則系統(tǒng)記錄節(jié)點(diǎn)j為可疑節(jié)點(diǎn),認(rèn)為j在自己的監(jiān)測(cè)周期內(nèi)可能發(fā)動(dòng)了虛假報(bào)文丟棄攻擊,,如果在節(jié)點(diǎn)j再次當(dāng)選為IDS簇首周期內(nèi),,再次有發(fā)送虛假報(bào)文丟棄攻擊嫌疑,則系統(tǒng)認(rèn)為節(jié)點(diǎn)j為惡意節(jié)點(diǎn),發(fā)出告警并通過(guò)Hello消息廣播將該節(jié)點(diǎn)隔離出網(wǎng)絡(luò),。
為便于算法實(shí)現(xiàn),,需要定義節(jié)點(diǎn)狀態(tài)數(shù)據(jù)結(jié)構(gòu):
tepydef struct{
Bool Drop;//上一監(jiān)測(cè)周期節(jié)點(diǎn)狀態(tài)判定結(jié)果
Bool LastDrop,;//上一監(jiān)測(cè)周期節(jié)點(diǎn)狀態(tài)判定結(jié)果
Bool Cheat,;//簇首節(jié)點(diǎn)虛假報(bào)文丟棄攻擊嫌疑
}Node;
算法偽碼表示如下:當(dāng)系統(tǒng)一個(gè)監(jiān)測(cè)周期結(jié)束后,,對(duì)每個(gè)節(jié)點(diǎn)執(zhí)行如下算法,,設(shè)節(jié)點(diǎn)i的上一周期IDS簇首節(jié)點(diǎn)為j。
while(true)//系統(tǒng)按周期循環(huán)監(jiān)測(cè)
{
if (node.Drop)//被判定為可疑報(bào)文丟棄節(jié)點(diǎn)
if(node.LastDrop)//上一周期也是可疑結(jié)點(diǎn)
{Alarm(node),;//報(bào)警并隔離節(jié)點(diǎn),,
next;
}//進(jìn)入下一周期
else node.LastDrop = true,;//記錄node為可疑節(jié)點(diǎn)
else//node未被判定為可疑節(jié)點(diǎn)
if(i.LastDrop)//上一周期是可疑節(jié)點(diǎn)
if(j.Cheat)//如果j已是可疑節(jié)點(diǎn)
{Alarm(j),;//報(bào)警并隔離節(jié)點(diǎn)j,
netxt,;
}//進(jìn)入下一周期
else
{ j.Cheat = true,;//記錄j可疑節(jié)點(diǎn)
node.LastDrop = false;//節(jié)點(diǎn)node取消懷疑
}
}
3 實(shí)驗(yàn)與性能分析
本文使用Qualnet[6]作為模擬仿真實(shí)驗(yàn)平臺(tái),。在2 000×2 000的區(qū)域內(nèi)隨機(jī)布置100個(gè)節(jié)點(diǎn),。仿真時(shí)間為1 000 s,節(jié)點(diǎn)使用Random Waypoint移動(dòng)模型,,以0~ 20 m/s的速度運(yùn)動(dòng),。通信模型采用CBR(Continuous Bit Rat)流,CBR流大小為512 B,。每秒鐘發(fā)10個(gè)數(shù)據(jù)包,, 從源節(jié)點(diǎn)到目的節(jié)點(diǎn)有不間斷的數(shù)據(jù)包發(fā)送,網(wǎng)絡(luò)層采用AODV路由協(xié)議,,實(shí)驗(yàn)中采用不同數(shù)量的惡意節(jié)點(diǎn)發(fā)動(dòng)報(bào)文丟棄攻擊和虛假報(bào)文丟棄攻擊,。影響仿真結(jié)果的因素很多,主要是環(huán)境的設(shè)置,,如節(jié)點(diǎn)間發(fā)報(bào)的速率,、節(jié)點(diǎn)移動(dòng)速度、IDS簇首監(jiān)測(cè)周期大小,、節(jié)點(diǎn)活動(dòng)的范圍,。
評(píng)價(jià)算法性能的主要指標(biāo)是惡意節(jié)點(diǎn)的檢測(cè)率和惡意節(jié)點(diǎn)的誤檢率。檢測(cè)率是指被檢測(cè)出來(lái)的惡意節(jié)點(diǎn)個(gè)數(shù)占網(wǎng)絡(luò)中實(shí)際的全部惡意節(jié)點(diǎn)個(gè)數(shù)的比例,。誤檢率是指正常節(jié)點(diǎn)被誤檢為惡意節(jié)點(diǎn)的個(gè)數(shù)占整個(gè)網(wǎng)絡(luò)中正常節(jié)點(diǎn)的比例,。對(duì)檢測(cè)率和誤檢率各做10次實(shí)驗(yàn),,然后取平均值。
圖4表示了不同惡意節(jié)點(diǎn)數(shù)量下,,全局感知算法的檢測(cè)率,。無(wú)論是否存在虛假報(bào)文丟棄攻擊,算法對(duì)惡意節(jié)點(diǎn)的檢測(cè)率均隨著惡意節(jié)點(diǎn)在網(wǎng)絡(luò)中所占比例的增加有所下降,,因?yàn)閻阂夤?jié)點(diǎn)的增加導(dǎo)致了網(wǎng)絡(luò)中節(jié)點(diǎn)報(bào)文轉(zhuǎn)發(fā)率的異常數(shù)據(jù)增多,,干擾了統(tǒng)計(jì)分析過(guò)程,。圖5表示了不同惡意節(jié)點(diǎn)數(shù)量下,,全局感知算法對(duì)惡意節(jié)點(diǎn)的誤測(cè)率。從圖5可以看出,,無(wú)論是否存在虛假報(bào)文丟棄攻擊,,算法的誤檢率都較低,雖然隨惡意節(jié)點(diǎn)數(shù)量的增大而有小幅上升,,但最高不超過(guò)3%,。
實(shí)驗(yàn)表明,本文算法的惡意節(jié)點(diǎn)檢測(cè)率和誤檢率性能良好,。在惡意節(jié)點(diǎn)所占比例較低的情況下,,檢測(cè)率接近100%,誤檢率接近0%,。隨著惡意節(jié)點(diǎn)所占比例的提高和惡意節(jié)點(diǎn)發(fā)送虛假的鄰居節(jié)點(diǎn)報(bào)文轉(zhuǎn)發(fā)率信息,,惡意節(jié)點(diǎn)的檢測(cè)率有所下降,但仍保持在90%以上,;誤檢率有所上升,,但仍保持在3%范圍內(nèi)。
惡意簇首節(jié)點(diǎn)發(fā)送虛假的簇內(nèi)節(jié)點(diǎn),,節(jié)點(diǎn)報(bào)文轉(zhuǎn)發(fā)率信息對(duì)檢測(cè)率造成了一定的影響,,這主要是由于實(shí)驗(yàn)時(shí)指定的惡意節(jié)點(diǎn)并不一定會(huì)被選舉為簇首。本算法對(duì)于發(fā)送虛假報(bào)文丟棄攻擊,,需要在節(jié)點(diǎn)兩次當(dāng)選為監(jiān)測(cè)簇首才做出判定,,但這并不會(huì)影響網(wǎng)絡(luò)的性能。因?yàn)樗惴ㄊ腔诖亟Y(jié)構(gòu)的,,惡意節(jié)點(diǎn)只有連續(xù)兩次當(dāng)選簇首才能對(duì)一個(gè)正常節(jié)點(diǎn)發(fā)動(dòng)虛假報(bào)文誣陷攻擊,,而算法在成簇階段已經(jīng)阻止了此類(lèi)攻擊發(fā)生,所以節(jié)點(diǎn)無(wú)法發(fā)動(dòng)虛假報(bào)文丟棄攻擊,,因此表現(xiàn)為檢測(cè)率降低,。在虛假報(bào)文丟棄攻擊惡意節(jié)點(diǎn)比例較高的情況下,檢測(cè)率平均降低了2%左右,。
本文分析了現(xiàn)有依據(jù)鄰居節(jié)點(diǎn)檢測(cè)算法對(duì)報(bào)文丟棄攻擊和虛假報(bào)文丟棄攻擊進(jìn)行檢測(cè)算法存在的不足,,在此基礎(chǔ)上,設(shè)計(jì)了一種基于簇首協(xié)作的報(bào)文丟棄攻擊全局感知算法。仿真實(shí)驗(yàn)表明,,該算法通過(guò)對(duì)報(bào)文丟棄攻擊節(jié)點(diǎn)進(jìn)行全局監(jiān)測(cè),,減輕了網(wǎng)絡(luò)各節(jié)點(diǎn)資源和網(wǎng)絡(luò)帶寬的消耗;利用狄克遜準(zhǔn)則進(jìn)行惡意節(jié)點(diǎn)判定,,提高了報(bào)文丟棄攻擊的檢測(cè)精確度,;同時(shí),由于使用了基于簇首的監(jiān)測(cè)方式,,惡意節(jié)點(diǎn)在作為簇成員的時(shí)候無(wú)法發(fā)動(dòng)虛假報(bào)文丟棄攻擊,,很大程度上抑制了虛擬報(bào)文丟棄攻擊在網(wǎng)絡(luò)中發(fā)生的頻率。由于算法基于全局監(jiān)測(cè)周期進(jìn)行消息交換,,在周期結(jié)束的時(shí)候進(jìn)行惡意節(jié)點(diǎn)的檢測(cè),,因此,在提高入侵檢測(cè)響應(yīng)速率和改進(jìn)Hello消息傳播方式節(jié)省網(wǎng)絡(luò)帶寬方面需要進(jìn)一步優(yōu)化,。
參考文獻(xiàn)
[1] PAUL K,, WESTHOFF D. Context aware detection of selfish Nodes in DSR based Ad hoc networks[C]. IEEE Global Telecommunications Conference, 2002: 178-182.
[2] LEE S,, CHOI Y. A resilient packet-forwarding scheme against maliciously packet-dropping nodes in sensor networks[C]. Proceedings of the 4th ACM Workshop on Security of Ad Hoc and Sensor Networks (SASN’06). Alexandria,, USA, 2006:59-70.
[3] MARTI S,, GIULI T,, LAI K, et al. Mitigating routing misbehavior in mobile Ad Hoc networks[C]. Proceedings of the 6th International Conference on Mobile Computing and Networking (Mobicom’00). Boston,, USA,, 2000: 255-265.
[4] ZHONG S, CHEN J,, YANG Y R. Sprite: a simple cheat-proof credit-Based system for mobile ad hoc networks[C]. INFOCOM 2003,, twenty Second Annual Joint Conference of the IEEE Computer and Communications. San Francisco, CA,, USA,, April, 2003:1987-1997.
[5] 王芳,,易平,,吳越,等.基于規(guī)范的移動(dòng)Ad Hoc網(wǎng)絡(luò)分布式入侵檢測(cè)[J].計(jì)算機(jī)科學(xué),,2010,,37(10):118-122.
[6] JAIKAEO C, SHEN C C. Qualnet Tutorial[R]. Scalable Network Technologies,, University of Delaware,, 2007:21-46.