李思涌 吳書漢 孫 偉
(中山大學(xué)電子與信息工程學(xué)院 廣州 510275)
隨著數(shù)字化智能化社會(huì)的發(fā)展,智能聯(lián)網(wǎng)汽車近年受到廣大消費(fèi)者的青睞,據(jù)國(guó)際數(shù)據(jù)公司IDC預(yù)測(cè),2025年全球網(wǎng)聯(lián)汽車銷售規(guī)模將達(dá)到7830萬輛.為了給駕駛者提供更加舒適、便捷、智能化的駕駛體驗(yàn),新一代汽車在駕駛器內(nèi)部加裝了更多的電子元器件,包括實(shí)現(xiàn)自動(dòng)駕駛所需要的各類傳感器,以及提供更多娛樂功能所需要的多媒體設(shè)備,這使車內(nèi)電子控制單元(electronic control unit, ECU)的數(shù)量激增.同時(shí),大部分新一代汽車具備了接入互聯(lián)網(wǎng)的能力,也可以通過藍(lán)牙、WiFi等通信手段與手機(jī)APP匹配連接.但是復(fù)雜的車內(nèi)網(wǎng)絡(luò)和外部網(wǎng)絡(luò)接口帶來了新的安全隱患.攻擊者可以通過多種方式接入車內(nèi)網(wǎng)絡(luò),竊聽網(wǎng)絡(luò)通信并隨意注入惡意信息,達(dá)到控制車輛或擾亂車輛正常行駛的目的[1-4].
控制器局域網(wǎng)(controller area network, CAN)是一種串行通信網(wǎng)絡(luò),在具有極其簡(jiǎn)單的結(jié)構(gòu)的同時(shí)又能夠保證網(wǎng)絡(luò)節(jié)點(diǎn)之間通信的實(shí)時(shí)性和可靠性.但是由于CAN通信協(xié)議在設(shè)計(jì)時(shí)并沒有考慮任何的安全機(jī)制,非常容易遭受惡意攻擊.目前針對(duì)CAN總線的入侵檢測(cè)系統(tǒng)(intrusion detection system, IDS)種類繁多,總體可以分為基于傳統(tǒng)方法與基于機(jī)器學(xué)習(xí)的入侵檢測(cè)系統(tǒng)2大類.本文將提出一種基于機(jī)器學(xué)習(xí)的入侵檢測(cè)算法,結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)與長(zhǎng)短時(shí)記憶(long short term memory, LSTM)網(wǎng)絡(luò)進(jìn)行特征提取與學(xué)習(xí),并融合了注意力機(jī)制以最大程度利用時(shí)序數(shù)據(jù)的特性.
CAN總線的物理結(jié)構(gòu)極為簡(jiǎn)單,僅包括2根線路,分別命名為CAN_L和CAN_H,這種結(jié)構(gòu)如圖1所示:
圖1 CAN總線結(jié)構(gòu)
車內(nèi)網(wǎng)絡(luò)中的ECU作為節(jié)點(diǎn)并聯(lián)在CAN總線上,并通過廣播互相通信,即任一節(jié)點(diǎn)發(fā)送的消息幀都可以被網(wǎng)絡(luò)上的所有節(jié)點(diǎn)接收.節(jié)點(diǎn)通過過濾器判斷是否需要處理收到的消息幀.
CAN通信技術(shù)規(guī)范提供了2種消息幀格式,分別是CAN2.0A的標(biāo)準(zhǔn)幀和CAN2.0B的擴(kuò)展幀.圖2示出符合CAN2.0A規(guī)范的標(biāo)準(zhǔn)幀的部分構(gòu)成:
圖2 CAN2.0A標(biāo)準(zhǔn)幀格式
其含義及作用如下.
1) ID:標(biāo)識(shí)符.長(zhǎng)度為11b,通常記為3位十六進(jìn)制數(shù),如“0x123”.ID在消息幀的過濾和沖突仲裁中發(fā)揮重要作用.由于CAN總線采用廣播傳輸機(jī)制而非尋址機(jī)制,因此每個(gè)節(jié)點(diǎn)需要使用標(biāo)識(shí)符篩選自己需要的消息幀,并標(biāo)記自己發(fā)送的消息幀,以便接收方正確識(shí)別.CAN總線在多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送信息產(chǎn)生沖突時(shí)進(jìn)行仲裁而非取消發(fā)送,通過位仲裁的方式,由高位向低位比較ID的二進(jìn)制值,且指定“0”的優(yōu)先級(jí)高于“1”,即ID數(shù)值越小的幀擁有越高的優(yōu)先級(jí),確保高優(yōu)先級(jí)報(bào)文可以盡快發(fā)送.
2) DLC:數(shù)據(jù)長(zhǎng)度代碼.表明數(shù)據(jù)域長(zhǎng)度的值,長(zhǎng)度為4b,合法值范圍為0~8,對(duì)應(yīng)數(shù)據(jù)域的長(zhǎng)度為0~64b.
3) 數(shù)據(jù)域,消息幀實(shí)際傳輸?shù)挠行?nèi)容.最長(zhǎng)為64b,通常記為16位十六進(jìn)制數(shù).數(shù)據(jù)域是消息幀中長(zhǎng)度最長(zhǎng)也是最重要的部分,其中包含物理信號(hào)、檢驗(yàn)信號(hào)、狀態(tài)信號(hào)、計(jì)數(shù)信號(hào)等,有很大的利用價(jià)值.然而,不同ID的消息幀包含的信號(hào)完全由車企自由劃定,并且配置文件出于安全考慮無法公開.因此對(duì)研究者而言,數(shù)據(jù)域的內(nèi)容在沒有先驗(yàn)知識(shí)的情況下觀察起來非常困難.
隨著智能汽車功能的不斷拓展,車內(nèi)網(wǎng)絡(luò)已經(jīng)具備連接至外部網(wǎng)絡(luò)的能力.這也為攻擊者提供了機(jī)會(huì),他們可以通過外部網(wǎng)絡(luò)接口進(jìn)入車內(nèi)網(wǎng)絡(luò)進(jìn)行監(jiān)聽或者注入攻擊[5-7].Miller等人[8]成功通過WiFi端口攻入了Jeep Cherokee車型的內(nèi)部網(wǎng)絡(luò),奪取了車輛重要功能的控制權(quán)限,如剎車和引擎控制,導(dǎo)致Jeep公司召回了140萬輛相關(guān)汽車.Hoppe等人[9]通過對(duì)CAN總線實(shí)施特定類型的攻擊,成功控制車窗升降、警示燈閃爍和ABS等功能.Woo等人[10]通過發(fā)布惡意的手機(jī)APP連接至車內(nèi)網(wǎng)絡(luò),成功實(shí)現(xiàn)遠(yuǎn)程攻擊車輛.
不論是通過外部接口接入網(wǎng)絡(luò)還是挾持控制車內(nèi)ECU,攻擊者都是通過注入惡意消息幀的方式攻擊CAN總線.在已知的攻擊模式中共有4種方式,具體如下:
1) 泛洪攻擊.正如前文所述,在CAN總線沖突仲裁中,ID值越小的幀優(yōu)先級(jí)越高,因此ID為“0x000”的消息幀具有最高的優(yōu)先級(jí).如果攻擊者持續(xù)高頻率地注入ID為“0x000”的消息幀,CAN總線將長(zhǎng)時(shí)間處于占用狀態(tài),從而使通信陷入癱瘓.
2) 模糊攻擊.通常在攻擊者沒有事先獲取目標(biāo)車輛CAN總線信息的情況下進(jìn)行.在這種攻擊中,攻擊者會(huì)生成完全隨機(jī)的ID和數(shù)據(jù)域值組合成數(shù)據(jù)幀,然后將其高頻率地注入到CAN總線上.模糊攻擊常常被用來探測(cè)CAN總線上的潛在漏洞,同時(shí)也可以用來干擾或擾亂目標(biāo)車輛的正常運(yùn)行.
3) 偽造攻擊.該攻擊模式下,攻擊者常常選擇2~3個(gè)合法ID進(jìn)行幀注入,數(shù)據(jù)域?yàn)槿?或隨機(jī)值.偽造攻擊可以引發(fā)某些特定的車輛異常.
4) 重放攻擊.攻擊者在監(jiān)聽CAN總線正常通信時(shí),截取一段通信并直接重新注入至總線.重放攻擊是一種針對(duì)性非常強(qiáng)的攻擊,可以通過重放對(duì)應(yīng)通信來強(qiáng)制復(fù)現(xiàn)目標(biāo)活動(dòng).同時(shí)重放攻擊也是檢測(cè)難度最大的一種攻擊,因?yàn)槠渑c正常通信相似度非常高,混入正常通信中難以辨別.
Kang等人[11]首次提出了基于深度神經(jīng)網(wǎng)絡(luò)(deep neural network, DNN)的CAN總線入侵檢測(cè)技術(shù).在該方法中,每條消息幀的64b數(shù)據(jù)域內(nèi)容被作為網(wǎng)絡(luò)的輸入特征向量,經(jīng)過神經(jīng)網(wǎng)絡(luò)最終輸出二分類結(jié)果,檢測(cè)是否發(fā)生入侵.Amato等人[12]對(duì)基于DNN的方法進(jìn)行了更加深入的研究,分析了不同的隱藏層層數(shù)(即網(wǎng)絡(luò)深度)對(duì)檢測(cè)性能的影響.
Wasicek等人[13]提出了一種基于人工神經(jīng)網(wǎng)絡(luò)(artificial neural network, ANN)的入侵檢測(cè)技術(shù).在訓(xùn)練階段,他們利用有關(guān)信息幀數(shù)據(jù)域的先驗(yàn)知識(shí),提取出具有相關(guān)性的數(shù)據(jù),處理后形成特征向量.文中使用具有瓶頸結(jié)構(gòu)的ANN,以特征向量為輸入,以重構(gòu)輸入的特征向量為輸出,并以輸出向量和原始輸入向量的差值構(gòu)建損失函數(shù).
Taylor等人[14]首次提出LSTM的CAN通信異常檢測(cè)方法.文中將當(dāng)前幀的64b數(shù)據(jù)域內(nèi)容xi作為網(wǎng)絡(luò)的輸入向量,經(jīng)過2層全連接層后,進(jìn)一步通過2層堆疊的LSTM網(wǎng)絡(luò),最終得到輸出向量.輸出向量yi同為64b,是對(duì)xi+1的預(yù)測(cè).Hossain等人[15]深入探討了LSTM網(wǎng)絡(luò)與DNN組合的網(wǎng)絡(luò)架構(gòu)在CAN入侵檢測(cè)的性能表現(xiàn).
Hanselmann等人[16]提出了名為CANet的方法,該方法針對(duì)特定ID的消息幀中的信號(hào)進(jìn)行檢測(cè).這些特定ID構(gòu)成1個(gè)集合,其中每個(gè)ID都有1個(gè)對(duì)應(yīng)的子LSTM網(wǎng)絡(luò).這些子網(wǎng)絡(luò)的目標(biāo)是重構(gòu)原始輸入中考察ID的對(duì)應(yīng)信號(hào),并計(jì)算損失以檢測(cè)異常.
本文提出了一種基于帶注意力機(jī)制的卷積-長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的CAN總線入侵檢測(cè)方法.本節(jié)將首先簡(jiǎn)要介紹LSTM神經(jīng)網(wǎng)絡(luò)的原理,隨后闡述數(shù)據(jù)預(yù)處理方法,最后概述模型的結(jié)構(gòu)思路.
CAN總線的通信數(shù)據(jù)自帶時(shí)序性的特性,因此基于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)的方法在近年的研究中被證明在CAN總線入侵檢測(cè)任務(wù)中表現(xiàn)出良好的性能.其中,基于LSTM網(wǎng)絡(luò)的方法尤其顯著有效.
LSTM網(wǎng)絡(luò)是對(duì)傳統(tǒng)RNN的改進(jìn),主要解決傳統(tǒng)RNN的梯度消失或梯度爆炸問題,其中引入了3種門控結(jié)構(gòu),分別為輸入門、遺忘門和輸出門,每個(gè)門的輸入均為當(dāng)前時(shí)刻輸入與上個(gè)時(shí)刻輸出的組合,體現(xiàn)其記憶性.內(nèi)部狀態(tài)通過固定權(quán)重的自連接邊在相鄰時(shí)刻中傳播,其中包含的信息可以無衰減和無增長(zhǎng)地傳播至下一時(shí)刻.
CAN總線的傳輸速度可以高達(dá)1Mbps,但并非所有傳輸內(nèi)容都對(duì)入侵檢測(cè)具有重要意義,許多信息對(duì)入侵檢測(cè)并沒有實(shí)際意義.盡管如前文所述,數(shù)據(jù)域內(nèi)容的含義通常不清楚,難以精確解釋,但本文仍希望從數(shù)據(jù)域中學(xué)習(xí)CAN總線通信的某些模式.因此,本文同時(shí)考慮消息幀的ID部分和數(shù)據(jù)域部分,采用基于二進(jìn)制轉(zhuǎn)換的方法構(gòu)建CAN數(shù)據(jù)圖像,如圖3所示:
圖3 CAN數(shù)據(jù)轉(zhuǎn)化為圖像方法
首先,提取所有消息幀的ID及數(shù)據(jù)域部分,形成一個(gè)時(shí)間序列.對(duì)于每條消息幀,將其3位十六進(jìn)制的ID和16位十六進(jìn)制的數(shù)據(jù)域部分進(jìn)行二進(jìn)制轉(zhuǎn)換.如果數(shù)據(jù)域長(zhǎng)度不足64b,則進(jìn)行高位補(bǔ)0操作,從而得到一個(gè)長(zhǎng)度為76b(12b+64b)的編碼向量,完成對(duì)單條消息幀的編碼.對(duì)于消息幀序列,將每條消息幀對(duì)應(yīng)的編碼向量按順序堆疊,達(dá)到預(yù)定的行數(shù)時(shí),便生成了相應(yīng)的CAN數(shù)據(jù)圖像.
本文提出的帶注意力機(jī)制的CNN-LSTM模型如圖4所示,由CNN單元、LSTM單元、全局注意力單元、分類單元4部分構(gòu)成.
圖4 網(wǎng)絡(luò)結(jié)構(gòu)
在每個(gè)時(shí)間步長(zhǎng),CAN數(shù)據(jù)圖像首先通過CNN單元提取特征.CNN單元由多層網(wǎng)絡(luò)構(gòu)成,包括2維卷積層、激活函數(shù),通過多層卷積逐漸抽取更抽象特征的層次結(jié)構(gòu),最后通過池化層與全連接層,將提取的特征輸出.需要注意的是,前期預(yù)實(shí)驗(yàn)結(jié)果表明,過多的池化層會(huì)導(dǎo)致信息損失,影響模型性能,因此本文CNN單元中沒有在第1個(gè)卷積層后加入池化.CNN網(wǎng)絡(luò)的具體參數(shù)如表1所示.
預(yù)處理后輸入模型的CAN圖像大小為76×76,輸入時(shí)間序列長(zhǎng)度為5張CAN圖像,通道數(shù)為1,訓(xùn)練批次大小為64.2個(gè)卷積層的卷積核大小均為(3,3),加入Padding操作維持輸出圖像大小不變,使用LeakyReLU作為激活函數(shù).
經(jīng)過CNN網(wǎng)絡(luò)提取的特征圖展平為1維向量后,進(jìn)入LSTM網(wǎng)絡(luò),提取信息后將每個(gè)時(shí)刻的LSTM單元隱藏狀態(tài)輸出,其中使用Dropout操作連接防止模型過擬合.在全局注意力單元,使用3個(gè)全連接層分別作為注意力權(quán)重矩陣Wq,Wk,Wv,接收LSTM單元輸出的特征向量,通過各個(gè)全連接層得到每個(gè)時(shí)間步長(zhǎng)的注意力向量q,k,v,通過自注意力公式
分類單元使用一系列全連接層與激活函數(shù),將時(shí)間序列的注意力向量作分類處理,最終通過softmax層輸出分類概率,其中再次使用dropout連接進(jìn)一步防止模型過擬合,LSTM單元、全局注意力單元、分類單元具體參數(shù)如表2所示:
表2 LSTM網(wǎng)絡(luò)及相關(guān)網(wǎng)絡(luò)參數(shù)
LSTM網(wǎng)絡(luò)在每一時(shí)間步長(zhǎng)接收CNN網(wǎng)絡(luò)184832維度的特征為輸入,產(chǎn)生128維度輸出,與注意力權(quán)重矩陣Wq,Wk,Wv相乘并通過自注意力公式得到當(dāng)前步長(zhǎng)的128維向量,將5個(gè)時(shí)間步長(zhǎng)的向量相加后,進(jìn)入第1個(gè)線性層,生成512維度的向量,再通過1個(gè)線性層經(jīng)過softmax激活函數(shù)得到二分類結(jié)果.
本文實(shí)驗(yàn)在安裝有Intel?CoreTMi7-10980XE CPU@3.00GHz和NVIDIA GeForce GTX3090(24GB) GPU的PC平臺(tái)上,基于PyTorch框架進(jìn)行訓(xùn)練和測(cè)試.實(shí)驗(yàn)中,LSTM單元層數(shù)為5層,隱藏層維度為128,其中dropout=0.2;全局注意力單元中,全連接層維度為128,即注意力點(diǎn)數(shù)為128;epoch=150,初始學(xué)習(xí)率為1E-05,使用Adam優(yōu)化器進(jìn)行模型迭代優(yōu)化.
實(shí)驗(yàn)使用“CAR HACKING:ATTACK& DEFENSE CHALLENGE 2020”中的數(shù)據(jù)集[17],該數(shù)據(jù)集分別采集自車輛停止?fàn)顟B(tài)及行駛狀態(tài),實(shí)驗(yàn)中使用駕駛狀態(tài)的數(shù)據(jù)集.本文從混淆矩陣、接受者操作特性曲線(receiver operating characteristic curve, ROC)、混淆矩陣等多方面的指標(biāo)衡量算法的性能.在分類結(jié)果中,標(biāo)簽“0”代表正常樣本,標(biāo)簽“1”代表異常樣本,即入侵.
實(shí)驗(yàn)得到的混淆矩陣結(jié)果如圖5所示.可以看出,雖然存在一些誤報(bào)和漏報(bào)的情況,但是從主對(duì)角線的值來看,不管是正常樣本還是異常樣本,本文提出的模型都能較好地分辨.
圖5 混淆矩陣結(jié)果
ROC曲線和對(duì)應(yīng)的AUC(area under curve)值如圖6所示,其中ROC曲線較為接近直角,AUC值分別為0.9274與0.9253,接近1,證明分類器的性能比較優(yōu)越.
圖6 ROC曲線結(jié)果
為了探究自注意力機(jī)制的作用,本文還進(jìn)行了消融實(shí)驗(yàn),考察將網(wǎng)絡(luò)中的全局注意力單元去除后模型性能發(fā)生的變化.實(shí)驗(yàn)使用平均召回率(recall)、特異性(specificity)、精準(zhǔn)率(precision)、F1、準(zhǔn)確率(accurate)值作為指標(biāo)觀察模型性能的變化.
實(shí)驗(yàn)結(jié)果如圖7所示,可以看出無注意力機(jī)制下模型的性能每項(xiàng)指標(biāo)都在下降.
圖7 消融實(shí)驗(yàn)結(jié)果
同時(shí),本文還將提出的模型與殘差神經(jīng)網(wǎng)絡(luò)ResNet-18和長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)LSTM進(jìn)行了性能對(duì)比.其中:ResNet-18模型由18個(gè)卷積層和全連接層組成,并去除了不適用于時(shí)序數(shù)據(jù)的BN(batch normalization)層,該模型直接將5張CAN圖像拼合作為輸入;LSTM模型則由隱藏層維度128的LSTM單元堆疊5層組成,該模型直接將5張CAN圖像展平為二進(jìn)制數(shù)據(jù)構(gòu)成的向量作為輸入.2個(gè)模型最后均接入同樣參數(shù)的全連接層進(jìn)行分類.
實(shí)驗(yàn)結(jié)果如圖8所示,可以看出本文模型對(duì)比2種經(jīng)典模型,性能有較為可觀的進(jìn)步.
圖8 模型性能對(duì)比結(jié)果
本文首先介紹了CAN總線的基礎(chǔ)知識(shí),包括CAN總線通信規(guī)則、CAN消息幀標(biāo)準(zhǔn)格式等,并列舉了針對(duì)CAN總線的4種攻擊模式.然后,介紹了當(dāng)前最具代表性的基于機(jī)器學(xué)習(xí)方法.接著介紹了本文提出的使用基于注意力機(jī)制的CNN-LSTM網(wǎng)絡(luò)的車內(nèi)CAN總線入侵檢測(cè)算法,給出了數(shù)據(jù)預(yù)處理的詳細(xì)過程和網(wǎng)絡(luò)的具體結(jié)構(gòu)與參數(shù).最后通過真車采集的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),結(jié)果證明本文模型在真實(shí)數(shù)據(jù)集下有較好的表現(xiàn),能夠有效檢測(cè)針對(duì)CAN總線的入侵,并通過實(shí)驗(yàn)證明注意力機(jī)制在模型中的重要作用,同時(shí)驗(yàn)證了本文模型在性能上的優(yōu)越性.