吳 珊
(咸陽(yáng)職業(yè)技術(shù)學(xué)院汽車學(xué)院,陜西 咸陽(yáng) 712000)
車載網(wǎng)絡(luò)的發(fā)展為駕駛者提供了更豐富的功能,如汽車導(dǎo)航、輔助駕駛、車輛控制等。但伴隨汽車功能的增多,車載網(wǎng)絡(luò)也面臨巨大的安全挑戰(zhàn),如CAN(controller area network,控制器局域網(wǎng)絡(luò))總線攻擊等。為此,羅峰、盛銘等[1-2]根據(jù)汽車CAN總線報(bào)文數(shù)據(jù)域的特性,提出一種基于支持向量機(jī)的CAN總線報(bào)文異常檢測(cè)方法,從而有效檢測(cè)出報(bào)文中的異常數(shù)據(jù),提高了汽車行駛的安全性;王倩倩、柴艷娜等[3-4]通過(guò)研究網(wǎng)聯(lián)汽車自適應(yīng)巡航控制系統(tǒng)在隱蔽攻擊下的安全性,提出通過(guò)神經(jīng)網(wǎng)絡(luò)進(jìn)行入侵檢測(cè),結(jié)果表明該方法可快速且有效地檢測(cè)到車載網(wǎng)絡(luò)的入侵。但上述檢測(cè)方法采用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN),對(duì)計(jì)算機(jī)硬件的要求高,且檢測(cè)的準(zhǔn)確率還有待進(jìn)一步提高。為此,本文嘗試提出一種更為輕量化的車載網(wǎng)絡(luò)安全入侵檢測(cè)方法,并通過(guò)實(shí)驗(yàn)驗(yàn)證該方法的可行性。
CNN作為深度學(xué)習(xí)算法的一個(gè)重要分支,主要由卷積層、池化層和全連接層構(gòu)成,可用于圖像識(shí)別、語(yǔ)音識(shí)別等領(lǐng)域。其中,卷積層和池化層組成特征提取器,用于圖像特征提取和降維;全連接層為分類器,用于特征的分類。
卷積層主要負(fù)責(zé)提取圖片特征,其重要特點(diǎn)是通過(guò)卷積運(yùn)算增強(qiáng)原信號(hào)特征,降低噪聲。卷積運(yùn)算涉及到的主要參數(shù)包括卷積核大小、過(guò)濾器數(shù)量、卷積步長(zhǎng)。以二維圖像的卷積運(yùn)算為例,圖1中箭頭方向?yàn)閳D像運(yùn)算方向。設(shè)輸入圖像尺寸為5×5,卷積核大小為3×3,步長(zhǎng)為1,則卷積核在虛線框內(nèi)的卷積運(yùn)算為:2×1+1×1+1×1+3×1+1×1=8。
圖1 二維圖像卷積運(yùn)算過(guò)程
由圖1可知,通過(guò)卷積運(yùn)算可得輸出特征圖,相較于輸入圖像,卷積運(yùn)算后圖像尺寸發(fā)生了變化。若要得到與輸入圖像尺寸相同的輸出特征圖,需在輸入圖像周圍進(jìn)行填充,具體過(guò)程如圖2所示。
圖2 二維圖像卷積運(yùn)算的填充
圖2中,虛線框內(nèi)即為填充區(qū)域。通過(guò)填充操作,可得到與原始輸入圖像尺寸相同的輸出特征圖。
池化層的主要作用是保留重要特征,刪除冗余特征,以減少網(wǎng)絡(luò)的運(yùn)算參數(shù),包括平均池化操作和最大池化操作,具體如圖3所示。其中,最大池化操作是取池化核內(nèi)最大值為輸出特征圖對(duì)應(yīng)點(diǎn)的特征值;平均池化操作是取池化核內(nèi)所有像素值的平均數(shù)作為輸出特征圖對(duì)應(yīng)點(diǎn)的特征值。通常情況下,CNN網(wǎng)絡(luò)采用最大池化操作構(gòu)建池化層,故本文也選用最大池化方式。
圖3 最大池化和平均池化示意圖
經(jīng)池化層操作后,特征圖按軸展開為一維向量輸入全連接層,然后全連接層通過(guò)權(quán)值矩陣將向量值映射到其對(duì)應(yīng)的類別中,從而實(shí)現(xiàn)分類。全連接層的分類函數(shù)為:
y(x)=f(W×X+b)
(1)
式中:y(x)為全連層的輸出;f(·)表示激活函數(shù);W為權(quán)值矩陣;X和b分別為輸入向量和偏置向量。
根據(jù)CNN的基本原理可知,標(biāo)準(zhǔn)的CNN結(jié)構(gòu)簡(jiǎn)單、分類效果好。同時(shí),網(wǎng)絡(luò)結(jié)構(gòu)越復(fù)雜,圖像識(shí)別的質(zhì)量越高。但在具備以上優(yōu)點(diǎn)的同時(shí),對(duì)處理器的性能提出了更高的要求。因此,基于現(xiàn)有的處理器性能,如何構(gòu)建更為高效的CNN,成為思考的重點(diǎn)。超分辨率測(cè)試序列(visual geometry group,VGG)網(wǎng)絡(luò)是一種輕量的CNN,通常包括VGG-16和VGG-19兩種結(jié)構(gòu)。以VGG-16網(wǎng)絡(luò)為例,其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。VGG-16網(wǎng)絡(luò)輸入224×224×3大小的RGB彩色圖像,輸出圖像為1×1×1,共包含13 800萬(wàn)個(gè)參數(shù)。相較于標(biāo)準(zhǔn)的CNN,其預(yù)測(cè)效果更好,計(jì)算效率更高。
圖4 VGG-16網(wǎng)絡(luò)結(jié)構(gòu)
由于車載網(wǎng)絡(luò)入侵檢測(cè)的數(shù)據(jù)集大,且數(shù)據(jù)通常為一維時(shí)間序列,因此標(biāo)準(zhǔn)的VGG-16網(wǎng)絡(luò)難以對(duì)車載網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行特征提取和分類。為此進(jìn)行以下改進(jìn):利用地域自適應(yīng)保真算法(geographical adaptive fidelity,GAF)將車載網(wǎng)絡(luò)的一維時(shí)間序列數(shù)據(jù)轉(zhuǎn)化為二維矩陣,再轉(zhuǎn)換為圖像[5],對(duì)VGG-16網(wǎng)絡(luò)的參數(shù)和結(jié)構(gòu)進(jìn)行改進(jìn)[6],從而提高VGG-16網(wǎng)絡(luò)的效率。其中,改進(jìn)VGG-16網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
從圖5可知,VGG-16網(wǎng)絡(luò)的輸入序列長(zhǎng)度為64個(gè)時(shí)間步,所以首先采用GAF編碼,得到尺寸為64×64×1的圖像;然后經(jīng)過(guò)5層卷積層的卷積,使得每層卷積層過(guò)濾器減半;最后通過(guò)FC100全連接層輸出,并通過(guò)Sigmoid分類器進(jìn)行分類,輸出結(jié)果。
圖5 改進(jìn)VGG-16網(wǎng)絡(luò)結(jié)構(gòu)
在完成VGG-16網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn)的基礎(chǔ)上,還需對(duì)模型超參數(shù)進(jìn)行設(shè)定。本文從VGG網(wǎng)絡(luò)的損失函數(shù)、隱藏層激活函數(shù)、Sigmoid分類器、權(quán)值初始化等4個(gè)方面進(jìn)行設(shè)置,以構(gòu)建更為高效的CNN車載網(wǎng)絡(luò)入侵檢測(cè)模型,具體如下。
2.3.1損失函數(shù)
損失函數(shù)是通過(guò)梯度下降算法實(shí)現(xiàn)數(shù)據(jù)的擬合。由于初始狀態(tài)下網(wǎng)絡(luò)的預(yù)測(cè)值與真實(shí)值差異明顯,因此需通過(guò)網(wǎng)絡(luò)訓(xùn)練不斷調(diào)整和優(yōu)化網(wǎng)絡(luò)權(quán)值參數(shù),以使預(yù)測(cè)值接近或達(dá)到真實(shí)值。對(duì)此,本文選用交叉熵函數(shù)作為損失函數(shù),具體交叉熵函數(shù)為:
(2)
2.3.2隱藏層激活函數(shù)
為避免VGG-16網(wǎng)絡(luò)訓(xùn)練過(guò)程中出現(xiàn)梯度消失的問(wèn)題,采用Relu激活函數(shù)進(jìn)行修正[7]:
(3)
式中:x為輸入值。
由式(3)可知,Relu函數(shù)為分段線性函數(shù)。通過(guò)這種分段,保證了部分神經(jīng)元在正向傳播時(shí)不被激活,使網(wǎng)絡(luò)具有一定稀疏性,提高了網(wǎng)絡(luò)的計(jì)算效率。
2.3.3Sigmoid分類器
本文采用Sigmoid分類器作為改進(jìn)VGG-16網(wǎng)絡(luò)輸出層的分類器,具體表達(dá)式為:
(4)
2.3.4權(quán)值初始化
車載網(wǎng)絡(luò)入侵檢測(cè)實(shí)驗(yàn)的硬件環(huán)境為:處理器選用Intel core i7-9750H,內(nèi)存為12 GB,硬盤為1 T+256 GB,GPU選用NVIDIA GeForce GTX1650。軟件環(huán)境為:操作系統(tǒng)為Windows10,深度學(xué)習(xí)算法框架選擇Tensorflow2.2.0,編程工具選擇pyts0.11.0。
選用精準(zhǔn)率precision、召回率recall、F1值作為入侵檢測(cè)模型的評(píng)價(jià)指標(biāo),計(jì)算方法為 :
(5)
(6)
(7)
式中:TP表示真正例;TN表示真負(fù)例;FN表示假負(fù)例;FP表示假正例。
實(shí)驗(yàn)數(shù)據(jù)選自某現(xiàn)代Sonata2010款汽車收集的Dos Attack數(shù)據(jù)集和Fuzzy Attack數(shù)據(jù)集[9],這些數(shù)據(jù)集包括正常數(shù)據(jù)幀和注入攻擊的數(shù)據(jù)幀,具體分布如圖6所示。
根據(jù)圖6可知,Dos Attack數(shù)據(jù)集中,正常樣本占比83.6%,攻擊樣本占比16.7%;Fuzzy Attack數(shù)據(jù)集中正常樣本占87%,攻擊樣本占13%。
圖6 初始數(shù)據(jù)分布
為便于后續(xù)實(shí)驗(yàn),對(duì)Dos Attack數(shù)據(jù)集和Fuzzy Attack數(shù)據(jù)集依次進(jìn)行數(shù)據(jù)提取、類型轉(zhuǎn)換、編碼、序列分割、序列標(biāo)注、變換等預(yù)處理,具體操作步驟如下:
1)分別從Dos Attack數(shù)據(jù)集和Fuzzy Attack數(shù)據(jù)集中提取出CAN ID列和flag列,形成子集Dos ID和Fuzzy ID。
2)將Dos ID和Fuzzy ID中的十六進(jìn)制表示的ID轉(zhuǎn)換為十進(jìn)浮點(diǎn)數(shù)表示,并將其CAN ID值縮至-1~1,將flag中“R”標(biāo)簽編碼為0,“T”標(biāo)簽編碼為1。
3)將數(shù)據(jù)集分割為步長(zhǎng)64的序列,同時(shí)對(duì)其進(jìn)行75%的重疊處理和數(shù)據(jù)增強(qiáng)。
4)設(shè)置序列標(biāo)簽,若序列中沒有ID對(duì)應(yīng)的flag為1,則標(biāo)注為0,即正常序列;若序列中存在一個(gè)及以上ID對(duì)應(yīng)的flag為1,則標(biāo)注為1,即攻擊序列。
5)采用GAF編碼轉(zhuǎn)換每個(gè)CAN ID序列為矩陣,并添加通道軸,形成64×64×1的圖像,得到新的Dos Images數(shù)據(jù)集和Fuzzy Images數(shù)據(jù)集,其分布如圖7所示。由圖7可知,Dos Images數(shù)據(jù)集和Fuzzy Images數(shù)據(jù)集中的正負(fù)樣本比例的分布相較于初始數(shù)據(jù)集,數(shù)據(jù)的分布更為均勻,不同數(shù)據(jù)集下正常樣本和攻擊樣本的比例大致控制在7∶3,更為合理。
圖7 預(yù)處理后數(shù)據(jù)集樣本分布
CNN模型訓(xùn)練參數(shù)設(shè)置如下:學(xué)習(xí)率為0.001,min-batch為64,epoch為50,優(yōu)化器為Adam。
3.5.1算法驗(yàn)證
為驗(yàn)證所提GAF+改進(jìn)VGG-16網(wǎng)絡(luò)的車載網(wǎng)絡(luò)入侵檢測(cè)模型效果,分別在Dos Images數(shù)據(jù)集和Fuzzy Images數(shù)據(jù)集上進(jìn)行驗(yàn)證,結(jié)果如圖8所示。由圖8可知,改進(jìn)VGG-16檢測(cè)模型的收斂速度較快,沒有出現(xiàn)過(guò)擬合現(xiàn)象。
圖8 模型在數(shù)據(jù)集上的訓(xùn)練和驗(yàn)證曲線
3.5.2算法對(duì)比
為進(jìn)一步驗(yàn)證GAF+改進(jìn)VGG-16網(wǎng)絡(luò)的入侵檢測(cè)模型性能,將傳統(tǒng)的Reduced Inception-ResNet入侵檢測(cè)模型作為對(duì)照組進(jìn)行對(duì)比實(shí)驗(yàn)[10],結(jié)果見表1。由表1可知,本文提出的檢測(cè)模型在DoS Images數(shù)據(jù)集和Fuzzy Images數(shù)據(jù)集上檢測(cè)的準(zhǔn)確率均達(dá)到99%以上,且相較于Reduced Inception-ResNet網(wǎng)絡(luò)模型,F(xiàn)1指標(biāo)表現(xiàn)更好。由此說(shuō)明,本文提出的網(wǎng)絡(luò)檢測(cè)模型準(zhǔn)確率更高。
表1 不同模型在不同數(shù)據(jù)集上的性能對(duì)比
本文提出的GAF+改進(jìn)VGG-16的入侵檢測(cè)模型收斂速度較快,且收斂過(guò)程中沒有出現(xiàn)過(guò)擬合的現(xiàn)象。通過(guò)對(duì)比可以看出,本文提出的入侵檢測(cè)模型在不同數(shù)據(jù)集上的檢測(cè)準(zhǔn)確率都可達(dá)到99%以上,相較于傳統(tǒng)的Reduced Inception - ResNet入侵檢測(cè)模型,具有更高的識(shí)別準(zhǔn)確率。由此結(jié)果可以說(shuō)明,本文的改進(jìn)方案可行。