黃迪 陳凌珊
摘 要: 提出結(jié)合CAN矩陣對報文數(shù)據(jù)場信號的具體定義提取特征,訓(xùn)練LSTM網(wǎng)絡(luò)在多個時間步長上,對一些重要的信號進行預(yù)測,引入觀測值得到預(yù)測誤差矩陣。使用多元高斯分布對誤差矩陣建立異常概率模型,根據(jù)誤報率、漏報率調(diào)整閾值大小。得到完整模型后,模擬總線攻擊,并實驗驗證了模型的精度。
關(guān)鍵詞: CAN總線;LSTM;異常檢測;入侵檢測;車聯(lián)網(wǎng)
文章編號: 2095-2163(2021)03-0038-06 中圖分類號:U463.6 文獻標志碼: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)概念和自動駕駛技術(shù)的發(fā)展,當代汽車的發(fā)展重心已經(jīng)從傳統(tǒng)的動力系統(tǒng)、傳動總成和汽車輕量化轉(zhuǎn)移到汽車電子上。汽車電子系統(tǒng)越發(fā)地龐大,一些傳統(tǒng)的機械部件也由電子電氣所取代,且在不斷地增加汽車對外界的接口,使汽車變得更加地智能化、電動化、共享化、網(wǎng)聯(lián)化[1]。
在80年代,就已開發(fā)出CAN總線用來解決當時分布式控制的行業(yè)要求,甫一問世,就因其優(yōu)秀的數(shù)據(jù)傳輸穩(wěn)定性,多主機的總線結(jié)構(gòu),靈活的總線擴展性能以及較高的性價比贏得了汽車市場的認可和青睞,直至如今國內(nèi)外的大部分車型依然使用的是CAN總線。而當時的控制器并未對外界的智能設(shè)備提供接口,所以CAN總線設(shè)計上在網(wǎng)絡(luò)安全方面就存在明顯的不足。時下,若要發(fā)展和普及汽車網(wǎng)聯(lián)技術(shù)和自動駕駛技術(shù),CAN總線的網(wǎng)絡(luò)安全則亟待獲得保障。于赫[2]即分析了CAN總線的入侵形式,并基于信息熵和決策樹的方法設(shè)計了入侵檢測系統(tǒng),但基于信息熵的方法只能識別總線上有大量異常報文的情況。Miller等人[3]根據(jù)CAN總線上報文的固定周期特性,識別異常報文,研究中不僅某ID的發(fā)送周期不變,且不同ID報文之間的發(fā)送周期都是一個固定值,然而近年來,為了減輕總線負載,提高報文信息量,在發(fā)送報文策略方面引入事件的概念,即不同的條件觸發(fā)不同的發(fā)送周期。Kang等人[4]把報文數(shù)據(jù)場按字節(jié)作為特征使用RBM(restricted Boltzman machine)算法訓(xùn)練模型,估計異常的可能性,并標記超過閾值的報文為異常報文。Cortes等人[5]根據(jù)總線上一段時間窗里數(shù)據(jù)流的統(tǒng)計數(shù)據(jù)使用OCSVM支持向量機來識別異??偩€上的異常行為。Song等人[6]研究基于CAN總線廣播的特征,分析總線上的時間間隙、報文的序列來識別異常。Weber等人[7]結(jié)合CAN的定義,使用機器學(xué)習(xí)算法從總線流的角度部署了入侵檢測系統(tǒng)。Tomlinson等人[8]用預(yù)先定義CAN總線廣播的平均時間間隙值并結(jié)合ARIMA方法來檢測總線上的時間變化。Marchetti等人[9]提出基于總線上不同ID報文之間的傳輸序列的入侵檢測算法。
綜上論述可知,現(xiàn)有研究主要分析了CAN總線的入侵形式,以及基于報文ID或數(shù)據(jù)場對周期性的報文做出檢測,在機器學(xué)習(xí)領(lǐng)域把數(shù)據(jù)場里的數(shù)據(jù)按照單個字節(jié)作為特征輸入,并未考慮總線數(shù)據(jù)時間上的關(guān)聯(lián)性。基于此,本文使用多層LSTM神經(jīng)網(wǎng)絡(luò),并充分考慮CAN通信矩陣對數(shù)據(jù)場里信號的定義,把CAN數(shù)據(jù)場里不同的信號作為特征提取,以此提高算法的精度,減少計算代價。
1 CAN總線概述
1.1 報文格式和CAN通信矩陣
1.1.1 報文格式
CAN總線有2種協(xié)議單元格式,區(qū)別主要在于仲裁場的大小,對于分析CAN總線的傳輸特性影響不大,因此這里將基于行業(yè)內(nèi)廣泛應(yīng)用的ISO11898的報文格式展開論述。
CAN總線在設(shè)計初期的目的是為了減少車輛線束、給分布在汽車不同位置的多個ECU提供通信服務(wù)。因此CAN總線是以報文為基礎(chǔ),在總線上多個ECU以廣播的形式通信,在網(wǎng)絡(luò)上的所有節(jié)點都可以自由地收發(fā)報文。當多個ECU同時發(fā)送報文時,防止報文沖突多是取決于發(fā)送報文的仲裁場,也就是ID大小,越小的ID則有越高的優(yōu)先權(quán)占用總線。CAN總線共有4種不同的報文幀,分別為:數(shù)據(jù)幀、錯誤幀、遠程幀、超載幀。文中將重點關(guān)注正常通信時使用的數(shù)據(jù)幀。研究可知,數(shù)據(jù)幀的基本結(jié)構(gòu)如圖1所示。由圖1可知,對其中涉及的每一位的功能含義擬做分述如下。
(1)SoF。為幀起始,在總線上以一個顯性位表示一個報文的開始。
(2)ID,場定義報文的標識以及優(yōu)先級。ID的值越小,優(yōu)先級越高。
(3)RTR。當報文為遠程幀的時候置為顯性。
(4)IDE。在使用拓展幀的時候置為顯性。
(5)R0。為保留位。
(6)DLC。定義數(shù)據(jù)場的大小,最大為8個字節(jié)。
(7)DATA,數(shù)據(jù)場用來傳輸實際的數(shù)據(jù)。一個報文最大傳輸8個字節(jié)的數(shù)據(jù)。
(8)CRC,循環(huán)冗余校驗碼。通過對數(shù)據(jù)場數(shù)據(jù)計算出一個CRC碼來確保發(fā)送端和接收端收到正確的數(shù)據(jù)。
(9)ACK。接收端收到報文后的應(yīng)答場。
(10)EoF。幀結(jié)束7比特隱性位,標識一幀報文結(jié)束。
1.1.2 CAN通信矩陣
通常,CAN通信矩陣是由主機廠和供應(yīng)商共同定義確定的,用于描述整車電子系統(tǒng)上各個網(wǎng)段下不同節(jié)點需要在總線上收發(fā)什么ID的報文,以及收發(fā)的方式,數(shù)據(jù)場里比特位與信號的映射關(guān)系,信號的原始值與物理值的映射關(guān)系等。
一個ID為0x121的報文內(nèi)容見表1。由ESP發(fā)送,周期為20 ms,數(shù)據(jù)場長度DLC為8個字節(jié),在第一個字節(jié)的第0位至第二個字節(jié)的第3位長度12比特的數(shù)據(jù)場為車速信號,此信號的解析方式為原始整形值乘上0.068 75,得到精度為0.068 75的車速物理值,第二個字節(jié)的第7位長度1比特的數(shù)據(jù)場為車速狀態(tài)位,表征此報文的車速信號是否有效,0x0為有效,0x1為無效。還有一些空的數(shù)據(jù)場沒有被使用到。
其他報文也以類似的方式在CAN矩陣里被定義。在CAN總線上接收到報文后,可以使用Vector公司的工具,載入帶有CAN矩陣信息的dbc文件,在線解析每個報文里的每個信號。
1.2 CAN總線缺陷分析
由1.1節(jié)研究可知,CAN總線是基于報文設(shè)計的通信方式,所有節(jié)點在總線上接收與自己有關(guān)的報文ID獲取數(shù)據(jù),而不會涉及到發(fā)送端和接收端的任何信息,因此就并不能判斷接收到的報文的源頭。進一步地,也將無法判斷這一條是不是入侵報文。同時在CAN通信里,所有報文數(shù)據(jù)場中的數(shù)據(jù)都沒有經(jīng)過加密。另外,在CAN總線增加或減少節(jié)點是非常便利的,只是在物理上接入總線,并不需要對新接入的節(jié)點進行驗證就能在總線上正常收發(fā)報文。
綜上CAN總線的不足,加上各種ECU對外界的無線接口,使得車載網(wǎng)絡(luò)的網(wǎng)絡(luò)安全面臨嚴峻的挑戰(zhàn)。
1.3 入侵方式分析
根據(jù)CAN總線的易接入性,在車上的自帶的診斷接口OBD可以輕易地接入整車車載網(wǎng)絡(luò),監(jiān)聽總線上的報文,由CAN總線的仲裁機制可知,ID越小有越高的優(yōu)先級,攻擊者就可以向總線上以高頻率的方式發(fā)送高優(yōu)先級的報文,即使沒有任何節(jié)點接收此報文,總線也會由于超負載而陷入癱瘓,這種攻擊模式即稱為洪泛攻擊。
除了車上的OBD口可以入侵車載網(wǎng)絡(luò),現(xiàn)在越來越多的遠程接入方式帶來更大的隱患,比如4G、5G、WiFi、藍牙等。
另外在接入總線、監(jiān)聽了總線上正常的通信后,將其記錄下來再重放到總線上去,每個ID和數(shù)據(jù)都是正常的,但接收端接收到的數(shù)據(jù)并不符合當前的工況,造成安全威脅。這種攻擊模式被稱為回放攻擊。
更隱秘的攻擊方式是先入侵總線上的節(jié)點,解析CAN 矩陣,使節(jié)點發(fā)送合法ID的報文,而改變數(shù)據(jù)場中的內(nèi)容。比如入侵整車上的一個網(wǎng)關(guān),通過網(wǎng)關(guān)在總線上發(fā)送正確的車速報文ID和錯誤的車速信息,這時如果車輛上有主動安全功能,就有可能會引起誤報,或者觸發(fā)剎車信號及轉(zhuǎn)向信號。這種攻擊模式被稱為偽裝攻擊,是一種很難準確檢測出來的攻擊方式,因為除了數(shù)據(jù)場里的數(shù)據(jù)不符合當時的工況以外,其他特征均與正常報文一致,而且與回放攻擊比起來,則幾乎不會在總線流的角度上產(chǎn)生異常,從而躲過監(jiān)控總線統(tǒng)計數(shù)據(jù)的入侵檢測系統(tǒng)。
2 異常檢測
2.1 異常檢測
異常檢測是指分析數(shù)據(jù)在正常情況下的行為特征,并能識別不具備這些特征的數(shù)據(jù)點,這些點被稱為異常。
要識別出異常首先需要分析數(shù)據(jù)的分布情況,得到數(shù)據(jù)的可能性分布,如圖2所示。由圖2可知,數(shù)據(jù)有2種分布模式:藍色點和紅色點,在最密集的地方可能性的值最高,在邊緣的點可能性更低。在低于某個閾值之后被異常檢測算法標識為一個異常,比如圖2中在邊緣線外的點。
2.2 多元高斯分布
對于本文分析的問題,CAN總線上的信號通常有較強的關(guān)聯(lián)性,比如擋位信號、車速信號和發(fā)動機轉(zhuǎn)速信號等。因此采用多元高斯分布來分析數(shù)據(jù)的可能性分布。
研究中,假設(shè)一個d維的矢量x∈d服從多元高斯分布,其概率密度為:
3 長短期記憶LSTM
長短期記憶網(wǎng)絡(luò)LSTM是recurrent neural network(RNN)中的一種,其特點是對數(shù)據(jù)有長期記憶性,對一些對歷史狀態(tài)有依賴性的數(shù)據(jù)預(yù)測有較好的表現(xiàn)。長短期記憶網(wǎng)絡(luò)的單元結(jié)構(gòu)如圖4所示。
為了使網(wǎng)絡(luò)記憶歷史數(shù)據(jù)里的重要信息,對未來的預(yù)測以歷史條件和輸入作為限制,做出質(zhì)量更高的預(yù)測。LSTM中要處理的數(shù)據(jù)除了當前的外部輸入x(t)以外,還有前一時刻的反饋h(t-1),記新輸入為:
圖4中,C(t)是LSTM的長期記憶單元,包含了t時段的狀態(tài)信息,C(t-1)為上一個時間步的長期記憶單元,h(t-1)為上一個時間步的短期記憶單元,X(t)為當前時間步的輸入,σ為sigmoid層,輸出0~1之間的值,控制遺忘、記憶及輸出的大小,3個門都是與h(t-1)及當前輸入X(t)相關(guān)的。對其內(nèi)容原理及定義公式可解析分述如下。
4 實驗
4.1 數(shù)據(jù)處理
本文搭建了一個基于LSTM的以汽車系統(tǒng)時間上的相關(guān)性為基礎(chǔ)的總線入侵檢測模型,圖5中數(shù)據(jù)為國內(nèi)某款汽車正常行駛狀態(tài)下的實車總線數(shù)據(jù)形式。包括時間戳、收發(fā)信息、數(shù)據(jù)長度、數(shù)據(jù)場、ID場。
通過vector公司的上位機軟件CANoe加載DBC后可以從圖5的數(shù)據(jù)中解析出每幀報文的具體信號的物理值,車輛航向角信號物理值如圖6所示。
由于總線上信號太多,為了確保準確率的同時減少計算量,文中人工選取了多個重要且不冗余的信號作為LSTM的輸入,分別為:圖6中的車速信號、方向盤轉(zhuǎn)角信號、加速度信號、加速踏板信號、制動踏板信號、擋位信號、發(fā)動機扭矩7個特征。選取的特征如圖7所示。數(shù)據(jù)集為200個正常行駛工況下的車輛數(shù)據(jù),由于在總線上的報文發(fā)送周期不同,取100 Hz的采樣數(shù)據(jù),共有200*7維度的時間序列數(shù)據(jù)集。
4.2 LSTM建模及預(yù)測
將實錄的正常數(shù)據(jù)分為85%訓(xùn)練集和15%驗證集,用訓(xùn)練集對LSTM模型進行訓(xùn)練,并用驗證集驗證模型的性能,最后用測試集得到一個誤差矩陣。計算誤差矩陣的多元高斯分布特征。
將數(shù)據(jù)集定義為X={x(1),x(2),...,x(t),...,x(n)},t時刻的數(shù)據(jù)點在時間序列上是m維{x(t)1,x(t)2,...,x(t)m}為LSTM訓(xùn)練模型的m維輸入。LSTM在t時刻對所有輸入特征里的d個特征在l個時間步長里做出預(yù)測。
本文選取7個特征,因此LSTM的輸入層為7個單元,d為6,因此LSTM的輸出層應(yīng)為6個單元,隱藏層設(shè)為15和30個單元,預(yù)測時間長度定為100個周期,因此LSTM在50個周期后的每個時刻輸出為6*100的矩陣。
研究后可得,訓(xùn)練30次后模型對其中一個特征的表現(xiàn)見圖8。
由此得到形狀為e(6,100,t)的誤差張量,其中e[0]=6表示預(yù)測的6個特征,e[1]=100表示時間序列上的預(yù)測長度,e[2]=t表示時間維度。其中,3個誤差在t時刻分布的可視化如圖9所示。
4.3 異常檢測
4.3.1 異常數(shù)據(jù)仿真
考慮到實車入侵的危險性和成本,本文的異常數(shù)據(jù)為仿真數(shù)據(jù),分別對車速ID_0x121,發(fā)動機轉(zhuǎn)速ID_0x10D,方向盤轉(zhuǎn)角ID_11F做仿真?zhèn)窝b報文入侵報文攻擊整車總線,對3個不同ID的報文數(shù)據(jù)場注入一個突變的異常,如圖10所示。
4.3.2 異常檢測
經(jīng)過上述步驟得到通過正常行駛的數(shù)據(jù)集訓(xùn)練好的LSTM預(yù)測模型和通過仿真得到的異常數(shù)據(jù)集,把異常數(shù)據(jù)集輸入到LSTM預(yù)測模型,得到異常數(shù)據(jù)集的誤差張量后使其符合多元高斯分布,求得其分布均值向量、協(xié)方差矩陣和每個誤差點對應(yīng)的可能性p(e)。
當p(t)<τ時對應(yīng)的輸入特征x(t)將會被歸為‘異常。通過盡可能地最大化Fβ-score來確定閾值τ。
本文選用β=0.1的評價方法來評估模型的性能,因為本文討論的異常檢測其正常數(shù)據(jù)的樣本數(shù)遠大于異常樣本,入侵檢測的準確率要比查全率重要得多。F0.1-score在不同單元數(shù)隱藏層下的評估結(jié)果見表2。
5 結(jié)束語
本文通過先對CAN總線上原始數(shù)據(jù)解析處理后再輸入到多層LSTM模型,對多個特征在多時間步上做預(yù)測,把得到的誤差張量服從多元高斯分布,求得其均值向量、協(xié)方差向量和可能性p(t)。通過F0.1-score評價指標,確定閾值τ,得到一個較高的準確率。
參考文獻
[1] 宋昊辰,楊林,徐華偉,等. 智能網(wǎng)聯(lián)汽車信息安全綜述[J]. 信息安全與通信保密,2020(7):106-114.
[2] 于赫. 網(wǎng)聯(lián)汽車信息安全問題及CAN總線異常檢測技術(shù)研究[D]. 長春:吉林大學(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.