蔣玉長,徐 洋,,李克資,秦慶凱,張思聰,
1.貴州師范大學 貴州省信息與計算科學重點實驗室,貴陽550001
2.貴州省公安廳-貴州師范大學大數據及網絡安全發展研究中心,貴陽550001
近年來,汽車技術有了飛躍式的發展,隨著5G、工業2.0與移動群智感知[1]的提出與推廣,特別是智能交通系統和自動駕駛汽車的出現,汽車本體逐漸開始承擔部分計算任務。2020 年7 月27 日由國家標準化管理委員會、中共中央網絡安全和信息化委員會辦公室、國家發展和改革委員會、中華人民共和國科學技術部、中華人民共和國工業和信息化部聯合發布的《國家新一代人工智能標準體系建設指南》中關鍵內容之一為“人工智能與車聯網的結合”。為了實現這一目標,研究者進行了大量研究,如車載網絡通信[2]、車輛資源優化[3]、車輛隱私保護[4]等。隨著物聯網(Internet of things,IoT)的飛速發展,大量傳感器支持部署在車輛上并支持相互通信,人們把車間通信網絡稱為車聯網(Internet of vehicles,IoV)。如圖1,汽車內部與外界網絡的信息互動日益頻繁,多個接口支持人們通過遠程連接(藍牙、5G、物聯網協議)和有線連接方法與車輛連接,但這種多元信息交流極易導致車載網絡(in-vehicle network,IVN)成為攻擊目標。

圖1 攻擊架構Fig.1 Attack architecture
目前控制器區域網絡(controller area network,CAN)總線是被廣泛用于車載網絡的通信標準,為電子控制單元(electronic control unit,ECU)之間提供有效、穩定的信息溝通。但是CAN并沒有使用安全措施以保證網絡通信安全,如缺少認證、明文傳輸等[5]。研究人員在遠程控制汽車時利用CAN接收節點對源地址缺少認證的漏洞實現攻擊,如通過偽造控制信息發送惡意指令破壞ECU,獲得對車輛的部分控制權,最終導致汽車設備如齒輪、剎車或發動機故障等[6]。如圖1所示,攻擊者可以通過OBD-II 接口對IVN 發起內部攻擊,如拒絕服務攻擊、數據包注入和欺騙攻擊等。
為車載網絡提供保護已成為目前亟待解決的問題,常用方法是惡意行為檢測和入侵檢測,有基于簽名的方法、基于閾值的方法、基于參數檢測的方法以及基于機器學習和深度學習的方法[7]。
D’Angelo 等人[8]提出了一個基于集群的學習算法(cluster-based learning algorithm,CLA)來檢測對車載網絡的四種類型攻擊,并使用無監督學習在CAN ID提取特征,此外還提出了一個以數據為中心的異常檢測算法(data-driven anomaly detection algorithm,DADA),用于找出非法消息。雖然作者聲稱算法性能支持實時檢測攻擊,但并沒有做相關實驗證明。Ghaleb 等人[9]提出了一種惡意行為感知協作入侵檢測系統(misbehavioraware on-demand collaborative intrusion detection system,MA-CIDS)。該系統使用分布式集成學習來提高模型的性能,并提出了一種有效的共享方案,以提高共享知識并減少通信開銷,車輛按需使用與分類器性能測量相關的隨機森林算法共享本地訓練的分類器,但實驗使用數據集NSL-KDD模擬網絡流量,該數據集較舊,新型網絡攻擊無法識別。Tariq 等人[10]提出了一種基于遷移學習的CAN 協議入侵檢測方案CANTransfer,使用DoS攻擊訓練卷積LSTM模型。然后,在一個新攻擊樣本上使用遷移學習訓練即可檢測新型攻擊。同上,作者并沒有說明此方法的檢測時間,另外該方法需要找到新型攻擊樣本才能應用遷移學習,而目前領域數據集少,難以實現。Agrawal等人[11]提出了一種新型的閾值判別方法(novel anomaly detection system,NovelADS),使用卷積神經網絡(convolutional neural networks,CNN)和長短期記憶網絡(long short-term memory,LSTM)處理數據為時間序列提取特征,通過正常序列和異常序列的標準分布差來確定閾值,最后在嵌入式開發板上部署實現分類,但該方法只能支持二分類。Desta等人[12]提出了一種基于CNN的方法,在數據集Car-Hacking和自制數據集上將CAN 流量轉換為圖像,使用NVIDIA Jetson TX2對圖像分類,但多分類準確率低,在Car-Hacking數據集上最低達到85%,自制數據集最低40%。
車載網絡入侵檢測要求低算力消耗和實時性,目前大多的解決方案并沒有在低算力平臺部署實驗。此外,解決方案存在數據集舊、訓練收斂時間長、準確率低、僅支持二分類、難以識別特定的惡意消息等問題。
針對上述問題,本文提出了一種基于優化CNN 和遷移學習的輕量級車載網絡入侵檢測方法,并使用樹莓派部署在IVN的CAN總線上,用于檢測異常CAN信息并產生警報。首先提出了一種數據轉換方式,將車內和車外網絡數據以基于時間的塊為單位進行采集。接著通過維度變換將一維的攻擊數據轉換到二維空間,并將其可視化。然后,采用主流的卷積神經網絡變體MobileNetV3[13],結合現在有效的遷移學習方式,通過遷移大模型預訓練權重對卷積神經網絡進行微調訓練,以改善模型的多種性能指標。最后,使用Car-Hacking[14]、OTIDS[15]兩個真實車載網絡數據集在樹莓派上實驗,模擬真實環境下低算力平臺,驗證本文方法的有效性。
深度學習能自動從原始數據中學習有用的特征,從而提高分類的準確率。Lecun等[16]概括了機器學習的基本架構,即特征提取模塊和分類模塊的組合。本文提出的基于遷移學習和CNN的輕量級深度入侵檢測方法也基于此基本架構,如圖2所示,主要由兩個模塊組成:數據預處理模塊和基于遷移學習的深度卷積網絡模塊。

