葉雪梅,許馨月,朱云杰,戴宇佳,蔡艷寧,范青剛
(1.西安高技術(shù)研究所 計算機教研室,陜西 西安710025;2.西安高技術(shù)研究所202 教研室,陜西 西安710025)
車載自組網(wǎng)(vehicular Ad Hoc network,VANET)的廣泛應用已使其安全性備受關(guān)注,保證VANET 的安全,對車輛行駛安全、消息及時傳輸有重大意義。將VANET 應用于民用或軍用車隊中,如,運輸車隊、領(lǐng)導車隊或作戰(zhàn)指揮車隊,解決了車隊內(nèi)部之間通信的互聯(lián),并能夠保證車隊行進、獲取重要消息等的整體一致性,但同時也面臨著網(wǎng)絡安全問題。在車隊的組織與行進中,必須采取嚴密的安全防范措施來保障其順利完成運輸、指揮、作戰(zhàn)等任務。而VANET 的安全研究是一個比較新的研究領(lǐng)域,多數(shù)學者的研究都停留在隱私保護、消息驗證、數(shù)字簽名等方面,對于VANET 受到入侵攻擊展開的研究涉足甚少。一方面,由于車輛節(jié)點高速移動、拓撲變化頻繁,捕捉與記錄數(shù)據(jù)受到環(huán)境等因素影響較大;另一方面,VANET 的審計數(shù)據(jù)是局部的,只局限在無線通信的覆蓋范圍內(nèi),VANET 的入侵檢測也只能是局部的。
黑洞攻擊入侵VANET 會使得本應正常傳遞的數(shù)據(jù)在沒有到達目的地之前就會被丟棄,使得網(wǎng)絡內(nèi)無法交流重要信息,造成通信不暢。針對黑洞攻擊的檢測,已有多種解決方案被提出,文獻[1]提出了一種基于對響應節(jié)點的下游鄰居節(jié)點驗證的方法,這種方法能夠解決單個惡意節(jié)點的黑洞攻擊,但無法解決相互合作的惡意節(jié)點的黑洞攻擊。文獻[2,3]在文獻[1]的基礎(chǔ)上,提出了解決相互合作的中間惡意節(jié)點進行黑洞攻擊的方法,但是無法實現(xiàn)對目的惡意節(jié)點發(fā)起的黑洞攻擊。由于支持向量機(support vector machine,SVM)算法具有樣本需求小、泛化能力好等特點,對任意節(jié)點都可以進行訓練和檢測,本文選擇SVM 算法進行黑洞攻擊的檢測分析。
SVM 是一類新型機器學習算法,它能夠非常成功地解決分類和回歸問題。在小樣本的情況下,該算法具有建模精度高、推廣能力強等特點,能夠避免局部最優(yōu)解與維數(shù)災難,為解決入侵檢測問題提供了重要思路。SVM 算法的關(guān)鍵是確定核函數(shù)與分類器。
在SVM 中,不同的核函數(shù)形成了不同的算法,導致樣本在高維特征空間的分布形成不同的復雜度,主要的核函數(shù)有線性核函數(shù)、多項式核函數(shù)、徑向基核函數(shù)及Sigmoid核函數(shù)[5]。
比較這幾種核函數(shù),可以發(fā)現(xiàn)其中有這樣的關(guān)系:線性核函數(shù)是徑向基核函數(shù)的特例,但徑向基核函數(shù)可以將訓練樣本非線性地映射到高維空間,文獻[6]證明了線性核函數(shù)的SVM 與徑向基核函數(shù)的SVM 有相同的分類性能,但徑向基核函數(shù)的適用范圍更廣;與多項式核函數(shù)相比,當多項式次數(shù)較高時,多項式核函數(shù)的計算復雜度增加較快,相比之下徑向基核函數(shù)模型的計算復雜度較低;與Sigmoid核函數(shù)相比,Sigmoid 核函數(shù)對參數(shù)的選擇有較高的要求,選取的參數(shù)如果不合適會導致訓練效果變差。綜上考慮,徑向基核函數(shù)比較適合作為本文SVM 訓練的核函數(shù)。
在SVM 分類器的訓練中,影響訓練結(jié)果好壞的因素有多個,但是最主要的因素有兩個:特征向量的選擇與分類器的模型設計。針對這兩個方面,解決的主要思路如下:
1)特征向量的選擇是影響SVM 分類器檢測效果的關(guān)鍵問題,選擇能較好區(qū)分黑洞攻擊與正常網(wǎng)絡狀態(tài)的特征,可使SVM 分類器達到較好的訓練與檢測效果。
由于檢測關(guān)注的重點是車輛通信中數(shù)據(jù)的傳輸過程有無異常情況發(fā)生,因而選擇路由層中與車載通信、網(wǎng)絡數(shù)據(jù)包等相關(guān)的統(tǒng)計量作為特征,如一條通信鏈路中節(jié)點收發(fā)數(shù)據(jù)包的計數(shù)情況,具體的特征屬性記錄如表1 所示。
表1 黑洞攻擊特征列表Tab 1 List of features of black hole attack
這四個特征都是路由層中數(shù)據(jù)包的動作事件的個數(shù)。且要特別注意,只有當本節(jié)點是源節(jié)點的時候才會有發(fā)送數(shù)據(jù)包的動作,CBRs_ij 才有計數(shù),CBRs_ij 才有意義。只有當通信鏈路中存在入侵節(jié)點,且本節(jié)點正是入侵節(jié)點時,才會在路由層出現(xiàn)丟包現(xiàn)象,CBRd_ij 才有計數(shù),但考慮到實際工作時,入侵節(jié)點本身出于“自我保護”是無法作為檢測節(jié)點來對當前網(wǎng)絡進行入侵檢測的。因而,更確切地說,黑洞攻擊存在的網(wǎng)絡中,只有CBRr_ij 與CBRf_ij 比較適合作為特征向量??紤]任意非源節(jié)點與非目的節(jié)點,它們的CBRr_ij 數(shù)與CBRf_ij 數(shù)在每一條通信鏈路中計數(shù)相同,選擇其中一個參量作為特征即可滿足SVM 訓練的要求,因而不失一般性,選擇CBRr_ij 為黑洞攻擊入侵檢測的特征。
2)分類器的模型設計是SVM 算法的核心,分類效果的好壞直接影響實際應用中的檢測性能。在入侵檢測分類器的模型設計中,考慮到分類效果與泛化性能等因素,選取標準SVM 分類方法C-SVC[7]作為入侵檢測的訓練模型。
采用C-SVC 對VANET 進行入侵檢測時,首先需要準備數(shù)據(jù)樣本,進行數(shù)據(jù)預處理,然后提取重要的特征向量,優(yōu)選訓練參數(shù),輸入到SVM 進行訓練,最后對新樣本進行預測。這里需要注意的是,VANET 的動態(tài)拓撲性與節(jié)點的自治獨立性使得每一個車輛節(jié)點只能檢測自己的通信數(shù)據(jù)狀態(tài),因而,每一個節(jié)點都配備SVM 分類器,每個節(jié)點檢測出的結(jié)果也只能代表在某一段時間內(nèi)該節(jié)點參與的通信鏈路是否有入侵情況發(fā)生。實際應用中還要注意到,惡意節(jié)點出于自我保護,作為檢測節(jié)點來對當前網(wǎng)絡進行入侵檢測的是不可靠的。
目前,國際上沒有公認的VANET 通信數(shù)據(jù)的樣本庫,因而本文通過利用NS-2 仿真軟件模擬車隊行進過程中受到黑洞攻擊的場景,獲得VANET 在正常狀態(tài)與異常狀態(tài)時的通信數(shù)據(jù)作為訓練樣本。
首先對車隊行進過程時的通信進行仿真實現(xiàn),根據(jù)車隊的實際應用要求,對車隊做如下規(guī)定:
1)車隊內(nèi)部車輛之間保持跟隨前進,不得任意更換車輛次序;
2)車隊內(nèi)部車輛及時調(diào)整行進速度,使得與車隊整體的行駛速度保持一致,并能夠保持基本一致的車距;
3)考慮專用車隊的保密安全問題,故行駛過程中不與路邊單元(RSU)和其他非車隊內(nèi)部車輛進行信息交換,也假定車隊通信不會受到基站電波的干擾。
因此,車隊行駛的道路環(huán)境可以簡化為一個矩形區(qū)域,車隊中的每一輛車是一個節(jié)點,假定各節(jié)點性能相同,通信與移動能力均正常,在矩形區(qū)域內(nèi)排成直線勻速行駛。編寫tcl 腳本,通過NS-2 仿真軟件模擬車隊行進1 000 s 的場景,具體仿真參數(shù)設置如表2。設置5#節(jié)點為黑洞攻擊節(jié)點,通信鏈路設置為0#與19#節(jié)點進行通信互傳。仿真效果如圖1 所示,圖為0#節(jié)點向19#節(jié)點發(fā)送路由請求分組。分別仿真網(wǎng)絡正常和遭受黑洞攻擊的狀態(tài),得到能完整記錄各節(jié)點實時通信數(shù)據(jù)信息的trace 文件,黑洞攻擊時的trace 文件樣本如圖2。
表2 場景參數(shù)設置Tab 2 Setting of parameters of scene
圖1 車隊模型通信Fig 1 Communication of fleet model
圖2 Trace 文件樣本Fig 2 Samples of trace files
對VANET 網(wǎng)絡通信數(shù)據(jù)進行特征向量提取,是采用SVM 進行入侵檢測的關(guān)鍵步驟。利用編寫的awk 程序?qū)W(wǎng)絡正常和遭受入侵時的trace文件分別進行遍歷,間隔0.5 s 統(tǒng)計一次通信情況,可得到特征向量樣本,共有2 000 個正樣本(正常網(wǎng)絡)與2 000 個負樣本(黑洞入侵),各取50%數(shù)據(jù)組成訓練樣本,另50%組成測試樣本。
LibSVM 軟件是臺灣大學開發(fā)的一個用于SVM 模式識別與回歸的軟件包,提供了交互檢驗的功能,本文利用libSVM 軟件對訓練參數(shù)進行優(yōu)選。
在訓練參數(shù)組合(C,σ)中,C 為懲罰因子,σ 為形狀參數(shù),不同的組合會訓練產(chǎn)生不同分類性能的分類器。LibSVM 庫提供了能對訓練參數(shù)C 和σ 做優(yōu)選的grid.py 文件,該文件利用了網(wǎng)格搜索法。利用grid.py 文件對分類器進行訓練參數(shù)優(yōu)選,得到最優(yōu)參數(shù),將最優(yōu)參數(shù)輸入到分類器中,訓練出每個節(jié)點的分類器。最后利用訓練好的分類器對測試樣本進行檢測,得到仿真結(jié)果如表3 所示。
表3 各節(jié)點仿真數(shù)據(jù)Tab 3 Simulation data of each node
為便于對仿真結(jié)果進行直觀分析,利用Matlab 工具將各節(jié)點的檢測率和誤檢率制作成如圖3。
分析圖3 可知,1#~4#,6#~18#節(jié)點的檢測率幾乎為100%,平均誤檢率為11.47%,具有較好的入侵檢測性能。實際工作時,5#節(jié)點作為惡意節(jié)點是不能用于檢測的;0#和19#節(jié)點作為源節(jié)點和目的節(jié)點,誤檢率過高,也不適合作為檢測節(jié)點。
以上結(jié)果表明:在有黑洞攻擊存在的車載自組網(wǎng)中,設計CBRr_ij 作為入侵檢測特征是合適的,基于SVM 建立的黑洞攻擊檢測方法能有效解決黑洞攻擊入侵檢測的問題。
圖3 各節(jié)點檢測率和誤檢率分布Fig 3 Distribution of detection rate and false detection rate of each node
本文主要研究了車隊VANET 遭受黑洞攻擊的入侵檢測問題,提出了一種基于SVM 的入侵檢測方法。通過分析VANET 特點確定了核函數(shù)和SVM 分類器類型,根據(jù)通信數(shù)據(jù)傳遞規(guī)律設計了用于檢測的特征向量。通過NS-2 仿真軟件分別得到了車隊VANET 正常和遭受黑洞攻擊時的實驗數(shù)據(jù),在此基礎(chǔ)上,利用LibSVM 軟件對SVM 分類器進行了訓練和檢測,結(jié)果表明:對于非源、目的節(jié)點以及攻擊節(jié)點,本文提出的檢測方法具有較高的檢測率和較低的誤檢率,較好地適應了基于單個節(jié)點通信數(shù)據(jù)判斷當前網(wǎng)絡狀態(tài)的要求。
[1] Deng Hongmei,Li Wei,Agrawal Dharma P.Routing security in wireless Ad Hoc networks[J].IEEE Communication Magazine,2002,40(10):70-75.
[2] 劉書明,劉建偉,毛 劍.一種改進的AODV 安全路由協(xié)議[J].中國科學院研究生院學報,2011,28(6):801-805.
[3] Tamilselvan Latha,Sankaranarayanan V.Prevention of co-operative black hole attack in MANET[J].Journal of Networks,2008,3(5):13-20.
[4] 許建華,張學工,李衍達.支持向量機的新發(fā)展[J].控制與決策,2004,19(5):481-484,495.
[5] 汪廷華,陳峻婷.核函數(shù)的選擇研究綜述[J].計算機工程與設計,2012,33(3):1181-1186.
[6] 郭成報.支持向量機最優(yōu)參數(shù)選取與應用[D].濟南:山東大學,2011:18-19.
[7] Vladimir N Vapnik.統(tǒng)計學習理論[M].北京:電子工業(yè)出版社,2009:42-53.