黃學臻 ,翟 翟 ,周 琳 ,祝雅茹
(1.公安部第一研究所,北京 100044;2.北京交通大學 智能交通數(shù)據(jù)安全與隱私保護技術北京市重點實驗室,北京 100044)
隨著當前車輛激增,交通擁堵及交通事故等嚴重影響了社會生活,為了滿足人們對于提升出行質(zhì)量的需求,車載自組網(wǎng)(Vehicular Ad-Hoc Network,VANET),簡稱車載網(wǎng),逐漸成為實現(xiàn)智能交通系統(tǒng)的基礎之一。雖然VANET 能夠為人們的出行質(zhì)量提供有力保障,但是大量的車輛數(shù)據(jù)通過無線通信共享,任何交換惡意信息的節(jié)點都會損害網(wǎng)絡安全性,因此,VANET 的安全性成為了車聯(lián)網(wǎng)領域的重點研究目標。
為了提高VANET 安全性,避免入侵行為產(chǎn)生的危害,首先需要明確其面臨的安全問題。VANET 中入侵行為主要源自于自私的駕駛者和惡意的攻擊者,自私的駕駛者主要是為了私利而獨享道路、節(jié)約自身資源等;惡意的攻擊者使車輛無意或有意地在網(wǎng)絡中傳輸不正確的信息(例如錯誤的位置或速度坐標),影響車載網(wǎng)的正常工作,威脅駕乘者的生命財產(chǎn)安全[1]。然而,面對日益復雜的車載網(wǎng)絡環(huán)境,傳統(tǒng)的入侵檢測方法呈現(xiàn)出相當多的問題。其中最主要的問題是:大數(shù)據(jù)背景下傳統(tǒng)入侵檢測方法性能低下,存儲與時間成本高,準確性不高。
為了有效解決上述問題,本文提出了一種在VANET場景下的高效入侵檢測方法,將基于輕量級密集卷積神經(jīng)網(wǎng)絡的入侵檢測方法部署在RSU 上,以對車輛發(fā)來的消息及時進行檢測。實驗結果表明,本文所提出的模型在VeReMi 數(shù)據(jù)集上具有較高的準確率,在各攻擊類別和正常類別的識別上均具有穩(wěn)定的性能。同時,在訓練過程中消耗時間短,模型參數(shù)總量相對較少,進一步節(jié)省計算開銷與存儲開銷。
隨著機器學習與深度學習的廣泛應用,研究人員提出了各種基于機器學習或深度學習方法的入侵檢測方法。在基于機器學習方法的研究中,Zhang 等[2]提出了一種分布式檢測方案,該方案可以在網(wǎng)絡中的單個車輛上運行,并且可以協(xié)作進行異常信息交換;Garg 等[3]提出了一種基于機器學習的入侵檢測方案,該方案結合了橢圓曲線密碼學和模糊C-means 聚類;Schmidt 等[4]提出了一種結流分類模型,該模型采用k 均值聚類算法進行動態(tài)聚類;Bangui 等[5]提出一種混合機器學習模型,該方法主要利用隨機森林的優(yōu)點來檢測已知的網(wǎng)絡入侵。然而,這些傳統(tǒng)的機器學習方法雖然透明簡單且訓練直觀,但是需要手動處理特征且對入侵行為分類精度不夠高,已經(jīng)不能滿足車載網(wǎng)絡的安全需求。
經(jīng)過研究人員的廣泛探究與實踐,基于深度學習的入侵檢測方案已成為目前車載網(wǎng)安全領域內(nèi)相對成熟和主流的方式。Van 等利用CNN 來檢測由車輛傳輸?shù)漠惓鞲衅鲾?shù)據(jù)[6],然而,他們只考慮了少數(shù)異常類型;Nie 等探索了使用CNN 的無監(jiān)督方法,該方法使用VANET 流量的時空和稀疏特征以及基于馬哈拉諾比斯距離的損失函數(shù)的CNN 架構[7],并在其最新工作中使用監(jiān)督技術進一步擴展[8];Ning 等[9]對邊緣服務器進行了深度強化學習,進一步解決了入侵檢測問題中的計算問題;Alladi 等人[10]提出了基于深度神經(jīng)網(wǎng)絡的車輛異常檢測方案,使用序列重建方法來區(qū)分正常車輛數(shù)據(jù)和異常數(shù)據(jù)。但是這些工作往往只關注某一類或者某幾類異常攻擊類型,且需要較大的計算與存儲開銷。
VANET 旨在最大限度地減少交通堵塞、交通事故等問題,雖然VANET 可以實現(xiàn)車輛間通信以及交通數(shù)據(jù)共享,但是也容易遭受到各種攻擊。因此,采取措施加強車載網(wǎng)絡安全至關重要。在本節(jié)中,首先討論本文考慮的車載網(wǎng)絡場景,再具體介紹在此場景下本文方案主要針對的攻擊類型。
如圖1 所示,本文所假設的VANET 系統(tǒng)模型包括以下3 類實體[11]:
(1)車載單元(On Board Unit,OBU):安裝在車輛中,用于在VANET 中發(fā)布和接收交通路況消息,從而及時調(diào)整行車路線,避免交通擁堵等事故發(fā)生。
(2)路邊單元(Road Side Unit,RSU):部署在十字路口以及停車場等場所,負責管轄其所在位置一定范圍內(nèi)的車輛,本文提出的入侵檢測模型就部署在RSU 上。
(3)可信中心(Trusted Authority,TA):TA 是可信的,負責維護RSU 的身份與位置映射列表,根據(jù)RSU 的實際情況動態(tài)地更新映射列表,對列表中長時間無響應的RSU 進行刪除,因此RSU 也是可信的。
在不同車流量場景和不同的攻擊者密度下,內(nèi)部攻擊者修改基礎安全消息(Basic Safety Message,BSM)[12]以生成虛假或錯誤的位置與速度信息,并在DSRC 上進行廣播。在車載網(wǎng)絡中,惡意車輛可能會發(fā)送虛假信息,造成車輛混亂,嚴重影響其他節(jié)點的安全應用。表1 列出了本文所采用的VeReMi 數(shù)據(jù)集中建模的攻擊類型及使用的參數(shù)[13]。
表1 攻擊類型及參數(shù)
本節(jié)給出了入侵檢測方法的設計目標,并提出了輕量級密集神經(jīng)網(wǎng)絡模型,以及基于此模型的入侵檢測方法。
針對車載網(wǎng)中惡意攻擊者傳輸錯誤數(shù)據(jù)的行為,并結合現(xiàn)有入侵檢測方案存在的不足,本文提出的入侵檢測方法設計目標為:
(1)RSU 及時檢測入侵行為。當網(wǎng)絡中有惡意攻擊者傳輸不正確數(shù)據(jù)時,RSU 需要及時檢測出入侵行為。
(2)設計輕量級且精度高的模型。VANET 場景下,網(wǎng)絡結構快速變化,信息交互迅速,實時性高,要求具有較低的模型檢測時間與存儲成本。
(3)檢測多類攻擊行為。為使RSU 更好地響應和處理接收到的車輛數(shù)據(jù),需要實現(xiàn)對多種不同攻擊行為的準確識別。
密集神經(jīng)網(wǎng)絡(Dense Neural Network,DenseNet)[14]是一種高效的神經(jīng)網(wǎng)絡模型,解決了網(wǎng)絡過深引起的梯度消失、參數(shù)爆炸而導致網(wǎng)絡難以訓練的問題。為了將DenseNet 應用于車載自組網(wǎng)的入侵檢測,本文對DenseNet進行改進,設計了輕量級密集神經(jīng)網(wǎng)絡(Light Dense Neural Network,L-DenseNet)。
原始DenseNet 主要由稠密塊(Dense Block)、過渡層(Transition Layer)和增長率(Growth Rate)構成。其中,Dense Block 定義了輸入和輸出的連結方式;Transition Layer 用來控制通道數(shù),防止通道數(shù)過多;Growth Rate 表示每個Dense Block 中每層輸出的feature map 個數(shù)。一個完整DenseNet 由4 個Dense Block 和3 個Transition Layer 組成,Transition Layer 存在于兩個相鄰的Dense Block 中間。以DenseNet-121 為例,完整的DenseNet 結構如圖2所示。
圖2 完整的DenseNet-121 結構圖
由于車載網(wǎng)絡中傳輸?shù)能囕v數(shù)據(jù)大小比原始的DenseNet 的圖像數(shù)據(jù)簡單得多,因此不需要使用如此復雜的結構。本文通過減少其組件以及調(diào)整參數(shù),使模型變得更加輕便高效。L-DenseNet 模型調(diào)整了Dense Block和相應Transition Layer 的數(shù)量,減少了2 個Dense Block和2 個Transition Layer。
Dense Block 內(nèi)部采用多層結構,每層數(shù)據(jù)都通過一個非線性變換函數(shù)H 傳遞給下一層,且每層的輸入來自前面所有層的輸出。如圖3 所示,L 層的Dense Block有L(L+1)/2 個連接。這一結構更有效地利用了數(shù)據(jù)特征,同時減少了參數(shù)數(shù)量。其中,非線性變化函數(shù)H 包括了BN(Batch-Normalization)、激活函數(shù)(ReLU)以及卷積(Conv)3 種操作(BN+ReLU+3×3 Conv)。由于后面層 的輸入會非常大,因此,Dense Block 內(nèi)部采用了Bottleneck 層來減少計算量,在原有的結構中增加1×1 Conv,降低特征數(shù)量。
圖3 Dense Block 內(nèi)部結構圖
本文提出的L-DenseNet 在減少Dense Block 數(shù)量的基礎上,還對其內(nèi)部結構和參數(shù)進行了修改。針對車載網(wǎng)絡中的一維數(shù)據(jù)集,本文的L-DenseNet 將原二維卷積均改成一維卷積,并對卷積核的尺寸做了相應改變。L-DenseNet 的Dense Block 使用了BN+ReLU+1 Conv+BN+ReLU+3 Conv+Dropout 結構。Dropout 的使用進一步簡化了網(wǎng)絡結構復雜度,衰退率設置為0.001。
Transition Layer 保證了每個Dense Block 后面的特征維度統(tǒng)一,一般結構為BN+ReLU+1×1 Conv+2×2 Avg-Pooling。通過1×1 卷積層來減小通道數(shù),使用步幅(stride)為2 的平均池化層(average pool)來進一步降低模型復雜度。本模型使用stride 為1 的average pool。
表2 為原始DenseNet 和L-DenseNet 的結構以及輸出維度對比。通過創(chuàng)建一個更輕量級的模型,減少了內(nèi)存需求和參數(shù)的數(shù)量,使模型更適用于拓撲結構快速變化的車載網(wǎng)。
表2 DenseNet-121 與L-DenseNet 的參數(shù)配置及輸出對比
模型的輸出為攻擊樣本的類型,若是正常數(shù)據(jù),則RSU 可正常響應并與其他車輛進行數(shù)據(jù)共享;若為異常數(shù)據(jù),RSU 則不在其管理域內(nèi)共享該數(shù)據(jù)。
本小節(jié)基于3.2 節(jié)提出的L-DenseNet,給出了一種輕量級的入侵檢測方法,如圖4 所示。
圖4 基于輕量級密集神經(jīng)網(wǎng)絡的入侵檢測方法
VANET 中入侵檢測方案的應用流程如下:
(1)車輛將其位置、車速等相關數(shù)據(jù)封裝成消息,發(fā)送給RSU;
(2)RSU 提取多維度的時間、位置、車速等相關數(shù)據(jù),進行數(shù)據(jù)標準化;
(3)將步驟(2)得到的數(shù)據(jù)作為神經(jīng)網(wǎng)絡模型的輸入,其輸出是相應的攻擊類型編號,類型0 代表無攻擊。
本文使用車載自組網(wǎng)中的經(jīng)典數(shù)據(jù)集VeReMi 數(shù)據(jù)集進行實驗驗證,并與其他入侵檢測方法進行對比分析。
(1)數(shù)據(jù)集
VeReMi 數(shù)據(jù)集[15]總共包括225 個模擬的車輛運行過程,在這些車輛中,一部分是惡意的,通過采樣均勻分布([0,1])并將其與攻擊者分數(shù)參數(shù)進行比較,使每個車輛基本具有該概率作為攻擊者。同時,所有歸類為攻擊者的車輛都執(zhí)行相同的攻擊算法,數(shù)據(jù)集中的異常數(shù)據(jù)也相應分為5 類攻擊,如表1 所示。
(2)數(shù)據(jù)預處理
VeReMi 數(shù)據(jù)集一共分為5 類攻擊文件,每個文件有17 列特征值和一個標簽值,如表3 所示。由于每條數(shù)據(jù)的標簽都為正常/異常,因此首先對5 類攻擊文件進行合并,貼上相應標簽,并將樣本標簽的數(shù)值轉化為6 維one-hot 編碼。最后對數(shù)據(jù)集進行歸一化處理。
表3 VeReMi 數(shù)據(jù)集各特征含義
(3)評價指標
深度學習模型通常使用的評價指標有準確率(accuracy)、召回率(recall)、精確率(precision)、F1值。這4 種指標可以利用一個混淆矩陣來計算得出。混淆矩陣各類數(shù)據(jù)統(tǒng)計量及其之間的關系如表4 所示。
表4 混淆矩陣
準確率指正確檢測的樣本數(shù)量占樣本總數(shù)的比例,計算公式如下:
精確率指被檢測為正常且檢測正確的樣本數(shù)量占所有被預測為正常樣本數(shù)量的比例,計算公式如下:
召回率指被檢測為正常且檢測正確的樣本數(shù)量占所有正常樣本數(shù)量的比例,計算公式如下:
F1 值指精確率和召回率的加權調(diào)和平均值,計算公式如下:
首先在不同的學習率、增長率參數(shù)設置下進行實驗,以找到較為適合L-DenseNet 模型結構的參數(shù)設置,接下來將使用L-DenseNet 在VeReMi 數(shù)據(jù)集上進行實驗所得到的各攻擊類別精確率、召回率等評價指標與幾種現(xiàn)有模型進行對比分析,以說明L-DenseNet 應用于車載自組網(wǎng)場景時所具有的優(yōu)勢。
4.2.1 參數(shù)設置對實驗結果的影響
學習率是深度神經(jīng)網(wǎng)絡模型最重要的超參數(shù)之一,它通過調(diào)節(jié)模型權重更新的速度從而控制模型學習的進度。為了確定最佳學習率大小,本文在當學習率分別設置為0.001、0.005、0.01、0.05、0.1、0.5 時進行實驗,并將測試集上的準確率作為評價指標,實驗結果如圖5所示。
圖5 不同學習率設置下的測試集準確率
根據(jù)實驗數(shù)據(jù),當學習率取值為0.05 或0.1 時較為適合本模型結構。
此外,由于DenseNet 網(wǎng)絡的增長率參數(shù)控制著每個Dense Block 輸出的特征映射數(shù)量,因此增長率參數(shù)的取值大小也會對模型的準確率造成一定的影響。本文對增長率參數(shù)選取為8、16、24、32 的情況依次進行實驗,并將測試集上的準確率作為評價指標,實驗結果如圖6所示。
圖6 不同增長率設置下的測試集準確率
根據(jù)圖6 可知,在網(wǎng)絡深度一定的情況下,適當增加增長率可以在一定程度上使模型的準確率得到提升。但是增長率的增加也會引起模型參數(shù)量的急劇增加,當增長率取值為8、16、24、32 時,L-DenseNet的參數(shù)總量分別為18 622、59 342、123 102、209 902,需要結合實際應用中RSU 的存儲和計算能力在模型準確率和規(guī)模之間做出一定的權衡。
4.2.2 本文模型與其他模型性能對比分析
文獻[15]最初提出了VeReMi 數(shù)據(jù)集并且展示了它如何應用在入侵檢測場景中,文獻[16]使用傳統(tǒng)機器學習方法來對VeReMi 數(shù)據(jù)集中的攻擊類型進行分類檢測,文獻[17]提出了另外一種基于DenseNet 的多分類模型。本文將L-DenseNet 在VeReMi 數(shù)據(jù)集上進行實驗所得到的各攻擊類型精確率、召回率與文獻[15]、文獻[16]、文獻[17]相關的實驗結果進行對比,如表5 所示。
表5 中與文獻[15]、文獻[16]的對比結果說明,本文所提出的L-DenseNet 模型在VeReMi 數(shù)據(jù)集上各攻擊類型的檢測中均具有較高準確率;并且在各攻擊類型的精確率、召回率上可以看出,雖然文獻[15]對于Attack1、Attack4 的檢測精確率、召回率較高,但是其Attack2、Attack8 的精確率明顯低于平均水平。同理,文獻[16]中的模型在Attack2 和Attack16 的檢測上均表現(xiàn)欠佳,這反映出上述模型存在檢測準確率分布不均勻的問題,而本文所提出的L-DenseNet 模型對于上述5 種攻擊類型的檢測能力相對穩(wěn)定,避免了不同攻擊類型精確率、召回率等指標高低差別大的情況。特別是對于Attack2 和Attack16 的檢測,L-DenseNet 表現(xiàn)出了顯著優(yōu)越性。
表5 與文獻[17]的對比結果說明,本文在進一步縮減模型規(guī)模的基礎上仍然實現(xiàn)了令人滿意的準確率。文獻[17]同樣使用密集連接結構的神經(jīng)網(wǎng)絡,在各種攻擊類型的檢測上也取得了較為理想的效果,但是文獻[17]中的模型參數(shù)總量為448 746,增長率取值相同的情況下,本文所提出的L-DenseNet 參數(shù)總量僅為209 902,參數(shù)總量少于文獻[17]中模型的1/2,然而各攻擊類型的精確率、召回率均大于文獻[17]中的模型。另外,當增長率取值為8 時,本文模型的參數(shù)總量僅為18 622,訓練一個輪次耗時僅300 s,總體準確率卻可達到96.69%,這更加體現(xiàn)了L-DenseNet 模型輕便高效的特點。
表5 本文模型與其他現(xiàn)有模型對比
本文針對VANET 中的常見入侵行為進行研究,提出了L-DenseNet 模型以及相應的入侵檢測方法。L-DenseNet模型不僅保留了DenseNet 可以緩解梯度消失或者爆炸問題的優(yōu)點,同時降低了DenseNet 模型的架構復雜性,使其更適用于VANET 中簡單、高效的入侵行為檢測。此外,在VeReMi 數(shù)據(jù)集上對各類指標進行評估,與現(xiàn)有方案的對比分析表明,所提出的方案在準確率、計算開銷及存儲開銷等方面均優(yōu)于現(xiàn)有方案,在車載網(wǎng)絡場景下具有更高的可行性。