圖2 IVN入侵檢測方法框架Fig.2 IVN intrusion detection method architecture
入侵檢測流程如下:在IVN 中的CAN 總線上部署入侵檢測設備,車載網絡流量流入設備,經過數據預處理后設備對流量進行分類,對異常流量發出告警。
1.1.1 數據描述
CAN總線是目前汽車中最常用的車內通信網絡協議。它是一個基于總線拓撲結構的網絡,允許ECU(節點)發送和接收與控制轉向、轉速有關的各種信息。每個節點以預先定義的框架格式向整個系統廣播消息。CAN數據幀結構如圖3所示。從左到右,圖中的字段依次是:幀的開始(start of frame)、仲裁ID(arbitration ID)、控制字段(control field)、數據字段(payload)、循環冗余校驗(CRC)、確認字段(ACK)和幀的結束字段。

圖3 CAN幀格式Fig.3 Frame format of CAN
1.1.2 數據預處理
在對數據進行處理中發現,大批量的數據流中會存在“臟數據”,即數據項缺失和數據項錯誤移位的情況。考慮到真實環境也可能會出現采集數據部分錯誤問題,為了不影響訓練和測試結果,防止數據被污染,需要將數據刪除或更改。首先對數據集進行數據清洗。對于數據位置異常的原始樣本歸位并將遺漏數據全部置為0,刪除數據格式異常的原始樣本。
車載網絡入侵檢測必須快速且有效。鑒于CNN模型在圖像領域的優越性,需要將入侵檢測問題轉為圖像分類問題,計劃將網絡流量數據的表格數據轉換為圖像。首先將表1的原始4個特征數據拆分并轉換為9個特征,拆分后結果如表2 和表3 所示。ID 是CAN 標識符,CAN 數據包8 位Data 被分為8 列D0~D7,每列包含兩個十六進制數值。將ID 與DATA 中的十六進制轉換為十進制數值,然后進行數據歸一化。

表1 原始特征Table 1 Original features

表2 Car-Hacking數據集拆分后的特征Table 2 Split features of Car-Hacking dataset

