黃迪 陳凌珊



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