蔣玉長(zhǎng),徐 洋,,李克資,秦慶凱,張思聰,
1.貴州師范大學(xué) 貴州省信息與計(jì)算科學(xué)重點(diǎn)實(shí)驗(yàn)室,貴陽(yáng)550001
2.貴州省公安廳-貴州師范大學(xué)大數(shù)據(jù)及網(wǎng)絡(luò)安全發(fā)展研究中心,貴陽(yáng)550001
近年來(lái),汽車技術(shù)有了飛躍式的發(fā)展,隨著5G、工業(yè)2.0與移動(dòng)群智感知[1]的提出與推廣,特別是智能交通系統(tǒng)和自動(dòng)駕駛汽車的出現(xiàn),汽車本體逐漸開(kāi)始承擔(dān)部分計(jì)算任務(wù)。2020 年7 月27 日由國(guó)家標(biāo)準(zhǔn)化管理委員會(huì)、中共中央網(wǎng)絡(luò)安全和信息化委員會(huì)辦公室、國(guó)家發(fā)展和改革委員會(huì)、中華人民共和國(guó)科學(xué)技術(shù)部、中華人民共和國(guó)工業(yè)和信息化部聯(lián)合發(fā)布的《國(guó)家新一代人工智能標(biāo)準(zhǔn)體系建設(shè)指南》中關(guān)鍵內(nèi)容之一為“人工智能與車聯(lián)網(wǎng)的結(jié)合”。為了實(shí)現(xiàn)這一目標(biāo),研究者進(jìn)行了大量研究,如車載網(wǎng)絡(luò)通信[2]、車輛資源優(yōu)化[3]、車輛隱私保護(hù)[4]等。隨著物聯(lián)網(wǎng)(Internet of things,IoT)的飛速發(fā)展,大量傳感器支持部署在車輛上并支持相互通信,人們把車間通信網(wǎng)絡(luò)稱為車聯(lián)網(wǎng)(Internet of vehicles,IoV)。如圖1,汽車內(nèi)部與外界網(wǎng)絡(luò)的信息互動(dòng)日益頻繁,多個(gè)接口支持人們通過(guò)遠(yuǎn)程連接(藍(lán)牙、5G、物聯(lián)網(wǎng)協(xié)議)和有線連接方法與車輛連接,但這種多元信息交流極易導(dǎo)致車載網(wǎng)絡(luò)(in-vehicle network,IVN)成為攻擊目標(biāo)。
圖1 攻擊架構(gòu)Fig.1 Attack architecture
目前控制器區(qū)域網(wǎng)絡(luò)(controller area network,CAN)總線是被廣泛用于車載網(wǎng)絡(luò)的通信標(biāo)準(zhǔn),為電子控制單元(electronic control unit,ECU)之間提供有效、穩(wěn)定的信息溝通。但是CAN并沒(méi)有使用安全措施以保證網(wǎng)絡(luò)通信安全,如缺少認(rèn)證、明文傳輸?shù)萚5]。研究人員在遠(yuǎn)程控制汽車時(shí)利用CAN接收節(jié)點(diǎn)對(duì)源地址缺少認(rèn)證的漏洞實(shí)現(xiàn)攻擊,如通過(guò)偽造控制信息發(fā)送惡意指令破壞ECU,獲得對(duì)車輛的部分控制權(quán),最終導(dǎo)致汽車設(shè)備如齒輪、剎車或發(fā)動(dòng)機(jī)故障等[6]。如圖1所示,攻擊者可以通過(guò)OBD-II 接口對(duì)IVN 發(fā)起內(nèi)部攻擊,如拒絕服務(wù)攻擊、數(shù)據(jù)包注入和欺騙攻擊等。
為車載網(wǎng)絡(luò)提供保護(hù)已成為目前亟待解決的問(wèn)題,常用方法是惡意行為檢測(cè)和入侵檢測(cè),有基于簽名的方法、基于閾值的方法、基于參數(shù)檢測(cè)的方法以及基于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的方法[7]。
D’Angelo 等人[8]提出了一個(gè)基于集群的學(xué)習(xí)算法(cluster-based learning algorithm,CLA)來(lái)檢測(cè)對(duì)車載網(wǎng)絡(luò)的四種類型攻擊,并使用無(wú)監(jiān)督學(xué)習(xí)在CAN ID提取特征,此外還提出了一個(gè)以數(shù)據(jù)為中心的異常檢測(cè)算法(data-driven anomaly detection algorithm,DADA),用于找出非法消息。雖然作者聲稱算法性能支持實(shí)時(shí)檢測(cè)攻擊,但并沒(méi)有做相關(guān)實(shí)驗(yàn)證明。Ghaleb 等人[9]提出了一種惡意行為感知協(xié)作入侵檢測(cè)系統(tǒng)(misbehavioraware on-demand collaborative intrusion detection system,MA-CIDS)。該系統(tǒng)使用分布式集成學(xué)習(xí)來(lái)提高模型的性能,并提出了一種有效的共享方案,以提高共享知識(shí)并減少通信開(kāi)銷,車輛按需使用與分類器性能測(cè)量相關(guān)的隨機(jī)森林算法共享本地訓(xùn)練的分類器,但實(shí)驗(yàn)使用數(shù)據(jù)集NSL-KDD模擬網(wǎng)絡(luò)流量,該數(shù)據(jù)集較舊,新型網(wǎng)絡(luò)攻擊無(wú)法識(shí)別。Tariq 等人[10]提出了一種基于遷移學(xué)習(xí)的CAN 協(xié)議入侵檢測(cè)方案CANTransfer,使用DoS攻擊訓(xùn)練卷積LSTM模型。然后,在一個(gè)新攻擊樣本上使用遷移學(xué)習(xí)訓(xùn)練即可檢測(cè)新型攻擊。同上,作者并沒(méi)有說(shuō)明此方法的檢測(cè)時(shí)間,另外該方法需要找到新型攻擊樣本才能應(yīng)用遷移學(xué)習(xí),而目前領(lǐng)域數(shù)據(jù)集少,難以實(shí)現(xiàn)。Agrawal等人[11]提出了一種新型的閾值判別方法(novel anomaly detection system,NovelADS),使用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)和長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)處理數(shù)據(jù)為時(shí)間序列提取特征,通過(guò)正常序列和異常序列的標(biāo)準(zhǔn)分布差來(lái)確定閾值,最后在嵌入式開(kāi)發(fā)板上部署實(shí)現(xiàn)分類,但該方法只能支持二分類。Desta等人[12]提出了一種基于CNN的方法,在數(shù)據(jù)集Car-Hacking和自制數(shù)據(jù)集上將CAN 流量轉(zhuǎn)換為圖像,使用NVIDIA Jetson TX2對(duì)圖像分類,但多分類準(zhǔn)確率低,在Car-Hacking數(shù)據(jù)集上最低達(dá)到85%,自制數(shù)據(jù)集最低40%。
車載網(wǎng)絡(luò)入侵檢測(cè)要求低算力消耗和實(shí)時(shí)性,目前大多的解決方案并沒(méi)有在低算力平臺(tái)部署實(shí)驗(yàn)。此外,解決方案存在數(shù)據(jù)集舊、訓(xùn)練收斂時(shí)間長(zhǎng)、準(zhǔn)確率低、僅支持二分類、難以識(shí)別特定的惡意消息等問(wèn)題。
針對(duì)上述問(wèn)題,本文提出了一種基于優(yōu)化CNN 和遷移學(xué)習(xí)的輕量級(jí)車載網(wǎng)絡(luò)入侵檢測(cè)方法,并使用樹(shù)莓派部署在IVN的CAN總線上,用于檢測(cè)異常CAN信息并產(chǎn)生警報(bào)。首先提出了一種數(shù)據(jù)轉(zhuǎn)換方式,將車內(nèi)和車外網(wǎng)絡(luò)數(shù)據(jù)以基于時(shí)間的塊為單位進(jìn)行采集。接著通過(guò)維度變換將一維的攻擊數(shù)據(jù)轉(zhuǎn)換到二維空間,并將其可視化。然后,采用主流的卷積神經(jīng)網(wǎng)絡(luò)變體MobileNetV3[13],結(jié)合現(xiàn)在有效的遷移學(xué)習(xí)方式,通過(guò)遷移大模型預(yù)訓(xùn)練權(quán)重對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行微調(diào)訓(xùn)練,以改善模型的多種性能指標(biāo)。最后,使用Car-Hacking[14]、OTIDS[15]兩個(gè)真實(shí)車載網(wǎng)絡(luò)數(shù)據(jù)集在樹(shù)莓派上實(shí)驗(yàn),模擬真實(shí)環(huán)境下低算力平臺(tái),驗(yàn)證本文方法的有效性。
深度學(xué)習(xí)能自動(dòng)從原始數(shù)據(jù)中學(xué)習(xí)有用的特征,從而提高分類的準(zhǔn)確率。Lecun等[16]概括了機(jī)器學(xué)習(xí)的基本架構(gòu),即特征提取模塊和分類模塊的組合。本文提出的基于遷移學(xué)習(xí)和CNN的輕量級(jí)深度入侵檢測(cè)方法也基于此基本架構(gòu),如圖2所示,主要由兩個(gè)模塊組成:數(shù)據(jù)預(yù)處理模塊和基于遷移學(xué)習(xí)的深度卷積網(wǎng)絡(luò)模塊。
圖2 IVN入侵檢測(cè)方法框架Fig.2 IVN intrusion detection method architecture
入侵檢測(cè)流程如下:在IVN 中的CAN 總線上部署入侵檢測(cè)設(shè)備,車載網(wǎng)絡(luò)流量流入設(shè)備,經(jīng)過(guò)數(shù)據(jù)預(yù)處理后設(shè)備對(duì)流量進(jìn)行分類,對(duì)異常流量發(fā)出告警。
1.1.1 數(shù)據(jù)描述
CAN總線是目前汽車中最常用的車內(nèi)通信網(wǎng)絡(luò)協(xié)議。它是一個(gè)基于總線拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò),允許ECU(節(jié)點(diǎn))發(fā)送和接收與控制轉(zhuǎn)向、轉(zhuǎn)速有關(guān)的各種信息。每個(gè)節(jié)點(diǎn)以預(yù)先定義的框架格式向整個(gè)系統(tǒng)廣播消息。CAN數(shù)據(jù)幀結(jié)構(gòu)如圖3所示。從左到右,圖中的字段依次是:幀的開(kāi)始(start of frame)、仲裁ID(arbitration ID)、控制字段(control field)、數(shù)據(jù)字段(payload)、循環(huán)冗余校驗(yàn)(CRC)、確認(rèn)字段(ACK)和幀的結(jié)束字段。
圖3 CAN幀格式Fig.3 Frame format of CAN
1.1.2 數(shù)據(jù)預(yù)處理
在對(duì)數(shù)據(jù)進(jìn)行處理中發(fā)現(xiàn),大批量的數(shù)據(jù)流中會(huì)存在“臟數(shù)據(jù)”,即數(shù)據(jù)項(xiàng)缺失和數(shù)據(jù)項(xiàng)錯(cuò)誤移位的情況??紤]到真實(shí)環(huán)境也可能會(huì)出現(xiàn)采集數(shù)據(jù)部分錯(cuò)誤問(wèn)題,為了不影響訓(xùn)練和測(cè)試結(jié)果,防止數(shù)據(jù)被污染,需要將數(shù)據(jù)刪除或更改。首先對(duì)數(shù)據(jù)集進(jìn)行數(shù)據(jù)清洗。對(duì)于數(shù)據(jù)位置異常的原始樣本歸位并將遺漏數(shù)據(jù)全部置為0,刪除數(shù)據(jù)格式異常的原始樣本。
車載網(wǎng)絡(luò)入侵檢測(cè)必須快速且有效。鑒于CNN模型在圖像領(lǐng)域的優(yōu)越性,需要將入侵檢測(cè)問(wèn)題轉(zhuǎn)為圖像分類問(wèn)題,計(jì)劃將網(wǎng)絡(luò)流量數(shù)據(jù)的表格數(shù)據(jù)轉(zhuǎn)換為圖像。首先將表1的原始4個(gè)特征數(shù)據(jù)拆分并轉(zhuǎn)換為9個(gè)特征,拆分后結(jié)果如表2 和表3 所示。ID 是CAN 標(biāo)識(shí)符,CAN 數(shù)據(jù)包8 位Data 被分為8 列D0~D7,每列包含兩個(gè)十六進(jìn)制數(shù)值。將ID 與DATA 中的十六進(jìn)制轉(zhuǎn)換為十進(jìn)制數(shù)值,然后進(jìn)行數(shù)據(jù)歸一化。
表1 原始特征Table 1 Original features
表2 Car-Hacking數(shù)據(jù)集拆分后的特征Table 2 Split features of Car-Hacking dataset
表3 OTIDS數(shù)據(jù)集拆分后的特征Table 3 Split features of OTIDS dataset
數(shù)據(jù)歸一化后,根據(jù)網(wǎng)絡(luò)流量數(shù)據(jù)集的時(shí)間戳和特征大小將數(shù)據(jù)樣本轉(zhuǎn)換為數(shù)據(jù)塊。Car-Hacking和OTIDS數(shù)據(jù)集有9個(gè)重要特征(CAN ID和DATA[0]-DATA[7]),將27個(gè)連續(xù)樣本的9個(gè)特征(27×9=243個(gè)特征值)轉(zhuǎn)換為形狀為9×9×3的圖像(對(duì)比實(shí)驗(yàn)見(jiàn)第2.4.4小節(jié))。因此,每個(gè)變換后的圖像都是一個(gè)方形的彩色圖像,有3個(gè)通道(紅、綠、藍(lán))。由于圖像是根據(jù)數(shù)據(jù)樣本的時(shí)間戳生成的,可以保留原始網(wǎng)絡(luò)數(shù)據(jù)的時(shí)間序列相關(guān)性。
此外,由于流量數(shù)據(jù)維度較小,為減少模型可能發(fā)生的過(guò)擬合情況,采用雙線性插值法[17]將9×9×3的圖像擴(kuò)大到224×224×3,在轉(zhuǎn)換完畢后也可以將圖像直接輸入到下一步改進(jìn)的MobileNet中并進(jìn)行遷移學(xué)習(xí)。假設(shè)f(x,y)為要求得(x,y)數(shù)據(jù)點(diǎn)的像素值,已知f(Q11)、f(Q12)、f(Q21)、f(Q22)為(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2)坐標(biāo)所對(duì)應(yīng)數(shù)據(jù)點(diǎn)的像素值。采用的線性插值具體如下:
首先從x軸方向先用關(guān)于x的單線性插值去分別計(jì)算f(x,y1)與f(x,y2)的像素值:
再使用關(guān)于y方向的單線性插值計(jì)算得到(x,y)數(shù)據(jù)點(diǎn)的像素值f(x,y):
經(jīng)過(guò)以上的數(shù)據(jù)預(yù)處理過(guò)程,生成最終變換后的圖像集作為CNN模型的輸入。Car-Hacking數(shù)據(jù)集和OTIDS數(shù)據(jù)集中每種攻擊類型的代表性樣本如圖4所示。
圖4 維度變換后可視化Fig.4 Visualization after dimensional transformation
對(duì)于Car-Hacking數(shù)據(jù)集,從圖4(a)可以看出,正常樣本與不同攻擊類型之間的特征模式存在較大差異。模糊攻擊圖像的特征模式比普通圖像更隨機(jī),而DoS攻擊樣本為高頻空消息,導(dǎo)致純黑模式。Gear 和RPM 欺騙攻擊是通過(guò)注入帶有特定CAN ID和數(shù)據(jù)包的消息來(lái)偽裝成合法用戶,因此他們的圖像也有特定的特征模式。同樣,OTIDS數(shù)據(jù)集的攻擊模式也可以根據(jù)圖4(b)所示的特征模式進(jìn)行明顯的區(qū)分,但是相比Car-Hacking數(shù)據(jù)集,OTIDS數(shù)據(jù)集所對(duì)應(yīng)的圖像類別之間相對(duì)難以區(qū)分,但仍可以觀察到類別之間存在區(qū)別。
在將數(shù)據(jù)進(jìn)行處理并轉(zhuǎn)換為二維圖像之后,下一步將對(duì)分類模型進(jìn)行選取和訓(xùn)練。本文采用基于CNN的MobileNetV3 輕量級(jí)網(wǎng)絡(luò)對(duì)已處理好的數(shù)據(jù)進(jìn)行訓(xùn)練學(xué)習(xí)。MobileNet 系列深度學(xué)習(xí)模型[13,18-19]是由谷歌提出的輕量級(jí)網(wǎng)絡(luò),目的是使得算力有限的移動(dòng)終端能夠搭載并執(zhí)行端到端的神經(jīng)網(wǎng)絡(luò)模型,目前MobileNet 網(wǎng)絡(luò)從V1更新到V3版本。
任宇杰等[20]在目標(biāo)檢測(cè)領(lǐng)域研究中,結(jié)合MobileNet和SSD 提出一種結(jié)合特征金字塔的多尺度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),使得模型在降低硬件需求的同時(shí)降低了識(shí)別時(shí)間。曾婭琴等人[21]使用可視化方法并結(jié)合MobileNetV2對(duì)惡意代碼進(jìn)行分類,實(shí)驗(yàn)結(jié)果表明方法的識(shí)別率提升了2個(gè)百分點(diǎn),并減少了對(duì)計(jì)算資源的消耗。
由于每個(gè)數(shù)據(jù)流的特征數(shù)相對(duì)少,而原始MobileNet網(wǎng)絡(luò)深度過(guò)大,易引起過(guò)擬合的問(wèn)題。為保證訓(xùn)練的穩(wěn)定性和可靠性,本文使用經(jīng)過(guò)改進(jìn)的MobileNetV3網(wǎng)絡(luò)對(duì)流量特征所轉(zhuǎn)換的三通道圖進(jìn)行訓(xùn)練,結(jié)合車載網(wǎng)絡(luò)場(chǎng)景特點(diǎn),本文在原MobileNetV3模型的基礎(chǔ)上進(jìn)行部分調(diào)整,刪除在原始模型中部分Bottleneck層(詳見(jiàn)表4),保留了原模型的13 層。最終本文的MobileNet 的網(wǎng)絡(luò)結(jié)構(gòu)如表4和圖5所示。
表4 MobileNet網(wǎng)絡(luò)架構(gòu)細(xì)節(jié)Table 4 Details of MobileNet network architecture
圖5 神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.5 Structure of neural network model
在表4 中,灰色字體的網(wǎng)絡(luò)模塊是被刪除的模塊,包括灰色字體的所有模塊為原始MobileNet V3中的架構(gòu)。
MobileNetV3 是在V2 的基礎(chǔ)上改進(jìn)而來(lái),繼承V1的深度可分離卷積與V2 的具有線性瓶頸的殘差結(jié)構(gòu),V3版本相較于V2版本,基礎(chǔ)塊Bottleneck中引入SE模塊,類比于注意力機(jī)制,目的是針對(duì)不同貢獻(xiàn)度的特征進(jìn)行加權(quán)操作,即擴(kuò)大相關(guān)性高的特征,減小相關(guān)性低的特征大小,因此可以提高模型對(duì)于任務(wù)的各項(xiàng)指標(biāo)。具體的Bottleneck模塊細(xì)節(jié)見(jiàn)圖6。
圖6 Bottleneck架構(gòu)Fig.6 Structure of Bottleneck
在圖6 中Dwise 表示深度可分離卷積操作,其基本思想是將通道間的相關(guān)性和空間相關(guān)性完全分離出來(lái),以此減少計(jì)算量和參數(shù)量;NL表示非線性激活函數(shù)。
在模型確立之后,采用遷移學(xué)習(xí)對(duì)構(gòu)建好的網(wǎng)絡(luò)在本文數(shù)據(jù)集上進(jìn)行微調(diào)訓(xùn)練。對(duì)于深度學(xué)習(xí)模型,遷移學(xué)習(xí)是將在一個(gè)大數(shù)據(jù)集上訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)模型的權(quán)值遷移到另一個(gè)相對(duì)較小任務(wù)數(shù)據(jù)集的過(guò)程。在本文中,通過(guò)遷移MobileNetV3在ImageNet數(shù)據(jù)集上的預(yù)訓(xùn)練權(quán)重進(jìn)行微調(diào),凍結(jié)(保留權(quán)重)本文模型的前11層,對(duì)最后兩層的權(quán)重進(jìn)行微調(diào)。這是因?yàn)镃NN 模型的底層學(xué)習(xí)到的特征模式通常是通用模式,適用于許多不同的任務(wù),只有上層學(xué)習(xí)到的特征是特定數(shù)據(jù)集的特定特征。因此,CNN 模型的底層可以直接轉(zhuǎn)移到不同的任務(wù)。為了提高遷移學(xué)習(xí)的有效性,可以在深度學(xué)習(xí)(deep learning,DL)模型的遷移學(xué)習(xí)過(guò)程中進(jìn)行微調(diào)。在微調(diào)中,預(yù)訓(xùn)練模型的大多數(shù)層被凍結(jié),而少數(shù)頂層被解凍,以在新的數(shù)據(jù)集上重新訓(xùn)練模型。微調(diào)能夠更新預(yù)訓(xùn)練模型中的高階特征,以更好地適合目標(biāo)任務(wù)或數(shù)據(jù)集[22]。
實(shí)驗(yàn)使用Python3.7 中的Scikit-learn 和Pytorch 庫(kù)。在實(shí)驗(yàn)中,提出的DL模型在帶有AMD R5 5600X處理器、32 GB 內(nèi)存以及NVIDIA GeForce GTX 3060 顯卡的機(jī)器上訓(xùn)練,并在帶有Cortex-A72,64位CPU和8 GB內(nèi)存的樹(shù)莓派4B 機(jī)器上測(cè)試,分別代表一個(gè)車聯(lián)網(wǎng)中央服務(wù)器和一個(gè)車載級(jí)本地機(jī)器。
數(shù)據(jù)集選取韓國(guó)高麗大學(xué)HCRL 實(shí)驗(yàn)室的Car-Hacking數(shù)據(jù)集和OTIDS 數(shù)據(jù)集,由于采集源自真實(shí)環(huán)境,因此被廣泛用作模擬車載網(wǎng)絡(luò)數(shù)據(jù)入侵檢測(cè)研究。數(shù)據(jù)集作者采用定制的兩臺(tái)樹(shù)莓派在起亞SOUL 汽車上收集,一個(gè)用于信息入侵攻擊,另一個(gè)用于記錄CAN流量,捕獲的CAN 通信數(shù)據(jù)被作為數(shù)據(jù)集。Car-Hacking數(shù)據(jù)集包含四種攻擊類型:DoS 攻擊、Fuzzy 攻擊、齒輪(gear)欺騙和每分鐘轉(zhuǎn)數(shù)(RPM)欺騙攻擊。OTIDS 數(shù)據(jù)集包含三種類型攻擊:DoS攻擊、Fuzzy攻擊和Impersonation 攻擊。Car-Hacking 數(shù)據(jù)集和OTIDS 數(shù)據(jù)集攻擊數(shù)量分布如表5所示。
表5 攻擊數(shù)據(jù)組成Table 5 Attack data composition
數(shù)據(jù)集攻擊流量與正常數(shù)據(jù)不平衡,因此采用了多指標(biāo)進(jìn)行評(píng)估,分別是準(zhǔn)確率、精確度、召回率和F1-score。具體的計(jì)算方法如式(4)~(7)所示,公式中相關(guān)符號(hào)的含義如表6所示。
表6 混淆矩陣Table 6 Confusion matrix
此外,由于車輛通常計(jì)算性能較低,為了評(píng)估所提出方法的效率,更清晰地實(shí)現(xiàn)性能對(duì)比,本文還記錄和對(duì)比了訓(xùn)練時(shí)間(TrainTime)、在樹(shù)莓派上測(cè)試的時(shí)間(TestTime)、參數(shù)量(Params)。訓(xùn)練時(shí)間可以體現(xiàn)方法的收斂速度,測(cè)試時(shí)間可以體現(xiàn)方法的檢測(cè)效率,參數(shù)量可以體現(xiàn)方法使用的深度學(xué)習(xí)模型大小。
2.4.1 訓(xùn)練過(guò)程
深度學(xué)習(xí)模型過(guò)程中首先要在沒(méi)有任何先驗(yàn)知識(shí)的情況下對(duì)權(quán)重進(jìn)行隨機(jī)賦值,因此想要訓(xùn)練收斂需要非常大的數(shù)據(jù)量、時(shí)間和計(jì)算資源。為了提升訓(xùn)練的速度,同時(shí)保持訓(xùn)練的有效性,采用遷移學(xué)習(xí)方法。將在一個(gè)大數(shù)據(jù)集上訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)模型的權(quán)值遷移到另一個(gè)數(shù)據(jù)集,然后再進(jìn)行訓(xùn)練和微調(diào)以使得模型學(xué)習(xí)到新數(shù)據(jù)集的特征。
為了驗(yàn)證遷移學(xué)習(xí)在本文任務(wù)中的有效性,選取MobileNet 模型分別在Car-Hacking 和OTIDS 兩個(gè)數(shù)據(jù)集上進(jìn)行有無(wú)遷移學(xué)習(xí)的訓(xùn)練損失和準(zhǔn)確率對(duì)比,得到圖7和圖8。
圖7 針對(duì)Car-Hacking數(shù)據(jù)集訓(xùn)練對(duì)比結(jié)果Fig.7 Training comparison results against Car-Hacking dataset
圖8 針對(duì)OTIDS數(shù)據(jù)集訓(xùn)練對(duì)比結(jié)果Fig.8 Training comparison results against OTIDS dataset
通過(guò)圖7 和圖8 可以看出,使用預(yù)訓(xùn)練權(quán)重的模型訓(xùn)練過(guò)程需要更短的時(shí)間就可以收斂,而在效果基本一致的前提下,不使用遷移學(xué)習(xí)的訓(xùn)練工程需要更多的時(shí)間才能訓(xùn)練收斂。這驗(yàn)證了遷移學(xué)習(xí)對(duì)于本文任務(wù)的有效性。因此,在實(shí)驗(yàn)部分所有模型的訓(xùn)練都是采用遷移學(xué)習(xí)進(jìn)行訓(xùn)練。
2.4.2 深度學(xué)習(xí)模型對(duì)比
在基于遷移學(xué)習(xí)的卷積模型的選取上,本文目的是在保證一定檢測(cè)效率的基礎(chǔ)上進(jìn)行輕量化,以適應(yīng)在類似樹(shù)莓派這種低算力場(chǎng)景下的實(shí)時(shí)檢測(cè)任務(wù)。
為此,本文在數(shù)據(jù)預(yù)處理的前提下,選取兩類主流的模型:一類是復(fù)雜化的網(wǎng)絡(luò)模型,如EfficientNet[23]、ResNet[24]和VisionTransformer[25];二是輕量化模型,如MobileNetV3(簡(jiǎn)稱MobileNet)和ShuffleNetV2[26(]簡(jiǎn)稱ShuffleNet)。選取模型后分別針對(duì)本文任務(wù)所對(duì)應(yīng)的兩個(gè)數(shù)據(jù)集進(jìn)行模型的訓(xùn)練和測(cè)試,最終測(cè)試結(jié)果見(jiàn)表7和表8。
表7 針對(duì)Car-Hacking數(shù)據(jù)集測(cè)試結(jié)果Table 7 Test comparison results against Car-Hacking dataset
表8 針對(duì)OTIDS數(shù)據(jù)集測(cè)試結(jié)果Table 8 Test comparison results against OTIDS dataset
在表7和表8中Acc、P、R、F1-score和TestTime分別是在樹(shù)莓派設(shè)備上對(duì)測(cè)試集進(jìn)行實(shí)驗(yàn)得出的準(zhǔn)確率、精確率、召回率、F1 值和一個(gè)樣本的測(cè)試時(shí)間;TrainTime是在有GPU加持的PC機(jī)上進(jìn)行訓(xùn)練需要的時(shí)間;Params是卷積核的參數(shù)量,用來(lái)形容模型的大小程度。
通過(guò)表7和表8可以看出,在Car-Hacking和OTIDS兩個(gè)數(shù)據(jù)集上不同模型訓(xùn)練和測(cè)試結(jié)果的總體趨勢(shì)是,復(fù)雜模型的檢測(cè)效果是更優(yōu)且穩(wěn)定的,這是因?yàn)閺?fù)雜模型的網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)更復(fù)雜,導(dǎo)致模型擁有更復(fù)雜的擬合能力;但由于復(fù)雜模型Params過(guò)多,從而導(dǎo)致復(fù)雜模型的測(cè)試時(shí)間相比輕量化模型更長(zhǎng)。Params越低的網(wǎng)絡(luò),保存模型所需的內(nèi)存小,對(duì)硬件內(nèi)存要求較低,因此對(duì)低算力設(shè)備更友好。綜合5 個(gè)模型來(lái)看,MobileNet 的Params接近最低值2.28×106。
結(jié)合表7及圖4(a)可以分析得出,因?yàn)镃ar-Hacking數(shù)據(jù)集類別之間耦合性差,所以測(cè)試的5個(gè)模型都可以達(dá)到100%的檢測(cè)效果。但在訓(xùn)練時(shí)間上,MobileNet相比于復(fù)雜模型ResNet-18、EfficientNet 以及VisionTransformer分別減少了40%、74%和93%。相比ShuffleNet也減少了14%。同樣在測(cè)試時(shí)間上,MobileNet測(cè)試一個(gè)樣本的平均時(shí)間只需要2.5 ms,相比ShuffleNet減少了46%的檢測(cè)時(shí)間,且相比復(fù)雜模型中速度最快的ResNet-18更是減少了71%的時(shí)間,這得益于MobileNet與ResNet-18相比,Params減少了67%。
結(jié)合表8和圖4(b)可以看出,因?yàn)镺TIDS數(shù)據(jù)集類別之間相對(duì)難以區(qū)分,所以在測(cè)試的5 個(gè)模型中,復(fù)雜模型的檢測(cè)效果可以達(dá)到100%,輕量級(jí)模型達(dá)到99%以上。這是由于輕量化模型相比復(fù)雜模型減少了隱藏層數(shù)和多余的層連接,以此提升模型的處理速度。通過(guò)表8可以看出,兩個(gè)輕量級(jí)模型ShuffleNet和MobileNet得益于Params的減少,在滿足99%以上的檢測(cè)效果的前提下相比于復(fù)雜模型中檢測(cè)效果更快的ResNet-18模型分別降低了32%和59%的測(cè)試時(shí)間,提升了檢測(cè)效率。
車輛入侵檢測(cè)系統(tǒng)通常對(duì)實(shí)時(shí)性的要求為,針對(duì)每個(gè)數(shù)據(jù)包的檢測(cè)要低于10 ms[27],即入侵檢測(cè)系統(tǒng)需要在10 ms 以下的時(shí)間做出判斷和響應(yīng)。本文方法的檢測(cè)時(shí)間低于3 ms,因此本文提出的輕量級(jí)車載網(wǎng)絡(luò)入侵檢測(cè)方法能夠滿足實(shí)時(shí)檢測(cè)的需要。
2.4.3 不同方法效果對(duì)比
在對(duì)本文方法的可行性進(jìn)行實(shí)驗(yàn)驗(yàn)證和分析之后,為了驗(yàn)證本文方法相對(duì)于其他方法的效果,本小節(jié)分別在Car-Hacking和OTIDS兩個(gè)數(shù)據(jù)集下選取部分有代表性的論文方法進(jìn)行對(duì)比實(shí)驗(yàn),具體實(shí)驗(yàn)結(jié)果見(jiàn)表9和表10,其中最高性能值用粗體字標(biāo)出。
表9 Car-Hacking數(shù)據(jù)集上模型的性能評(píng)估Table 9 Performance evaluation of models on Car-Hacking dataset
表10 OTIDS數(shù)據(jù)集上模型的性能評(píng)估Table 10 Performance evaluation of models on OTIDS dataset
通過(guò)表9 和表10 可以看出,與其他方法相比,本文基于遷移學(xué)習(xí)和MobileNet的方法都取得了最好的成績(jī),兩個(gè)測(cè)試集上訓(xùn)練和測(cè)試都取得了100%的檢測(cè)效果,在保證性能指標(biāo)的前提下,減少了訓(xùn)練時(shí)間和測(cè)試時(shí)間,能夠更好地應(yīng)用到車載網(wǎng)絡(luò)移動(dòng)實(shí)時(shí)入侵檢測(cè)場(chǎng)景。
在表9 中,所有模型都達(dá)到了99%以上的檢測(cè)效果,這主要是因?yàn)镃ar-Hacking 數(shù)據(jù)集中正常模式和攻擊通過(guò)圖3 可以明顯區(qū)分,對(duì)比DCNN[14]、LSTM[14]、ConfidenceAveraging[28]、NovelADS[11],本文所提出的方法對(duì)比顯示出最好性能,其中提議方法訓(xùn)練時(shí)間對(duì)比同樣使用遷移學(xué)習(xí)的ConfidenceAveraging 方法時(shí)間減少了70%,測(cè)試時(shí)間減少了0.2 ms。對(duì)比使用閾值分類方法(NovelADS)訓(xùn)練時(shí)間減少了85%,測(cè)試時(shí)間減少了47%。
對(duì)于表10 中OTIDS 數(shù)據(jù)集,本文方法比OTIDS 基于時(shí)間的方法的測(cè)試指標(biāo)P、R、F1-score 都有提升,其中R提升了足足有28.32個(gè)百分點(diǎn)。本文還分別對(duì)比了最新方法CANintelliIDS[29]和CANTransfer[10],在P、R、F1-score分別有6.21個(gè)百分點(diǎn)、6.31個(gè)百分點(diǎn)、6.09個(gè)百分點(diǎn)和5.07 個(gè)百分點(diǎn)、4.43 個(gè)百分點(diǎn)、4.75 個(gè)百分點(diǎn)的明顯性能增益。遺憾的是,這些方法并沒(méi)有提供訓(xùn)練和測(cè)試時(shí)間,因此無(wú)法作對(duì)比,但是本文方法每個(gè)流量包只需要2.9 ms,已經(jīng)能夠滿足實(shí)時(shí)檢測(cè)的需要。
2.4.4 不同輸入大小對(duì)比
輸入大小是指將Car-Hacking和OTIDS數(shù)據(jù)集中連續(xù)樣本轉(zhuǎn)換為圖像的單位。從數(shù)據(jù)集中提取的9 個(gè)重要特征(CAN ID 和DATA[0]~DATA[7])按輸入大小分組,并把它們轉(zhuǎn)為圖像。為了驗(yàn)證最佳輸入大小,分別測(cè)試了9、18、27、54 的連續(xù)輸入樣本大小,即圖片輸入模型大小分別為3×9×3、6×9×3、9×9×3、18×9×3,使用MobileNet 作為訓(xùn)練和測(cè)試方法,使用準(zhǔn)確率作為評(píng)價(jià)指標(biāo),最終實(shí)驗(yàn)結(jié)果見(jiàn)圖9。
圖9 針對(duì)輸入大小MobileNet的準(zhǔn)確率Fig.9 Accuracy of MobileNet according to input size
圖9實(shí)驗(yàn)結(jié)果顯示,在Car-Hacking數(shù)據(jù)集中,在18個(gè)樣本輸入大小之前,準(zhǔn)確率一直提升直到100%,后面持續(xù)穩(wěn)定在100%的準(zhǔn)確率。而在OTIDS 數(shù)據(jù)集中,在27個(gè)樣本輸入大小之前,準(zhǔn)確率一直提升直到69%,但之后有下降的趨勢(shì)。不難看出,27個(gè)樣本輸入在車載網(wǎng)絡(luò)中更加具有普適性。因此本文將樣本輸入大小選擇為27。
此外,考慮到數(shù)據(jù)圖像進(jìn)行插值處理,可能對(duì)性能存在影響,在對(duì)比中選擇ResNet、EfficientNet、ShuffleNet、MobileNet 模型進(jìn)行非插值實(shí)驗(yàn),使用9×9×3 圖片輸入指定模型訓(xùn)練測(cè)試,與插值后的224×224×3圖片進(jìn)行性能對(duì)比。Car-Hacking數(shù)據(jù)集與OTIDS數(shù)據(jù)集實(shí)驗(yàn)結(jié)果分別見(jiàn)圖10、圖11。
圖10 Car-Hacking數(shù)據(jù)集插值對(duì)比Fig.10 Interpolation comparison on Car-Hacking dataset
通過(guò)圖10、圖11 可以看出,在Car-Hacking 數(shù)據(jù)集中,無(wú)論是插值還是非插值圖片輸入,都能表現(xiàn)出100%準(zhǔn)確率;而在OTIDS數(shù)據(jù)集非插值對(duì)比中,ResNet達(dá)到了最高準(zhǔn)確率84%,這得益于ResNet 的Params 較高,對(duì)復(fù)雜圖片擁有更好的擬合能力;對(duì)于測(cè)試時(shí)間,除了EfficentNet模型較高外,其他模型都達(dá)到了10 ms以下,符合車載網(wǎng)絡(luò)入侵檢測(cè)實(shí)時(shí)性要求,且MobileNet 模型的測(cè)試時(shí)間無(wú)論是插值前的2.9 ms還是插值后的2.7 ms,與其他模型相比都是最低測(cè)試時(shí)間。綜合來(lái)看,所有模型測(cè)試時(shí)間在插值前和插值后都相差不大,但是插值后準(zhǔn)確率得到了明顯提升。這是由于輸入圖片的尺寸越大,Backbone所提取的特征信息也越精確。
由于協(xié)議缺乏認(rèn)證和其他基本安全功能,廣泛使用的CAN協(xié)議使得汽車容易受到安全攻擊。本文結(jié)合流量可視化方法和輕量級(jí)的MobileNet 模型,提出一種輕量級(jí)車載網(wǎng)絡(luò)入侵檢測(cè)方法。通過(guò)將數(shù)據(jù)轉(zhuǎn)換為二維圖像并通過(guò)插值法進(jìn)行維度擴(kuò)大,之后對(duì)MobileNet 模型進(jìn)行架構(gòu)調(diào)整以進(jìn)一步適應(yīng)本文任務(wù),同時(shí)提升檢測(cè)效率。最后,通過(guò)遷移學(xué)習(xí)方式對(duì)模型進(jìn)行訓(xùn)練,以加快訓(xùn)練速度并提升檢測(cè)效果。實(shí)驗(yàn)結(jié)果表明,采用基于MobileNet 的網(wǎng)絡(luò)模型可以大幅減少訓(xùn)練和測(cè)試時(shí)間。本文方法解決了不支持低算力平臺(tái)部署、實(shí)時(shí)性檢測(cè)、數(shù)據(jù)集舊、訓(xùn)練收斂時(shí)間長(zhǎng)、準(zhǔn)確率低等問(wèn)題。下一步將考慮在真實(shí)場(chǎng)景下進(jìn)行測(cè)試,并面向?qū)崟r(shí)流檢測(cè)進(jìn)行探索研究。