表3 OTIDS數據集拆分后的特征Table 3 Split features of OTIDS dataset
數據歸一化后,根據網絡流量數據集的時間戳和特征大小將數據樣本轉換為數據塊。Car-Hacking和OTIDS數據集有9個重要特征(CAN ID和DATA[0]-DATA[7]),將27個連續樣本的9個特征(27×9=243個特征值)轉換為形狀為9×9×3的圖像(對比實驗見第2.4.4小節)。因此,每個變換后的圖像都是一個方形的彩色圖像,有3個通道(紅、綠、藍)。由于圖像是根據數據樣本的時間戳生成的,可以保留原始網絡數據的時間序列相關性。
此外,由于流量數據維度較小,為減少模型可能發生的過擬合情況,采用雙線性插值法[17]將9×9×3的圖像擴大到224×224×3,在轉換完畢后也可以將圖像直接輸入到下一步改進的MobileNet中并進行遷移學習。假設f(x,y)為要求得(x,y)數據點的像素值,已知f(Q11)、f(Q12)、f(Q21)、f(Q22)為(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2)坐標所對應數據點的像素值。采用的線性插值具體如下:
首先從x軸方向先用關于x的單線性插值去分別計算f(x,y1)與f(x,y2)的像素值:
再使用關于y方向的單線性插值計算得到(x,y)數據點的像素值f(x,y):
經過以上的數據預處理過程,生成最終變換后的圖像集作為CNN模型的輸入。Car-Hacking數據集和OTIDS數據集中每種攻擊類型的代表性樣本如圖4所示。

圖4 維度變換后可視化Fig.4 Visualization after dimensional transformation
對于Car-Hacking數據集,從圖4(a)可以看出,正常樣本與不同攻擊類型之間的特征模式存在較大差異。模糊攻擊圖像的特征模式比普通圖像更隨機,而DoS攻擊樣本為高頻空消息,導致純黑模式。Gear 和RPM 欺騙攻擊是通過注入帶有特定CAN ID和數據包的消息來偽裝成合法用戶,因此他們的圖像也有特定的特征模式。同樣,OTIDS數據集的攻擊模式也可以根據圖4(b)所示的特征模式進行明顯的區分,但是相比Car-Hacking數據集,OTIDS數據集所對應的圖像類別之間相對難以區分,但仍可以觀察到類別之間存在區別。
在將數據進行處理并轉換為二維圖像之后,下一步將對分類模型進行選取和訓練。本文采用基于CNN的MobileNetV3 輕量級網絡對已處理好的數據進行訓練學習。MobileNet 系列深度學習模型[13,18-19]是由谷歌提出的輕量級網絡,目的是使得算力有限的移動終端能夠搭載并執行端到端的神經網絡模型,目前MobileNet 網絡從V1更新到V3版本。
任宇杰等[20]在目標檢測領域研究中,結合MobileNet和SSD 提出一種結合特征金字塔的多尺度卷積神經網絡結構,使得模型在降低硬件需求的同時降低了識別時間。曾婭琴等人[21]使用可視化方法并結合MobileNetV2對惡意代碼進行分類,實驗結果表明方法的識別率提升了2個百分點,并減少了對計算資源的消耗。
由于每個數據流的特征數相對少,而原始MobileNet網絡深度過大,易引起過擬合的問題。為保證訓練的穩定性和可靠性,本文使用經過改進的MobileNetV3網絡對流量特征所轉換的三通道圖進行訓練,結合車載網絡場景特點,本文在原MobileNetV3模型的基礎上進行部分調整,刪除在原始模型中部分Bottleneck層(詳見表4),保留了原模型的13 層。最終本文的MobileNet 的網絡結構如表4和圖5所示。

表4 MobileNet網絡架構細節Table 4 Details of MobileNet network architecture

圖5 神經網絡模型結構Fig.5 Structure of neural network model
在表4 中,灰色字體的網絡模塊是被刪除的模塊,包括灰色字體的所有模塊為原始MobileNet V3中的架構。
MobileNetV3 是在V2 的基礎上改進而來,繼承V1的深度可分離卷積與V2 的具有線性瓶頸的殘差結構,V3版本相較于V2版本,基礎塊Bottleneck中引入SE模塊,類比于注意力機制,目的是針對不同貢獻度的特征進行加權操作,即擴大相關性高的特征,減小相關性低的特征大小,因此可以提高模型對于任務的各項指標。具體的Bottleneck模塊細節見圖6。

