黃迪 陳凌珊
摘 要: 提出結(jié)合CAN矩陣對(duì)報(bào)文數(shù)據(jù)場(chǎng)信號(hào)的具體定義提取特征,訓(xùn)練LSTM網(wǎng)絡(luò)在多個(gè)時(shí)間步長(zhǎng)上,對(duì)一些重要的信號(hào)進(jìn)行預(yù)測(cè),引入觀測(cè)值得到預(yù)測(cè)誤差矩陣。使用多元高斯分布對(duì)誤差矩陣建立異常概率模型,根據(jù)誤報(bào)率、漏報(bào)率調(diào)整閾值大小。得到完整模型后,模擬總線攻擊,并實(shí)驗(yàn)驗(yàn)證了模型的精度。
關(guān)鍵詞: CAN總線;LSTM;異常檢測(cè);入侵檢測(cè);車聯(lián)網(wǎng)
文章編號(hào): 2095-2163(2021)03-0038-06 中圖分類號(hào):U463.6 文獻(xiàn)標(biāo)志碼:A
【Abstract】Combining with the specific definition of message data field signal in CAN matrix, the paper extracts features, trains LSTM network to predict some important signals in multiple time steps, and introduces observation value to forecast error matrix. According to the probability of false positive rate and false negative rate, the threshold value is adjusted by using the probability distribution of multiple variables. After getting the completed model, the bus attack is simulated and the accuracy of the model is verified by experiments.
【Key words】 CAN bus; LSTM; anomaly detection; intrusion detection; intelligent connected vehicle
0 引 言
隨著智能網(wǎng)聯(lián)概念和自動(dòng)駕駛技術(shù)的發(fā)展,當(dāng)代汽車的發(fā)展重心已經(jīng)從傳統(tǒng)的動(dòng)力系統(tǒng)、傳動(dòng)總成和汽車輕量化轉(zhuǎn)移到汽車電子上。汽車電子系統(tǒng)越發(fā)地龐大,一些傳統(tǒng)的機(jī)械部件也由電子電氣所取代,且在不斷地增加汽車對(duì)外界的接口,使汽車變得更加地智能化、電動(dòng)化、共享化、網(wǎng)聯(lián)化[1]。
在80年代,就已開發(fā)出CAN總線用來(lái)解決當(dāng)時(shí)分布式控制的行業(yè)要求,甫一問(wèn)世,就因其優(yōu)秀的數(shù)據(jù)傳輸穩(wěn)定性,多主機(jī)的總線結(jié)構(gòu),靈活的總線擴(kuò)展性能以及較高的性價(jià)比贏得了汽車市場(chǎng)的認(rèn)可和青睞,直至如今國(guó)內(nèi)外的大部分車型依然使用的是CAN總線。而當(dāng)時(shí)的控制器并未對(duì)外界的智能設(shè)備提供接口,所以CAN總線設(shè)計(jì)上在網(wǎng)絡(luò)安全方面就存在明顯的不足。時(shí)下,若要發(fā)展和普及汽車網(wǎng)聯(lián)技術(shù)和自動(dòng)駕駛技術(shù),CAN總線的網(wǎng)絡(luò)安全則亟待獲得保障。于赫[2]即分析了CAN總線的入侵形式,并基于信息熵和決策樹的方法設(shè)計(jì)了入侵檢測(cè)系統(tǒng),但基于信息熵的方法只能識(shí)別總線上有大量異常報(bào)文的情況。Miller等人[3]根據(jù)CAN總線上報(bào)文的固定周期特性,識(shí)別異常報(bào)文,研究中不僅某ID的發(fā)送周期不變,且不同ID報(bào)文之間的發(fā)送周期都是一個(gè)固定值,然而近年來(lái),為了減輕總線負(fù)載,提高報(bào)文信息量,在發(fā)送報(bào)文策略方面引入事件的概念,即不同的條件觸發(fā)不同的發(fā)送周期。Kang等人[4]把報(bào)文數(shù)據(jù)場(chǎng)按字節(jié)作為特征使用RBM(restricted Boltzman machine)算法訓(xùn)練模型,估計(jì)異常的可能性,并標(biāo)記超過(guò)閾值的報(bào)文為異常報(bào)文。Cortes等人[5]根據(jù)總線上一段時(shí)間窗里數(shù)據(jù)流的統(tǒng)計(jì)數(shù)據(jù)使用OCSVM支持向量機(jī)來(lái)識(shí)別異??偩€上的異常行為。Song等人[6]研究基于CAN總線廣播的特征,分析總線上的時(shí)間間隙、報(bào)文的序列來(lái)識(shí)別異常。Weber等人[7]結(jié)合CAN的定義,使用機(jī)器學(xué)習(xí)算法從總線流的角度部署了入侵檢測(cè)系統(tǒng)。Tomlinson等人[8]用預(yù)先定義CAN總線廣播的平均時(shí)間間隙值并結(jié)合ARIMA方法來(lái)檢測(cè)總線上的時(shí)間變化。Marchetti等人[9]提出基于總線上不同ID報(bào)文之間的傳輸序列的入侵檢測(cè)算法。
綜上論述可知,現(xiàn)有研究主要分析了CAN總線的入侵形式,以及基于報(bào)文ID或數(shù)據(jù)場(chǎng)對(duì)周期性的報(bào)文做出檢測(cè),在機(jī)器學(xué)習(xí)領(lǐng)域把數(shù)據(jù)場(chǎng)里的數(shù)據(jù)按照單個(gè)字節(jié)作為特征輸入,并未考慮總線數(shù)據(jù)時(shí)間上的關(guān)聯(lián)性。基于此,本文使用多層LSTM神經(jīng)網(wǎng)絡(luò),并充分考慮CAN通信矩陣對(duì)數(shù)據(jù)場(chǎng)里信號(hào)的定義,把CAN數(shù)據(jù)場(chǎng)里不同的信號(hào)作為特征提取,以此提高算法的精度,減少計(jì)算代價(jià)。
1 CAN總線概述
1.1 報(bào)文格式和CAN通信矩陣
1.1.1 報(bào)文格式
CAN總線有2種協(xié)議單元格式,區(qū)別主要在于仲裁場(chǎng)的大小,對(duì)于分析CAN總線的傳輸特性影響不大,因此這里將基于行業(yè)內(nèi)廣泛應(yīng)用的ISO11898的報(bào)文格式展開論述。
CAN總線在設(shè)計(jì)初期的目的是為了減少車輛線束、給分布在汽車不同位置的多個(gè)ECU提供通信服務(wù)。因此CAN總線是以報(bào)文為基礎(chǔ),在總線上多個(gè)ECU以廣播的形式通信,在網(wǎng)絡(luò)上的所有節(jié)點(diǎn)都可以自由地收發(fā)報(bào)文。當(dāng)多個(gè)ECU同時(shí)發(fā)送報(bào)文時(shí),防止報(bào)文沖突多是取決于發(fā)送報(bào)文的仲裁場(chǎng),也就是ID大小,越小的ID則有越高的優(yōu)先權(quán)占用總線。CAN總線共有4種不同的報(bào)文幀,分別為:數(shù)據(jù)幀、錯(cuò)誤幀、遠(yuǎn)程幀、超載幀。文中將重點(diǎn)關(guān)注正常通信時(shí)使用的數(shù)據(jù)幀。研究可知,數(shù)據(jù)幀的基本結(jié)構(gòu)如圖1所示。由圖1可知,對(duì)其中涉及的每一位的功能含義擬做分述如下。
(1)SoF。為幀起始,在總線上以一個(gè)顯性位表示一個(gè)報(bào)文的開始。
(2)ID,場(chǎng)定義報(bào)文的標(biāo)識(shí)以及優(yōu)先級(jí)。ID的值越小,優(yōu)先級(jí)越高。
(3)RTR。當(dāng)報(bào)文為遠(yuǎn)程幀的時(shí)候置為顯性。
(4)IDE。在使用拓展幀的時(shí)候置為顯性。
(5)R0。為保留位。
(6)DLC。定義數(shù)據(jù)場(chǎng)的大小,最大為8個(gè)字節(jié)。
(7)DATA,數(shù)據(jù)場(chǎng)用來(lái)傳輸實(shí)際的數(shù)據(jù)。一個(gè)報(bào)文最大傳輸8個(gè)字節(jié)的數(shù)據(jù)。
(8)CRC,循環(huán)冗余校驗(yàn)碼。通過(guò)對(duì)數(shù)據(jù)場(chǎng)數(shù)據(jù)計(jì)算出一個(gè)CRC碼來(lái)確保發(fā)送端和接收端收到正確的數(shù)據(jù)。
(9)ACK。接收端收到報(bào)文后的應(yīng)答場(chǎng)。
(10)EoF。幀結(jié)束7比特隱性位,標(biāo)識(shí)一幀報(bào)文結(jié)束。
1.1.2 CAN通信矩陣
通常,CAN通信矩陣是由主機(jī)廠和供應(yīng)商共同定義確定的,用于描述整車電子系統(tǒng)上各個(gè)網(wǎng)段下不同節(jié)點(diǎn)需要在總線上收發(fā)什么ID的報(bào)文,以及收發(fā)的方式,數(shù)據(jù)場(chǎng)里比特位與信號(hào)的映射關(guān)系,信號(hào)的原始值與物理值的映射關(guān)系等。
一個(gè)ID為0x121的報(bào)文內(nèi)容見表1。由ESP發(fā)送,周期為20 ms,數(shù)據(jù)場(chǎng)長(zhǎng)度DLC為8個(gè)字節(jié),在第一個(gè)字節(jié)的第0位至第二個(gè)字節(jié)的第3位長(zhǎng)度12比特的數(shù)據(jù)場(chǎng)為車速信號(hào),此信號(hào)的解析方式為原始整形值乘上0.068 75,得到精度為0.068 75的車速物理值,第二個(gè)字節(jié)的第7位長(zhǎng)度1比特的數(shù)據(jù)場(chǎng)為車速狀態(tài)位,表征此報(bào)文的車速信號(hào)是否有效,0x0為有效,0x1為無(wú)效。還有一些空的數(shù)據(jù)場(chǎng)沒(méi)有被使用到。
其他報(bào)文也以類似的方式在CAN矩陣?yán)锉欢x。在CAN總線上接收到報(bào)文后,可以使用Vector公司的工具,載入帶有CAN矩陣信息的dbc文件,在線解析每個(gè)報(bào)文里的每個(gè)信號(hào)。
1.2 CAN總線缺陷分析
由1.1節(jié)研究可知,CAN總線是基于報(bào)文設(shè)計(jì)的通信方式,所有節(jié)點(diǎn)在總線上接收與自己有關(guān)的報(bào)文ID獲取數(shù)據(jù),而不會(huì)涉及到發(fā)送端和接收端的任何信息,因此就并不能判斷接收到的報(bào)文的源頭。進(jìn)一步地,也將無(wú)法判斷這一條是不是入侵報(bào)文。同時(shí)在CAN通信里,所有報(bào)文數(shù)據(jù)場(chǎng)中的數(shù)據(jù)都沒(méi)有經(jīng)過(guò)加密。另外,在CAN總線增加或減少節(jié)點(diǎn)是非常便利的,只是在物理上接入總線,并不需要對(duì)新接入的節(jié)點(diǎn)進(jìn)行驗(yàn)證就能在總線上正常收發(fā)報(bào)文。
綜上CAN總線的不足,加上各種ECU對(duì)外界的無(wú)線接口,使得車載網(wǎng)絡(luò)的網(wǎng)絡(luò)安全面臨嚴(yán)峻的挑戰(zhàn)。
1.3 入侵方式分析
根據(jù)CAN總線的易接入性,在車上的自帶的診斷接口OBD可以輕易地接入整車車載網(wǎng)絡(luò),監(jiān)聽總線上的報(bào)文,由CAN總線的仲裁機(jī)制可知,ID越小有越高的優(yōu)先級(jí),攻擊者就可以向總線上以高頻率的方式發(fā)送高優(yōu)先級(jí)的報(bào)文,即使沒(méi)有任何節(jié)點(diǎn)接收此報(bào)文,總線也會(huì)由于超負(fù)載而陷入癱瘓,這種攻擊模式即稱為洪泛攻擊。
除了車上的OBD口可以入侵車載網(wǎng)絡(luò),現(xiàn)在越來(lái)越多的遠(yuǎn)程接入方式帶來(lái)更大的隱患,比如4G、5G、WiFi、藍(lán)牙等。
另外在接入總線、監(jiān)聽了總線上正常的通信后,將其記錄下來(lái)再重放到總線上去,每個(gè)ID和數(shù)據(jù)都是正常的,但接收端接收到的數(shù)據(jù)并不符合當(dāng)前的工況,造成安全威脅。這種攻擊模式被稱為回放攻擊。
更隱秘的攻擊方式是先入侵總線上的節(jié)點(diǎn),解析CAN 矩陣,使節(jié)點(diǎn)發(fā)送合法ID的報(bào)文,而改變數(shù)據(jù)場(chǎng)中的內(nèi)容。比如入侵整車上的一個(gè)網(wǎng)關(guān),通過(guò)網(wǎng)關(guān)在總線上發(fā)送正確的車速報(bào)文ID和錯(cuò)誤的車速信息,這時(shí)如果車輛上有主動(dòng)安全功能,就有可能會(huì)引起誤報(bào),或者觸發(fā)剎車信號(hào)及轉(zhuǎn)向信號(hào)。這種攻擊模式被稱為偽裝攻擊,是一種很難準(zhǔn)確檢測(cè)出來(lái)的攻擊方式,因?yàn)槌藬?shù)據(jù)場(chǎng)里的數(shù)據(jù)不符合當(dāng)時(shí)的工況以外,其他特征均與正常報(bào)文一致,而且與回放攻擊比起來(lái),則幾乎不會(huì)在總線流的角度上產(chǎn)生異常,從而躲過(guò)監(jiān)控總線統(tǒng)計(jì)數(shù)據(jù)的入侵檢測(cè)系統(tǒng)。
2 異常檢測(cè)
2.1 異常檢測(cè)
異常檢測(cè)是指分析數(shù)據(jù)在正常情況下的行為特征,并能識(shí)別不具備這些特征的數(shù)據(jù)點(diǎn),這些點(diǎn)被稱為異常。
要識(shí)別出異常首先需要分析數(shù)據(jù)的分布情況,得到數(shù)據(jù)的可能性分布,如圖2所示。由圖2可知,數(shù)據(jù)有2種分布模式:藍(lán)色點(diǎn)和紅色點(diǎn),在最密集的地方可能性的值最高,在邊緣的點(diǎn)可能性更低。在低于某個(gè)閾值之后被異常檢測(cè)算法標(biāo)識(shí)為一個(gè)異常,比如圖2中在邊緣線外的點(diǎn)。
2.2 多元高斯分布
對(duì)于本文分析的問(wèn)題,CAN總線上的信號(hào)通常有較強(qiáng)的關(guān)聯(lián)性,比如擋位信號(hào)、車速信號(hào)和發(fā)動(dòng)機(jī)轉(zhuǎn)速信號(hào)等。因此采用多元高斯分布來(lái)分析數(shù)據(jù)的可能性分布。
研究中,假設(shè)一個(gè)d維的矢量x∈d服從多元高斯分布,其概率密度為:
3 長(zhǎng)短期記憶LSTM
長(zhǎng)短期記憶網(wǎng)絡(luò)LSTM是recurrent neural network(RNN)中的一種,其特點(diǎn)是對(duì)數(shù)據(jù)有長(zhǎng)期記憶性,對(duì)一些對(duì)歷史狀態(tài)有依賴性的數(shù)據(jù)預(yù)測(cè)有較好的表現(xiàn)。長(zhǎng)短期記憶網(wǎng)絡(luò)的單元結(jié)構(gòu)如圖4所示。
為了使網(wǎng)絡(luò)記憶歷史數(shù)據(jù)里的重要信息,對(duì)未來(lái)的預(yù)測(cè)以歷史條件和輸入作為限制,做出質(zhì)量更高的預(yù)測(cè)。LSTM中要處理的數(shù)據(jù)除了當(dāng)前的外部輸入x(t)以外,還有前一時(shí)刻的反饋h(t-1),記新輸入為:
圖4中,C(t)是LSTM的長(zhǎng)期記憶單元,包含了t時(shí)段的狀態(tài)信息,C(t-1)為上一個(gè)時(shí)間步的長(zhǎng)期記憶單元,h(t-1)為上一個(gè)時(shí)間步的短期記憶單元,X(t)為當(dāng)前時(shí)間步的輸入,σ為sigmoid層,輸出0~1之間的值,控制遺忘、記憶及輸出的大小,3個(gè)門都是與h(t-1)及當(dāng)前輸入X(t)相關(guān)的。對(duì)其內(nèi)容原理及定義公式可解析分述如下。
4 實(shí)驗(yàn)
4.1 數(shù)據(jù)處理
本文搭建了一個(gè)基于LSTM的以汽車系統(tǒng)時(shí)間上的相關(guān)性為基礎(chǔ)的總線入侵檢測(cè)模型,圖5中數(shù)據(jù)為國(guó)內(nèi)某款汽車正常行駛狀態(tài)下的實(shí)車總線數(shù)據(jù)形式。包括時(shí)間戳、收發(fā)信息、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)場(chǎng)、ID場(chǎng)。
通過(guò)vector公司的上位機(jī)軟件CANoe加載DBC后可以從圖5的數(shù)據(jù)中解析出每幀報(bào)文的具體信號(hào)的物理值,車輛航向角信號(hào)物理值如圖6所示。
由于總線上信號(hào)太多,為了確保準(zhǔn)確率的同時(shí)減少計(jì)算量,文中人工選取了多個(gè)重要且不冗余的信號(hào)作為L(zhǎng)STM的輸入,分別為:圖6中的車速信號(hào)、方向盤轉(zhuǎn)角信號(hào)、加速度信號(hào)、加速踏板信號(hào)、制動(dòng)踏板信號(hào)、擋位信號(hào)、發(fā)動(dòng)機(jī)扭矩7個(gè)特征。選取的特征如圖7所示。數(shù)據(jù)集為200個(gè)正常行駛工況下的車輛數(shù)據(jù),由于在總線上的報(bào)文發(fā)送周期不同,取100 Hz的采樣數(shù)據(jù),共有200*7維度的時(shí)間序列數(shù)據(jù)集。
4.2 LSTM建模及預(yù)測(cè)
將實(shí)錄的正常數(shù)據(jù)分為85%訓(xùn)練集和15%驗(yàn)證集,用訓(xùn)練集對(duì)LSTM模型進(jìn)行訓(xùn)練,并用驗(yàn)證集驗(yàn)證模型的性能,最后用測(cè)試集得到一個(gè)誤差矩陣。計(jì)算誤差矩陣的多元高斯分布特征。
將數(shù)據(jù)集定義為X={x(1),x(2),...,x(t),...,x(n)},t時(shí)刻的數(shù)據(jù)點(diǎn)在時(shí)間序列上是m維{x(t)1,x(t)2,...,x(t)m}為L(zhǎng)STM訓(xùn)練模型的m維輸入。LSTM在t時(shí)刻對(duì)所有輸入特征里的d個(gè)特征在l個(gè)時(shí)間步長(zhǎng)里做出預(yù)測(cè)。
本文選取7個(gè)特征,因此LSTM的輸入層為7個(gè)單元,d為6,因此LSTM的輸出層應(yīng)為6個(gè)單元,隱藏層設(shè)為15和30個(gè)單元,預(yù)測(cè)時(shí)間長(zhǎng)度定為100個(gè)周期,因此LSTM在50個(gè)周期后的每個(gè)時(shí)刻輸出為6*100的矩陣。
研究后可得,訓(xùn)練30次后模型對(duì)其中一個(gè)特征的表現(xiàn)見圖8。
由此得到形狀為e(6,100,t)的誤差張量,其中e[0]=6表示預(yù)測(cè)的6個(gè)特征,e[1]=100表示時(shí)間序列上的預(yù)測(cè)長(zhǎng)度,e[2]=t表示時(shí)間維度。其中,3個(gè)誤差在t時(shí)刻分布的可視化如圖9所示。
4.3 異常檢測(cè)
4.3.1 異常數(shù)據(jù)仿真
考慮到實(shí)車入侵的危險(xiǎn)性和成本,本文的異常數(shù)據(jù)為仿真數(shù)據(jù),分別對(duì)車速ID_0x121,發(fā)動(dòng)機(jī)轉(zhuǎn)速ID_0x10D,方向盤轉(zhuǎn)角ID_11F做仿真?zhèn)窝b報(bào)文入侵報(bào)文攻擊整車總線,對(duì)3個(gè)不同ID的報(bào)文數(shù)據(jù)場(chǎng)注入一個(gè)突變的異常,如圖10所示。
4.3.2 異常檢測(cè)
經(jīng)過(guò)上述步驟得到通過(guò)正常行駛的數(shù)據(jù)集訓(xùn)練好的LSTM預(yù)測(cè)模型和通過(guò)仿真得到的異常數(shù)據(jù)集,把異常數(shù)據(jù)集輸入到LSTM預(yù)測(cè)模型,得到異常數(shù)據(jù)集的誤差張量后使其符合多元高斯分布,求得其分布均值向量、協(xié)方差矩陣和每個(gè)誤差點(diǎn)對(duì)應(yīng)的可能性p(e)。
當(dāng)p(t)<τ時(shí)對(duì)應(yīng)的輸入特征x(t)將會(huì)被歸為‘異常。通過(guò)盡可能地最大化Fβ-score來(lái)確定閾值τ。
本文選用β=0.1的評(píng)價(jià)方法來(lái)評(píng)估模型的性能,因?yàn)楸疚挠懻摰漠惓z測(cè)其正常數(shù)據(jù)的樣本數(shù)遠(yuǎn)大于異常樣本,入侵檢測(cè)的準(zhǔn)確率要比查全率重要得多。F0.1-score在不同單元數(shù)隱藏層下的評(píng)估結(jié)果見表2。
5 結(jié)束語(yǔ)
本文通過(guò)先對(duì)CAN總線上原始數(shù)據(jù)解析處理后再輸入到多層LSTM模型,對(duì)多個(gè)特征在多時(shí)間步上做預(yù)測(cè),把得到的誤差張量服從多元高斯分布,求得其均值向量、協(xié)方差向量和可能性p(t)。通過(guò)F0.1-score評(píng)價(jià)指標(biāo),確定閾值τ,得到一個(gè)較高的準(zhǔn)確率。
參考文獻(xiàn)
[1] 宋昊辰,楊林,徐華偉,等. 智能網(wǎng)聯(lián)汽車信息安全綜述[J]. 信息安全與通信保密,2020(7):106-114.
[2] 于赫. 網(wǎng)聯(lián)汽車信息安全問(wèn)題及CAN總線異常檢測(cè)技術(shù)研究[D]. 長(zhǎng)春:吉林大學(xué),2016.
[3] MILLER C, VALASEK C. Adventures in automotive networks and control units[C]// DEFCON 21 Hacking Conference. Las Vegas:DEF CON Communications, Inc.,2013:260-264.
[4] KANG M J, KANG J W. Intrusion detection system using deep neural network for in-vehicle network security[J]. PLoS One, 2016, 11(6): e0155781.
[5] CORTES C, VAPNIK V. Support-vector networks[J]. Machine Learning, 1995,20(3):273-297.
[6] SONG H M, KIM H R, KIM H K. Intrusion detection system based on the analysis of time intervals of CAN messages for in-vehicle network[C]// 2016 international conference on information networking (ICOIN). Kota Kinabalu, Malaysia:IEEE,2016: 63-68.
[7] WEBER M, KLUG S, ZIMMER B, et al. Embedded hybrid anomaly detection for automotive CAN communication[C]//9th European Congress on Embedded Real Time Software and Systems. Toulouse, France:Pierre Baudis Congress Center,2018:1-11.
[8] TOMLINSON A, BRYANS J, SHAIKH S A, et al. Detection of automotive CAN cyber-Attacks by identifying packet timing anomalies in time Windows[C]// 2018 48th Annual IEEE/IFIP International Conference on Dependable Systems and Networks Workshops (DSN-W). Luxembourg City:IEEE, 2018: 231-238.
[9] MARCHETTI M, STABILI D. Anomaly detection of CAN bus messages through analysis of ID sequences (Los Angeles, 2017)[C]//2017 IEEE Intelligent Vehicles Symposium (IV). Los Angeles, CA:IEEE, 2017:1577–1583.