摘 要: 在分析現(xiàn)有報(bào)文丟棄攻擊檢測算法的基礎(chǔ)上,,提出了一種基于簇首協(xié)作的報(bào)文丟棄攻擊全局感知方案,利用IDS簇首協(xié)同監(jiān)視節(jié)點(diǎn)報(bào)文收發(fā)狀態(tài),,改進(jìn)現(xiàn)有算法的監(jiān)測方式和節(jié)點(diǎn)狀態(tài)判定算法,。仿真結(jié)果表明,該算法具有良好的檢測率和誤檢率,,在規(guī)避網(wǎng)絡(luò)中的惡意節(jié)點(diǎn)以及維護(hù)網(wǎng)絡(luò)正常吞吐量等方面具有較好的性能,。
關(guān)鍵詞: 移動(dòng)自組織網(wǎng)絡(luò);丟棄攻擊,;惡意節(jié)點(diǎn)檢測,;入侵檢測系統(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ǎng)絡(luò)中,部分節(jié)點(diǎn)為了保護(hù)自身較少的資源,,可能不轉(zhuǎn)發(fā)其他節(jié)點(diǎn)請求轉(zhuǎn)發(fā)的數(shù)據(jù)包,,產(chǎn)生自私節(jié)點(diǎn)問題[1],特別場景下(如戰(zhàn)爭環(huán)境)合法節(jié)點(diǎn)被攻陷后將成為惡意節(jié)點(diǎn),。
在數(shù)據(jù)報(bào)文傳輸過程中,,自私節(jié)點(diǎn)和惡意節(jié)點(diǎn)可以故意隨機(jī)丟棄部分需要自身轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文來對網(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)文傳輸無法進(jìn)行,。然而,,由于無線自組織網(wǎng)絡(luò)中節(jié)點(diǎn)性質(zhì)的不確定性,現(xiàn)有的適用于Ad Hoc網(wǎng)絡(luò)的路由協(xié)議無法應(yīng)對這種在網(wǎng)絡(luò)層發(fā)起的攻擊,。報(bào)文丟棄攻擊難以檢測和防范,,嚴(yán)重影響到了無線自組織網(wǎng)絡(luò)的通信性能和實(shí)際應(yīng)用。
目前,,針對報(bào)文丟棄攻擊的研究多數(shù)集中在基于鄰居節(jié)點(diǎn)監(jiān)測方法[2]對現(xiàn)有路由協(xié)議(如DSR)的改進(jìn),,希望構(gòu)造一個(gè)安全的路由協(xié)議或模型來抵抗攻擊。然而,,鄰居節(jié)點(diǎn)監(jiān)測算法本身存在一些局限性,,此類方案增加了MANET網(wǎng)絡(luò)路由協(xié)議的復(fù)雜度,監(jiān)測效果卻不理想,。
本文在分析現(xiàn)有解決方案的基礎(chǔ)上,,提出了一種基于簇首協(xié)作的報(bào)文丟棄攻擊全局感知算法,在MANET入侵檢測系統(tǒng)中利用分簇IDS的簇首節(jié)點(diǎn)協(xié)作進(jìn)行全局監(jiān)測,。該方案將安全檢測從路由協(xié)議中獨(dú)立出來,由IDS來實(shí)現(xiàn)報(bào)文丟棄攻擊的檢測,,簡化了Ad Hoc路由協(xié)議的設(shè)計(jì),,同時(shí)彌補(bǔ)了鄰居節(jié)點(diǎn)監(jiān)測算法的不足,在報(bào)文丟棄攻擊的檢測率,、誤報(bào)率和檢測響應(yīng)速率方面有較好的性能,。
1 鄰居節(jié)點(diǎn)檢測算法分析
1.1 報(bào)文丟棄攻擊相關(guān)研究
為對抗內(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)后,利用無線信號(hào)暴露在空中的特性來監(jiān)聽下一跳節(jié)點(diǎn)是否繼續(xù)轉(zhuǎn)發(fā)該報(bào)文,。LEE S和CHOI Y采用了類似Watchdog的鄰居節(jié)點(diǎn)監(jiān)測系統(tǒng)(NWS)來獲取鄰居節(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)的入侵檢測算法,此方案能夠監(jiān)測節(jié)點(diǎn)發(fā)送的報(bào)文,,但在如何監(jiān)測節(jié)點(diǎn)收到的報(bào)文方面沒有給出有效的解決方法,。
1.2 鄰居節(jié)點(diǎn)監(jiān)測算法介紹
上述研究大多以鄰居節(jié)點(diǎn)監(jiān)測算法為基礎(chǔ)對節(jié)點(diǎn)的收發(fā)報(bào)文情況進(jìn)行監(jiān)聽,從而達(dá)到判斷入侵節(jié)點(diǎn)的目的,。當(dāng)一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)時(shí),,鄰居監(jiān)測系統(tǒng)會(huì)確認(rèn)路由的下一跳節(jié)點(diǎn)是否轉(zhuǎn)發(fā)了該報(bào)文。鄰居監(jiān)測系統(tǒng)監(jiān)聽下一跳節(jié)點(diǎn)采取的行為,,并依此判斷下一跳節(jié)點(diǎn)是否有惡意行為,。
如圖1所示,假設(shè)S到D有通路,,中間節(jié)點(diǎn)為A,、B、C,,節(jié)點(diǎn)A不能直接和C通信,,但A可以監(jiān)聽到B發(fā)送的報(bào)文。A可以辨認(rèn)B是否轉(zhuǎn)發(fā)了報(bào)文,。A緩存下剛發(fā)送的數(shù)據(jù)報(bào),,和監(jiān)聽到的B轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)比較,看是否一致,。如果一致,,表明此數(shù)據(jù)報(bào)已經(jīng)發(fā)送,A移除緩存的數(shù)據(jù)報(bào),,這一過程結(jié)束,;如果不一致,表明B有篡改信息的惡意行為,;如果數(shù)據(jù)報(bào)在緩存區(qū)保留的時(shí)間超過一個(gè)門限,,則認(rèn)為B沒有正常工作。對于后兩種情況,,A會(huì)給這個(gè)沒有盡責(zé)的節(jié)點(diǎn)記過,。如果B被記過的次數(shù)超過一個(gè)門限值,,A確定此節(jié)點(diǎn)有惡意行為,它向源節(jié)點(diǎn)S發(fā)送路由出錯(cuò)報(bào)文(RRER)通知B是惡意節(jié)點(diǎn),。在從A回到S節(jié)點(diǎn)過程中,,路由到的節(jié)點(diǎn)都會(huì)記錄下B是惡意節(jié)點(diǎn),在以后的路由選擇過程中會(huì)將B節(jié)點(diǎn)從路由鏈路中排除,。
1.3 鄰居節(jié)點(diǎn)監(jiān)測算法的缺陷
鄰居節(jié)點(diǎn)算法利用無線網(wǎng)絡(luò)信號(hào)暴露在空間中而且信號(hào)多向傳播的特性來實(shí)現(xiàn)對鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)的監(jiān)測,,然而這種方法卻存在以下的局限性:
(1)鄰居監(jiān)測系統(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)測信息存在大量冗余,,浪費(fèi)了節(jié)點(diǎn)電池能量和計(jì)算資源,。
(2)節(jié)點(diǎn)A只能孤立地監(jiān)測其鄰居節(jié)點(diǎn)的轉(zhuǎn)發(fā)報(bào)文狀態(tài),并根據(jù)自身的監(jiān)測記錄判斷鄰居節(jié)點(diǎn)B是否有惡意丟包行為,,不能綜合B的其他鄰居節(jié)點(diǎn)(如C)對節(jié)點(diǎn)B的監(jiān)測結(jié)果,。因此,這種判斷帶有很大的片面性,,容易得出錯(cuò)誤的監(jiān)測結(jié)論,。
(3)惡意節(jié)點(diǎn)可以把無辜節(jié)點(diǎn)作為惡意節(jié)點(diǎn)放在RRER數(shù)據(jù)報(bào)中,發(fā)送給源節(jié)點(diǎn)S,,比如,,節(jié)點(diǎn)A可以向S打虛假報(bào)告B沒有轉(zhuǎn)發(fā)報(bào)文,使S認(rèn)為B是惡意節(jié)點(diǎn),,這個(gè)問題的發(fā)現(xiàn)就需要依賴消息正常發(fā)送到D,,節(jié)點(diǎn)D反饋消息給S,則S會(huì)認(rèn)為路由是正常的,。如果在消息給B傳遞后未能到達(dá)目的節(jié)點(diǎn)D,,或者D的反饋消息沒有正常到達(dá)A,則節(jié)點(diǎn)B就會(huì)被當(dāng)作惡意節(jié)點(diǎn),,從而造成誤報(bào),,本文稱這種攻擊為虛假丟報(bào)文丟棄攻擊。
2 報(bào)文丟棄攻擊全局感知方案
2.1 分簇IDS
移動(dòng)自組網(wǎng)的組網(wǎng)特點(diǎn)決定了相應(yīng)的入侵檢測系統(tǒng)必須要采取分簇架構(gòu),。分簇結(jié)構(gòu)IDS典型層次如圖2所示,整個(gè)MANET系統(tǒng)以簇為單位分成多IDS簇,,每個(gè)簇選出簇頭,,IDS功能模塊按需要置于簇頭或簇成員節(jié)點(diǎn)上。
在鄰居節(jié)點(diǎn)檢測算法中,,每個(gè)節(jié)點(diǎn)都監(jiān)測其鄰居節(jié)點(diǎn)的行為,,產(chǎn)生大量冗余監(jiān)測信息,,耗費(fèi)了節(jié)點(diǎn)資源。本文提出基于簇首的監(jiān)測模式,,即整個(gè)網(wǎng)絡(luò)劃分為簇,,每個(gè)區(qū)域選出一個(gè)簇頭作為監(jiān)視節(jié)點(diǎn),負(fù)責(zé)整個(gè)區(qū)域的入侵檢測,。該簇頭收集整個(gè)區(qū)域內(nèi)節(jié)點(diǎn)的行為信息,,并按檢測算法進(jìn)行分析,確定入侵行為,。IDS簇首節(jié)點(diǎn)周期性地廣播告示報(bào)文,,以維持簇首監(jiān)測節(jié)點(diǎn)的地位。簇首節(jié)點(diǎn)服務(wù)時(shí)間到了后,,就重新啟動(dòng)一個(gè)新的選舉過程,。為了保證公平和隨機(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)測節(jié)點(diǎn)報(bào)文收發(fā)狀態(tài)
不同于傳統(tǒng)有線網(wǎng)絡(luò)中的IDS,,MANET中的簇首節(jié)點(diǎn)并不能像在有線網(wǎng)絡(luò)中那樣監(jiān)測到節(jié)點(diǎn)的報(bào)文收發(fā)狀態(tài)。由于無線網(wǎng)絡(luò)的傳播特性,,分簇結(jié)構(gòu)IDS中的簇首節(jié)點(diǎn)只能監(jiān)測到其簇成員節(jié)點(diǎn)發(fā)送的報(bào)文,,而對于簇成員接收到的數(shù)據(jù)包只能部分監(jiān)測到,因此,,在應(yīng)對報(bào)文丟棄攻擊之類的被動(dòng)攻擊時(shí)顯得無能為力,。圖2中,節(jié)點(diǎn)C,、E為簇首,,節(jié)點(diǎn)A、S為C的簇成員,,節(jié)點(diǎn)B,、D為E的簇成員。簇首節(jié)點(diǎn)E只能監(jiān)測到節(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)測到B接收了這樣一個(gè)數(shù)據(jù)包,因此,,并不能發(fā)現(xiàn)B丟棄了應(yīng)轉(zhuǎn)發(fā)給節(jié)點(diǎn)D的數(shù)據(jù)包,。
為了解決這個(gè)缺陷,,本文提出了基于簇首協(xié)作監(jiān)測的方案,利用各簇首節(jié)點(diǎn)間相互通信協(xié)作檢測的方法實(shí)現(xiàn)對報(bào)文丟棄攻擊的檢測,。圖2中,,雖然節(jié)點(diǎn)E不能夠監(jiān)測到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)測到節(jié)點(diǎn)A給節(jié)點(diǎn)B轉(zhuǎn)發(fā)了數(shù)據(jù)包,,并通過查詢數(shù)據(jù)包中下一跳路由信息得知B接收了這個(gè)數(shù)據(jù)報(bào)并應(yīng)該轉(zhuǎn)發(fā)該數(shù)據(jù)包給D,如果E和C進(jìn)行通信,,交換彼此監(jiān)測信息,,節(jié)點(diǎn)B的簇首節(jié)點(diǎn)E就能夠借助和C交換的消息來全面監(jiān)測節(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)測節(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),,下文簡記為Recd,;Send表示監(jiān)聽到節(jié)點(diǎn)轉(zhuǎn)發(fā)一個(gè)數(shù)據(jù)報(bào)文;Receive表示根據(jù)監(jiān)聽到的報(bào)文中的路由信息,,該數(shù)據(jù)報(bào)文下一跳節(jié)點(diǎn)應(yīng)該轉(zhuǎn)發(fā)此數(shù)據(jù)報(bào)文,,其值為負(fù),下文簡記為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)聽到節(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)聽到該數(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)聽到該數(shù)據(jù)報(bào)文并執(zhí)行操作B.Recd.Send+1和C.Recd.Rece-1,。
在MANET網(wǎng)絡(luò)中,各簇首節(jié)點(diǎn)在監(jiān)測周期結(jié)束時(shí)多播Hello消息,,彼此交換監(jiān)測的簇內(nèi)節(jié)點(diǎn)報(bào)文轉(zhuǎn)發(fā)狀態(tài)表,,其中,服務(wù)周期的長短由系統(tǒng)根據(jù)需要設(shè)定,。通過檢測算法就可以對網(wǎng)絡(luò)中是否存在報(bào)文攻擊及惡意節(jié)點(diǎn)號(hào)做出檢測,。
2.4 報(bào)文丟棄攻擊全局感知算法詳細(xì)實(shí)現(xiàn)
設(shè)網(wǎng)絡(luò)中共有m個(gè)IDS簇頭,分別記為H1,、H2,、…、Hm,。則經(jīng)過一個(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)則對惡意節(jié)點(diǎn)進(jìn)行判定,。狄克遜準(zhǔn)則是通過極差比判定和剔除異常數(shù)據(jù)。與一般比較簡單的極差方法不同,,該準(zhǔn)則為了提高判斷效率,,對不同的實(shí)驗(yàn)量測定數(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)類型進(jìn)行判定,。如果f0>f(n,α)就可以判定該值所對應(yīng)節(jié)點(diǎn)為可疑節(jié)點(diǎn),。f(n,,α)可以查表獲得,其中n是節(jié)點(diǎn)個(gè)數(shù),,α為檢驗(yàn)水平,,根據(jù)檢測精度需要可以取0.01或是0.05,。fo的計(jì)算如下:
為防止惡意簇首節(jié)點(diǎn)發(fā)送虛假報(bào)文丟棄通告對正常節(jié)點(diǎn)進(jìn)行攻擊,節(jié)點(diǎn)i連續(xù)在兩個(gè)系統(tǒng)監(jiān)測周期內(nèi)都被判定為可疑節(jié)點(diǎn)后,,系統(tǒng)即判定該節(jié)點(diǎn)為惡意節(jié)點(diǎn),,發(fā)出告警并通過Hello消息廣播將該節(jié)點(diǎn)隔離出網(wǎng)絡(luò)后,重新進(jìn)行報(bào)文丟棄惡意節(jié)點(diǎn)檢測,。
如果簇首節(jié)點(diǎn)j在自己的監(jiān)測周期內(nèi)發(fā)動(dòng)虛假報(bào)文丟棄攻擊,,使正常節(jié)點(diǎn)i在該監(jiān)測周期內(nèi)被判定為可疑節(jié)點(diǎn),但下一監(jiān)測周期中,,由于更改了IDS簇頭,,節(jié)點(diǎn)i將不再被判定為可疑節(jié)點(diǎn),則系統(tǒng)記錄節(jié)點(diǎn)j為可疑節(jié)點(diǎn),,認(rèn)為j在自己的監(jiān)測周期內(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ā)出告警并通過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)測周期節(jié)點(diǎn)狀態(tài)判定結(jié)果
Bool LastDrop;//上一監(jiān)測周期節(jié)點(diǎn)狀態(tài)判定結(jié)果
Bool Cheat,;//簇首節(jié)點(diǎn)虛假報(bào)文丟棄攻擊嫌疑
}Node,;
算法偽碼表示如下:當(dāng)系統(tǒng)一個(gè)監(jiān)測周期結(jié)束后,對每個(gè)節(jié)點(diǎn)執(zhí)行如下算法,,設(shè)節(jié)點(diǎn)i的上一周期IDS簇首節(jié)點(diǎn)為j,。
while(true)//系統(tǒng)按周期循環(huán)監(jiān)測
{
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)測周期大小、節(jié)點(diǎn)活動(dòng)的范圍,。
評價(jià)算法性能的主要指標(biāo)是惡意節(jié)點(diǎn)的檢測率和惡意節(jié)點(diǎn)的誤檢率,。檢測率是指被檢測出來的惡意節(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)的比例,。對檢測率和誤檢率各做10次實(shí)驗(yàn),,然后取平均值。
圖4表示了不同惡意節(jié)點(diǎn)數(shù)量下,,全局感知算法的檢測率,。無論是否存在虛假報(bào)文丟棄攻擊,算法對惡意節(jié)點(diǎn)的檢測率均隨著惡意節(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ì)分析過程。圖5表示了不同惡意節(jié)點(diǎn)數(shù)量下,,全局感知算法對惡意節(jié)點(diǎn)的誤測率,。從圖5可以看出,無論是否存在虛假報(bào)文丟棄攻擊,,算法的誤檢率都較低,,雖然隨惡意節(jié)點(diǎn)數(shù)量的增大而有小幅上升,但最高不超過3%,。
實(shí)驗(yàn)表明,,本文算法的惡意節(jié)點(diǎn)檢測率和誤檢率性能良好。在惡意節(jié)點(diǎn)所占比例較低的情況下,,檢測率接近100%,,誤檢率接近0%。隨著惡意節(jié)點(diǎn)所占比例的提高和惡意節(jié)點(diǎn)發(fā)送虛假的鄰居節(jié)點(diǎn)報(bào)文轉(zhuǎn)發(fā)率信息,,惡意節(jié)點(diǎn)的檢測率有所下降,,但仍保持在90%以上;誤檢率有所上升,但仍保持在3%范圍內(nèi),。
惡意簇首節(jié)點(diǎn)發(fā)送虛假的簇內(nèi)節(jié)點(diǎn),,節(jié)點(diǎn)報(bào)文轉(zhuǎn)發(fā)率信息對檢測率造成了一定的影響,這主要是由于實(shí)驗(yàn)時(shí)指定的惡意節(jié)點(diǎn)并不一定會(huì)被選舉為簇首,。本算法對于發(fā)送虛假報(bào)文丟棄攻擊,,需要在節(jié)點(diǎn)兩次當(dāng)選為監(jiān)測簇首才做出判定,但這并不會(huì)影響網(wǎng)絡(luò)的性能,。因?yàn)樗惴ㄊ腔诖亟Y(jié)構(gòu)的,,惡意節(jié)點(diǎn)只有連續(xù)兩次當(dāng)選簇首才能對一個(gè)正常節(jié)點(diǎn)發(fā)動(dòng)虛假報(bào)文誣陷攻擊,而算法在成簇階段已經(jīng)阻止了此類攻擊發(fā)生,,所以節(jié)點(diǎn)無法發(fā)動(dòng)虛假報(bào)文丟棄攻擊,,因此表現(xiàn)為檢測率降低。在虛假報(bào)文丟棄攻擊惡意節(jié)點(diǎn)比例較高的情況下,,檢測率平均降低了2%左右,。
本文分析了現(xiàn)有依據(jù)鄰居節(jié)點(diǎn)檢測算法對報(bào)文丟棄攻擊和虛假報(bào)文丟棄攻擊進(jìn)行檢測算法存在的不足,在此基礎(chǔ)上,,設(shè)計(jì)了一種基于簇首協(xié)作的報(bào)文丟棄攻擊全局感知算法,。仿真實(shí)驗(yàn)表明,該算法通過對報(bào)文丟棄攻擊節(jié)點(diǎn)進(jìn)行全局監(jiān)測,,減輕了網(wǎng)絡(luò)各節(jié)點(diǎn)資源和網(wǎng)絡(luò)帶寬的消耗,;利用狄克遜準(zhǔn)則進(jìn)行惡意節(jié)點(diǎn)判定,提高了報(bào)文丟棄攻擊的檢測精確度,;同時(shí),,由于使用了基于簇首的監(jiān)測方式,惡意節(jié)點(diǎn)在作為簇成員的時(shí)候無法發(fā)動(dòng)虛假報(bào)文丟棄攻擊,,很大程度上抑制了虛擬報(bào)文丟棄攻擊在網(wǎng)絡(luò)中發(fā)生的頻率,。由于算法基于全局監(jiān)測周期進(jìn)行消息交換,在周期結(jié)束的時(shí)候進(jìn)行惡意節(jié)點(diǎn)的檢測,,因此,,在提高入侵檢測響應(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ò)分布式入侵檢測[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.