圖6 Bottleneck架構Fig.6 Structure of Bottleneck
在圖6 中Dwise 表示深度可分離卷積操作,其基本思想是將通道間的相關性和空間相關性完全分離出來,以此減少計算量和參數量;NL表示非線性激活函數。
在模型確立之后,采用遷移學習對構建好的網絡在本文數據集上進行微調訓練。對于深度學習模型,遷移學習是將在一個大數據集上訓練的深度神經網絡模型的權值遷移到另一個相對較小任務數據集的過程。在本文中,通過遷移MobileNetV3在ImageNet數據集上的預訓練權重進行微調,凍結(保留權重)本文模型的前11層,對最后兩層的權重進行微調。這是因為CNN 模型的底層學習到的特征模式通常是通用模式,適用于許多不同的任務,只有上層學習到的特征是特定數據集的特定特征。因此,CNN 模型的底層可以直接轉移到不同的任務。為了提高遷移學習的有效性,可以在深度學習(deep learning,DL)模型的遷移學習過程中進行微調。在微調中,預訓練模型的大多數層被凍結,而少數頂層被解凍,以在新的數據集上重新訓練模型。微調能夠更新預訓練模型中的高階特征,以更好地適合目標任務或數據集[22]。
實驗使用Python3.7 中的Scikit-learn 和Pytorch 庫。在實驗中,提出的DL模型在帶有AMD R5 5600X處理器、32 GB 內存以及NVIDIA GeForce GTX 3060 顯卡的機器上訓練,并在帶有Cortex-A72,64位CPU和8 GB內存的樹莓派4B 機器上測試,分別代表一個車聯網中央服務器和一個車載級本地機器。
數據集選取韓國高麗大學HCRL 實驗室的Car-Hacking數據集和OTIDS 數據集,由于采集源自真實環境,因此被廣泛用作模擬車載網絡數據入侵檢測研究。數據集作者采用定制的兩臺樹莓派在起亞SOUL 汽車上收集,一個用于信息入侵攻擊,另一個用于記錄CAN流量,捕獲的CAN 通信數據被作為數據集。Car-Hacking數據集包含四種攻擊類型:DoS 攻擊、Fuzzy 攻擊、齒輪(gear)欺騙和每分鐘轉數(RPM)欺騙攻擊。OTIDS 數據集包含三種類型攻擊:DoS攻擊、Fuzzy攻擊和Impersonation 攻擊。Car-Hacking 數據集和OTIDS 數據集攻擊數量分布如表5所示。

表5 攻擊數據組成Table 5 Attack data composition
數據集攻擊流量與正常數據不平衡,因此采用了多指標進行評估,分別是準確率、精確度、召回率和F1-score。具體的計算方法如式(4)~(7)所示,公式中相關符號的含義如表6所示。

表6 混淆矩陣Table 6 Confusion matrix
此外,由于車輛通常計算性能較低,為了評估所提出方法的效率,更清晰地實現性能對比,本文還記錄和對比了訓練時間(TrainTime)、在樹莓派上測試的時間(TestTime)、參數量(Params)。訓練時間可以體現方法的收斂速度,測試時間可以體現方法的檢測效率,參數量可以體現方法使用的深度學習模型大小。
2.4.1 訓練過程
深度學習模型過程中首先要在沒有任何先驗知識的情況下對權重進行隨機賦值,因此想要訓練收斂需要非常大的數據量、時間和計算資源。為了提升訓練的速度,同時保持訓練的有效性,采用遷移學習方法。將在一個大數據集上訓練的深度神經網絡模型的權值遷移到另一個數據集,然后再進行訓練和微調以使得模型學習到新數據集的特征。
為了驗證遷移學習在本文任務中的有效性,選取MobileNet 模型分別在Car-Hacking 和OTIDS 兩個數據集上進行有無遷移學習的訓練損失和準確率對比,得到圖7和圖8。

圖7 針對Car-Hacking數據集訓練對比結果Fig.7 Training comparison results against Car-Hacking dataset

圖8 針對OTIDS數據集訓練對比結果Fig.8 Training comparison results against OTIDS dataset
通過圖7 和圖8 可以看出,使用預訓練權重的模型訓練過程需要更短的時間就可以收斂,而在效果基本一致的前提下,不使用遷移學習的訓練工程需要更多的時間才能訓練收斂。這驗證了遷移學習對于本文任務的有效性。因此,在實驗部分所有模型的訓練都是采用遷移學習進行訓練。
2.4.2 深度學習模型對比
在基于遷移學習的卷積模型的選取上,本文目的是在保證一定檢測效率的基礎上進行輕量化,以適應在類似樹莓派這種低算力場景下的實時檢測任務。
為此,本文在數據預處理的前提下,選取兩類主流的模型:一類是復雜化的網絡模型,如EfficientNet[23]、ResNet[24]和VisionTransformer[25];二是輕量化模型,如MobileNetV3(簡稱MobileNet)和ShuffleNetV2[26(]簡稱ShuffleNet)。選取模型后分別針對本文任務所對應的兩個數據集進行模型的訓練和測試,最終測試結果見表7和表8。

表7 針對Car-Hacking數據集測試結果Table 7 Test comparison results against Car-Hacking dataset

表8 針對OTIDS數據集測試結果Table 8 Test comparison results against OTIDS dataset
在表7和表8中Acc、P、R、F1-score和TestTime分別是在樹莓派設備上對測試集進行實驗得出的準確率、精確率、召回率、F1 值和一個樣本的測試時間;TrainTime是在有GPU加持的PC機上進行訓練需要的時間;Params是卷積核的參數量,用來形容模型的大小程度。
通過表7和表8可以看出,在Car-Hacking和OTIDS兩個數據集上不同模型訓練和測試結果的總體趨勢是,復雜模型的檢測效果是更優且穩定的,這是因為復雜模型的網絡架構設計更復雜,導致模型擁有更復雜的擬合能力;但由于復雜模型Params過多,從而導致復雜模型的測試時間相比輕量化模型更長。Params越低的網絡,保存模型所需的內存小,對硬件內存要求較低,因此對低算力設備更友好。綜合5 個模型來看,MobileNet 的Params接近最低值2.28×106。
結合表7及圖4(a)可以分析得出,因為Car-Hacking數據集類別之間耦合性差,所以測試的5個模型都可以達到100%的檢測效果。但在訓練時間上,MobileNet相比于復雜模型ResNet-18、EfficientNet 以及VisionTransformer分別減少了40%、74%和93%。相比ShuffleNet也減少了14%。同樣在測試時間上,MobileNet測試一個樣本的平均時間只需要2.5 ms,相比ShuffleNet減少了46%的檢測時間,且相比復雜模型中速度最快的ResNet-18更是減少了71%的時間,這得益于MobileNet與ResNet-18相比,Params減少了67%。
結合表8和圖4(b)可以看出,因為OTIDS數據集類別之間相對難以區分,所以在測試的5 個模型中,復雜模型的檢測效果可以達到100%,輕量級模型達到99%以上。這是由于輕量化模型相比復雜模型減少了隱藏層數和多余的層連接,以此提升模型的處理速度。通過表8可以看出,兩個輕量級模型ShuffleNet和MobileNet得益于Params的減少,在滿足99%以上的檢測效果的前提下相比于復雜模型中檢測效果更快的ResNet-18模型分別降低了32%和59%的測試時間,提升了檢測效率。
車輛入侵檢測系統通常對實時性的要求為,針對每個數據包的檢測要低于10 ms[27],即入侵檢測系統需要在10 ms 以下的時間做出判斷和響應。本文方法的檢測時間低于3 ms,因此本文提出的輕量級車載網絡入侵檢測方法能夠滿足實時檢測的需要。
2.4.3 不同方法效果對比
在對本文方法的可行性進行實驗驗證和分析之后,為了驗證本文方法相對于其他方法的效果,本小節分別在Car-Hacking和OTIDS兩個數據集下選取部分有代表性的論文方法進行對比實驗,具體實驗結果見表9和表10,其中最高性能值用粗體字標出。

表9 Car-Hacking數據集上模型的性能評估Table 9 Performance evaluation of models on Car-Hacking dataset

表10 OTIDS數據集上模型的性能評估Table 10 Performance evaluation of models on OTIDS dataset
通過表9 和表10 可以看出,與其他方法相比,本文基于遷移學習和MobileNet的方法都取得了最好的成績,兩個測試集上訓練和測試都取得了100%的檢測效果,在保證性能指標的前提下,減少了訓練時間和測試時間,能夠更好地應用到車載網絡移動實時入侵檢測場景。
在表9 中,所有模型都達到了99%以上的檢測效果,這主要是因為Car-Hacking 數據集中正常模式和攻擊通過圖3 可以明顯區分,對比DCNN[14]、LSTM[14]、ConfidenceAveraging[28]、NovelADS[11],本文所提出的方法對比顯示出最好性能,其中提議方法訓練時間對比同樣使用遷移學習的ConfidenceAveraging 方法時間減少了70%,測試時間減少了0.2 ms。對比使用閾值分類方法(NovelADS)訓練時間減少了85%,測試時間減少了47%。
對于表10 中OTIDS 數據集,本文方法比OTIDS 基于時間的方法的測試指標P、R、F1-score 都有提升,其中R提升了足足有28.32個百分點。本文還分別對比了最新方法CANintelliIDS[29]和CANTransfer[10],在P、R、F1-score分別有6.21個百分點、6.31個百分點、6.09個百分點和5.07 個百分點、4.43 個百分點、4.75 個百分點的明顯性能增益。遺憾的是,這些方法并沒有提供訓練和測試時間,因此無法作對比,但是本文方法每個流量包只需要2.9 ms,已經能夠滿足實時檢測的需要。
2.4.4 不同輸入大小對比
輸入大小是指將Car-Hacking和OTIDS數據集中連續樣本轉換為圖像的單位。從數據集中提取的9 個重要特征(CAN ID 和DATA[0]~DATA[7])按輸入大小分組,并把它們轉為圖像。為了驗證最佳輸入大小,分別測試了9、18、27、54 的連續輸入樣本大小,即圖片輸入模型大小分別為3×9×3、6×9×3、9×9×3、18×9×3,使用MobileNet 作為訓練和測試方法,使用準確率作為評價指標,最終實驗結果見圖9。

圖9 針對輸入大小MobileNet的準確率Fig.9 Accuracy of MobileNet according to input size
圖9實驗結果顯示,在Car-Hacking數據集中,在18個樣本輸入大小之前,準確率一直提升直到100%,后面持續穩定在100%的準確率。而在OTIDS 數據集中,在27個樣本輸入大小之前,準確率一直提升直到69%,但之后有下降的趨勢。不難看出,27個樣本輸入在車載網絡中更加具有普適性。因此本文將樣本輸入大小選擇為27。
此外,考慮到數據圖像進行插值處理,可能對性能存在影響,在對比中選擇ResNet、EfficientNet、ShuffleNet、MobileNet 模型進行非插值實驗,使用9×9×3 圖片輸入指定模型訓練測試,與插值后的224×224×3圖片進行性能對比。Car-Hacking數據集與OTIDS數據集實驗結果分別見圖10、圖11。

圖10 Car-Hacking數據集插值對比Fig.10 Interpolation comparison on Car-Hacking dataset
通過圖10、圖11 可以看出,在Car-Hacking 數據集中,無論是插值還是非插值圖片輸入,都能表現出100%準確率;而在OTIDS數據集非插值對比中,ResNet達到了最高準確率84%,這得益于ResNet 的Params 較高,對復雜圖片擁有更好的擬合能力;對于測試時間,除了EfficentNet模型較高外,其他模型都達到了10 ms以下,符合車載網絡入侵檢測實時性要求,且MobileNet 模型的測試時間無論是插值前的2.9 ms還是插值后的2.7 ms,與其他模型相比都是最低測試時間。綜合來看,所有模型測試時間在插值前和插值后都相差不大,但是插值后準確率得到了明顯提升。這是由于輸入圖片的尺寸越大,Backbone所提取的特征信息也越精確。
由于協議缺乏認證和其他基本安全功能,廣泛使用的CAN協議使得汽車容易受到安全攻擊。本文結合流量可視化方法和輕量級的MobileNet 模型,提出一種輕量級車載網絡入侵檢測方法。通過將數據轉換為二維圖像并通過插值法進行維度擴大,之后對MobileNet 模型進行架構調整以進一步適應本文任務,同時提升檢測效率。最后,通過遷移學習方式對模型進行訓練,以加快訓練速度并提升檢測效果。實驗結果表明,采用基于MobileNet 的網絡模型可以大幅減少訓練和測試時間。本文方法解決了不支持低算力平臺部署、實時性檢測、數據集舊、訓練收斂時間長、準確率低等問題。下一步將考慮在真實場景下進行測試,并面向實時流檢測進行探索研究。