羅 峰,胡 強(qiáng),侯 碩,張 璇
(同濟(jì)大學(xué)汽車學(xué)院,上海201804)
智能化、網(wǎng)聯(lián)化、電動(dòng)化是當(dāng)今汽車發(fā)展的三大趨勢(shì)。對(duì)于智能網(wǎng)聯(lián)汽車來(lái)說(shuō),信息通信技術(shù)是其中的基礎(chǔ)核心技術(shù)之一[1]。智能網(wǎng)聯(lián)汽車在高速發(fā)展背景下,信息安全是其發(fā)展道路上不容忽視的一個(gè)重要問(wèn)題。汽車的信息安全問(wèn)題的關(guān)注者正在從研究人員擴(kuò)大到汽車行業(yè)人員、消費(fèi)者、政府部門等[2-4]。入侵檢測(cè)和保護(hù)技術(shù)可以做到當(dāng)攻擊發(fā)生以后,及時(shí)做出反饋和響應(yīng),主要的難點(diǎn)在檢測(cè)正確率和檢測(cè)效率之間的平衡。
針對(duì)車載網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)從形式上分為基于電子控制單元(ECU)端的入侵檢測(cè)和基于云端的大數(shù)據(jù)檢測(cè),從方法上分為根據(jù)已知攻擊類型的規(guī)則匹配檢測(cè)和針對(duì)未知攻擊類型的異常檢測(cè)。在保證準(zhǔn)確率的前提下研究適應(yīng)性較廣的異常檢測(cè)算法是一個(gè)研究趨勢(shì)。以色列特拉維夫大學(xué)提出了一種用于車載CAN總線網(wǎng)絡(luò)流量的新型域感知異常檢測(cè)系統(tǒng)。該異常檢測(cè)系統(tǒng)的核心為自動(dòng)識(shí)別數(shù)據(jù)場(chǎng)的邊界和類型的分類器[5]。檢測(cè)采用Greedy算法,在字段長(zhǎng)度和字段含義之間進(jìn)行平衡。韓國(guó)梨花女子大學(xué)提出了一種利用DNN機(jī)器學(xué)習(xí)算法的新型入侵檢測(cè)系統(tǒng)。構(gòu)建DNN結(jié)構(gòu)的參數(shù)使用從車內(nèi)網(wǎng)絡(luò)分組中提取的基于概率的特征向量進(jìn)行訓(xùn)練[6]。戴姆勒公司提出了一種基于信息熵的CAN總線異常檢測(cè)的方法。通過(guò)信息熵檢測(cè)方法可以成功識(shí)別與車載網(wǎng)絡(luò)正常行為的偏差[7]。該方法只需要記錄車載網(wǎng)絡(luò)流量作為正常行為的輸入。
在新一代的智能網(wǎng)聯(lián)汽車電子電氣架構(gòu)下,CAN-FD總線將更多的取代傳統(tǒng)的CAN總線的作用。目前針對(duì)CAN-FD網(wǎng)絡(luò)入侵檢測(cè)的核心問(wèn)題是如何高效而準(zhǔn)確地對(duì)異常數(shù)據(jù)進(jìn)行識(shí)別。提出了一種基于支持向量機(jī)(Support Vector Machine,SVM)的異常入侵檢測(cè)方法。該方法使用報(bào)文ID、時(shí)間周期和數(shù)據(jù)場(chǎng)數(shù)據(jù)作為入侵檢測(cè)特征,實(shí)現(xiàn)了對(duì)CAN-FD網(wǎng)絡(luò)環(huán)境下異常數(shù)據(jù)的識(shí)別。仿真實(shí)驗(yàn)數(shù)據(jù)表明,提出的方法針對(duì)網(wǎng)絡(luò)異常數(shù)據(jù)具有較高的入侵檢測(cè)正確率。此方法可用于周期性和非周期性的CAN-FD報(bào)文。
在汽車的電子電氣架構(gòu)中,車載網(wǎng)絡(luò)用于信號(hào)和數(shù)據(jù)的傳輸。CAN-FD總線作為一種典型的車載網(wǎng)絡(luò),被廣泛用于動(dòng)力總成,底盤控制,車身控制和汽車診斷。CAN-FD總線的安全性直接影響車輛的安全性。圖1為一個(gè)標(biāo)準(zhǔn)的CAN-FD幀結(jié)構(gòu)圖[8]。
圖1 CAN-FD報(bào)文幀結(jié)構(gòu)Fig.1 The structure of CAN-FD bus frame
其中數(shù)據(jù)字段的最大長(zhǎng)度為64個(gè)字節(jié),仲裁字段包含CAN-FD消息的標(biāo)識(shí)符ID。CAN-FD總線的仲裁由消息標(biāo)識(shí)符決定,標(biāo)識(shí)符較低的消息比標(biāo)識(shí)符較高的消息具有更高的優(yōu)先級(jí)。CAN-FD總線是一個(gè)廣播網(wǎng)絡(luò),連接到同一CAN-FD子網(wǎng)的任何ECU都可以接收所有消息并將消息傳輸?shù)狡渌鸈CU。
針對(duì)廣播形式通信的CAN-FD總線的攻擊方式主要有竊聽攻擊、重放攻擊、篡改攻擊和DOS攻擊等形式,如圖2所示。正常的CAN-FD總線的數(shù)據(jù)都具有周期性發(fā)送、穩(wěn)定的數(shù)據(jù)等特定。當(dāng)CANFD總線攻擊行為發(fā)生時(shí),網(wǎng)絡(luò)上會(huì)表現(xiàn)出各種異常狀態(tài)。
圖2 針對(duì)CAN-FD總線的攻擊Fig.2 Attacking on the CAN-FD bus
數(shù)據(jù)加密和消息驗(yàn)證能保證網(wǎng)絡(luò)通信過(guò)程中的機(jī)密性和可信性。當(dāng)網(wǎng)絡(luò)攻擊已經(jīng)發(fā)生時(shí),需要采取進(jìn)一步的入侵檢測(cè)和防御機(jī)制,保證網(wǎng)絡(luò)通信的可用性。入侵檢測(cè)系統(tǒng)可以通過(guò)對(duì)網(wǎng)絡(luò)系統(tǒng)的動(dòng)態(tài)監(jiān)控,識(shí)別典型的攻擊模式,分析異常狀態(tài)模式。識(shí)別出攻擊源和攻擊方法對(duì)快速高效的取證、隔離,安全補(bǔ)丁等措施的執(zhí)行是十分重要的。
通用入侵檢測(cè)框架(CIDF)模型將入侵檢測(cè)系統(tǒng)需要分析的數(shù)據(jù)統(tǒng)稱為事件,它可以是網(wǎng)絡(luò)中的數(shù)據(jù)包,也可以是從系統(tǒng)其他途徑得到的信息。該模型中入侵檢測(cè)系統(tǒng)由事件產(chǎn)生器、事件分析器、響應(yīng)單元和事件數(shù)據(jù)庫(kù)組成[9]。將CIDF模型應(yīng)用于CAN-FD網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)中,如圖3所示。其中數(shù)據(jù)分析和模式識(shí)別的算法是入侵檢測(cè)系統(tǒng)中最關(guān)鍵的一個(gè)環(huán)節(jié)。
圖3 CAN-FD網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)架構(gòu)Fig.3 The architecture of CAN-FD bus intrusion detection system
支持向量機(jī)是一種基于分類與回歸分析的監(jiān)督式數(shù)據(jù)分析學(xué)習(xí)模型算法。支持向量機(jī)使用時(shí)需要對(duì)給定的訓(xùn)練組中每一個(gè)實(shí)例進(jìn)行標(biāo)記,并分類為兩個(gè)類別。支持向量機(jī)的訓(xùn)練算法將創(chuàng)建一個(gè)二元的線性分類器,并具有非概率性。對(duì)于給定的新的實(shí)例,該模型將會(huì)把實(shí)例分到兩個(gè)類別中的一個(gè)。
CAN-FD網(wǎng)絡(luò)的狀態(tài)數(shù)據(jù)是高維的,同時(shí)可用的入侵攻擊狀態(tài)數(shù)據(jù)小于CAN-FD總線的正常狀態(tài)數(shù)據(jù)。SVM在分類方面具有良好的性能。對(duì)于小樣本檢測(cè)來(lái)說(shuō),SVM比神經(jīng)網(wǎng)絡(luò)工作得更好,同時(shí)SVM還具有良好的泛化能力。當(dāng)這些優(yōu)勢(shì)使得SVM適合檢測(cè)CAN-FD網(wǎng)絡(luò)的異常狀態(tài)。
數(shù)據(jù)樣本各個(gè)特征具有不同的分布的取值范圍,通過(guò)歸一化將各個(gè)維度的特征值映射到相同區(qū)間,使得各特征值具有相同量綱,處于同一數(shù)量級(jí)。
將特征值從一個(gè)大范圍映射到[0,1]或者[-1,1],如果原始值都是正數(shù),則選擇映射到[0,1],即
式中:a是數(shù)據(jù)集的某類數(shù)值;a*是數(shù)據(jù)集中a的歸一化值;min是數(shù)據(jù)集的該類數(shù)值的最小值;max是數(shù)據(jù)集的該類數(shù)值的最大值。
分類SVM(C-SVM)用于對(duì)CAN-FD子網(wǎng)中的正常消息和異常消息進(jìn)行分類。SVM模型的輸入向量為CAN-FD報(bào)文。在基于SVM的入侵檢測(cè)系統(tǒng)中,CAN-FD總線的檢測(cè)參數(shù)包括消息ID,消息循環(huán)周期和消息數(shù)據(jù)值。其中,對(duì)于消息數(shù)據(jù)值來(lái)說(shuō),CAN-FD報(bào)文的數(shù)據(jù)場(chǎng)為64個(gè)字節(jié)。在安全通信模式下,有效的通信數(shù)據(jù)字節(jié)為48個(gè)[10]。本文將每個(gè)通信數(shù)據(jù)字節(jié)作為一個(gè)消息輸入向量。CANFD消息輸入向量x∈R50定義為
式中:T為CAN-FD消息的最近循環(huán)周期;ID為CAN-FD消息的標(biāo)識(shí)符;Bn(n=1,...,48)為CANFD消息數(shù)據(jù)字段中用于數(shù)據(jù)傳輸?shù)淖止?jié)值。
CAN-FD子網(wǎng)的流量狀態(tài)標(biāo)簽y∈R定義為
式中:-1代表該消息為異常消息,1代表該消息屬于正常的消息。
C-SVM的約束公式為
式中:ω,b是超平面定義的參數(shù);l是SVM訓(xùn)練集中的CAN-FD的幀數(shù);ξi(ξi≥0)是松弛系數(shù)。
由于CAN-FD總線的特征參數(shù)不是線性的,因此需要根據(jù)式(5)將CAN-FD流量狀態(tài)的原始數(shù)據(jù)映射到新的空間,即
使用徑向基函數(shù)(RBF)作為內(nèi)核函數(shù)K進(jìn)行數(shù)據(jù)映射。K由式(6-7)定義如下:
式中,γ是內(nèi)核函數(shù)的預(yù)定義參數(shù)。
CAN-FD流量狀態(tài)(x,y)的訓(xùn)練集從R50×R映射到Hilbert空間×R為
根據(jù)式(9)~式(11)確定超平面(ω·x)+b=0:
式中:C是成本參數(shù)。
基于內(nèi)核函數(shù)K,式(9)~式(11)的對(duì)偶公式分別為式(12)~式(14),即
參數(shù)C和γ的最佳值可以通過(guò)使用訓(xùn)練數(shù)據(jù)集的網(wǎng)格搜索找到,而C-SVM模型由超平面(ω·x)+b=0唯一的解(ω*,b*)進(jìn)行定義。其中
SVM的分類過(guò)程原理如圖4所示,其中Ns是支持向量ω*的數(shù)量。
Ns的數(shù)值將會(huì)直接影響計(jì)算的復(fù)雜度和計(jì)算時(shí)間。對(duì)于每個(gè)CAN-FD消息,輸出標(biāo)簽y由SVM模型預(yù)測(cè),預(yù)測(cè)結(jié)果如下:
圖4 支持向量機(jī)原理Fig.4 Support vector machine
網(wǎng)絡(luò)攻擊類型數(shù)據(jù)庫(kù)的完善是入侵檢測(cè)非常重要的一部分。攻擊數(shù)據(jù)的采集存在多種困難,如道路情況的變化,駕駛員個(gè)人習(xí)慣的差異,車型的變化都會(huì)對(duì)攻擊數(shù)據(jù)的有效性產(chǎn)生相應(yīng)的影響。本文采用CANoe仿真網(wǎng)絡(luò)的正常流量和攻擊流量對(duì)CSVM模型進(jìn)行訓(xùn)練和預(yù)測(cè)。CAN-FD通信數(shù)據(jù)包的訓(xùn)練集是從CANoe模擬的車載網(wǎng)絡(luò)環(huán)境中收集的,如圖5所示。正常流量是基于報(bào)文庫(kù)文件生成和調(diào)度,模擬實(shí)車的網(wǎng)絡(luò)執(zhí)行流量。攻擊流量是在正常流量上隨機(jī)生成的異常流量。
圖5 車載CAN-FD網(wǎng)絡(luò)仿真環(huán)境Fig.5 Simulation environment of CAN-FD networks
其中正常數(shù)據(jù)用標(biāo)簽“1”記錄,異常數(shù)據(jù)記錄標(biāo)簽為“-1”。訓(xùn)練配置為檢測(cè)CAN-FD消息“Engine_Data”的異常狀態(tài)。對(duì)于某個(gè)CAN-FD消息,消息標(biāo)識(shí)符和幀頻是固定的,因此可以過(guò)濾掉消息標(biāo)識(shí)符和幀頻率的異常。在實(shí)驗(yàn)中,模擬攻擊字段是CAN-FD消息的數(shù)據(jù)字段。
實(shí)驗(yàn)的訓(xùn)練集中,正常CAN-FD消息的數(shù)量是10 920,異常CAN-FD消息的數(shù)量是6 000。基于MATLAB的LIBSVM用于模型訓(xùn)練[11]。訓(xùn)練集中的數(shù)據(jù)通過(guò)數(shù)據(jù)歸一化進(jìn)行優(yōu)化。x*中的元素縮放范圍為[-1,1]。
預(yù)定義參數(shù)C和γ會(huì)影響SVM模型的檢測(cè)精度(Acc)。使用網(wǎng)格搜索為C-SVM找到最佳參數(shù)C和γ。訓(xùn)練交叉驗(yàn)證準(zhǔn)確性的結(jié)果如圖6所示。對(duì)于這個(gè)訓(xùn)練數(shù)據(jù)集,最佳log2(C)是5,最佳log2(γ)是-5。
圖6 SVM模型中C和γ交叉驗(yàn)證的精確度Fig.6 Cross-validation accuracy of C and γ in the SVM model
用于測(cè)試的CAN-FD流量數(shù)據(jù)包含正常和異常CAN-FD消息。其中正常CAN-FD消息的數(shù)量為4 000,異常CAN-FD消息的數(shù)量為2 000。數(shù)據(jù)場(chǎng)利用率為48個(gè)字節(jié)中的前8個(gè)字節(jié),剩余32個(gè)字節(jié)的前8個(gè)字節(jié)類似。
圖7顯示了CAN-FD流量入侵檢測(cè)過(guò)程中正常CAN-FD消息和異常CAN-FD消息的分布?!啊稹北硎绢A(yù)測(cè)為“1”的消息,“*”表示預(yù)測(cè)為“-1”的消息。圖7a,7b,7c和7d為根據(jù)輸入矢量的不同元素的縮放數(shù)據(jù)的視圖。檢測(cè)參數(shù)的范圍直接與異常入侵檢測(cè)有關(guān)。前8個(gè)字節(jié)數(shù)據(jù)場(chǎng)中基于不同參數(shù)的檢測(cè)精度的結(jié)果列于表1中。
表1 檢測(cè)參數(shù)對(duì)檢測(cè)精度的影響結(jié)果Tab.1 Value ranges of training data sets and the detection accuracy of testing sets
通過(guò)圖7可以看出:
(1)參數(shù)T為一個(gè)固定的值,因此具有最好的檢測(cè)準(zhǔn)確率。當(dāng)攻擊者使T的值發(fā)送變化時(shí),可以很容易被檢測(cè)出來(lái)。
(2)參數(shù)B1的原始數(shù)據(jù)變化范圍大,單獨(dú)使用B1做檢測(cè)的準(zhǔn)確率較低。
圖7 CAN-FD報(bào)文數(shù)據(jù)集的預(yù)測(cè)結(jié)果Fig.7 Predicting results of CAN-FD messages test datasets
(3)參數(shù)B2的原始數(shù)據(jù)具有分布間距大,植入的數(shù)據(jù)和參數(shù)B1相比,檢測(cè)準(zhǔn)確率更高。
(4)參數(shù)B3的原始數(shù)據(jù)和B2相比,數(shù)據(jù)范圍更廣。對(duì)于邊緣型的數(shù)據(jù),能較好的識(shí)別。
(5)參數(shù)B4的原始數(shù)據(jù)與B3類似,但是數(shù)據(jù)范圍域不同。
(6)參數(shù)B5的原始數(shù)據(jù)和參數(shù)B1類似,單獨(dú)使用B5做檢測(cè)的準(zhǔn)確率較低。
(7)參數(shù)B6的原始數(shù)據(jù)和參數(shù)B3類似。對(duì)于邊緣型的數(shù)據(jù),能較好的識(shí)別。
(8)參數(shù)B7的原始數(shù)據(jù)和參數(shù)B1類似,單獨(dú)使用B7做檢測(cè)的準(zhǔn)確率較低。
(9)參數(shù)B8的原始數(shù)據(jù)和參數(shù)B3類似。對(duì)于邊緣型的數(shù)據(jù),能較好的識(shí)別。
對(duì)于參數(shù)B9,B10,... ,B48的原始數(shù)據(jù)分布對(duì)于檢測(cè)準(zhǔn)確率的影響,和參數(shù)B1,B2,... ,B48之間的關(guān)系一致。
原始數(shù)據(jù)的范圍對(duì)檢測(cè)的準(zhǔn)確率有直接的影響。對(duì)于參數(shù)T,B1,B2,... ,B8,當(dāng)攻擊報(bào)文的異常數(shù)據(jù)只篡改單個(gè)數(shù)據(jù)時(shí),基于支持向量機(jī)的算法異常檢測(cè)準(zhǔn)確率如圖8所示。
圖8 單維度數(shù)據(jù)范圍與預(yù)測(cè)準(zhǔn)確率的變化Fig.8 Changes in single-dimensional data range and prediction accuracy
某個(gè)CAN-FD消息的消息標(biāo)識(shí)符和循環(huán)周期的正常值是固定的。如果攻擊者僅更改消息標(biāo)識(shí)符ID和循環(huán)周期T,則可以檢測(cè)到異常狀態(tài)。在這種情況下,檢測(cè)精度高達(dá)95%。
如果攻擊目標(biāo)在CAN-FD幀上的數(shù)據(jù)字段上,則檢測(cè)精度與值范圍有關(guān)。對(duì)于某個(gè)字節(jié),字節(jié)值增加的范圍將導(dǎo)致檢測(cè)精度降低。因?yàn)檎W止?jié)值范圍正在增加,異常字節(jié)值范圍正在減小。當(dāng)攻擊者篡改的數(shù)據(jù)在多個(gè)數(shù)據(jù)位時(shí),檢測(cè)正確率有明顯的提升。
(1)攻擊篡改發(fā)生在B1,B5和B7的檢測(cè)精度低于 90%,而攻擊內(nèi)容發(fā)生在B2,B3,B4,B6和B8時(shí),檢測(cè)的準(zhǔn)確性更高。
(2)當(dāng)攻擊篡改的目標(biāo)超過(guò)一個(gè)字節(jié)時(shí),異常入侵檢測(cè)系統(tǒng)具有更好的性能。檢測(cè)準(zhǔn)確性在(B1,B2),(B3,B4),(B5,B6),(B7,B8)上超過(guò) 90%。
(3)當(dāng) 攻 擊 篡 改 的 目 標(biāo) 在 (B1,B2,B3,B4),(B5,B6,B7,B8)上時(shí),檢測(cè)準(zhǔn)確性超過(guò) 98%。
(4)當(dāng)攻擊篡改的目標(biāo)在(B1,B2,B3,B4,B5,B6,B7,B8)上時(shí),檢測(cè)準(zhǔn)確性超過(guò)99%。
通過(guò)以上的數(shù)據(jù)檢測(cè)結(jié)果可以看出,將支持向量機(jī)的異常檢測(cè)算法應(yīng)用于CAN-FD網(wǎng)絡(luò)時(shí),具有較高的異常數(shù)據(jù)檢測(cè)正確率,可以應(yīng)用于入侵檢測(cè)系統(tǒng)。根據(jù)攻擊篡改的數(shù)據(jù)不同,檢測(cè)準(zhǔn)確率能達(dá)到為80%或更高?;谥С窒蛄繖C(jī)的C-SVM算法對(duì)于CAN-FD網(wǎng)絡(luò)的入侵檢測(cè)具有有效性。
針對(duì)提出的基于SVM模型的入侵檢測(cè)算法,表2從檢測(cè)準(zhǔn)確率、計(jì)算性能和其限制條件等方法出發(fā),和部分已知的網(wǎng)絡(luò)入侵檢測(cè)方法進(jìn)行對(duì)比。相比于其他的入侵檢測(cè)方法,本文中利用SVM模型的CAN-FD網(wǎng)絡(luò)入侵檢測(cè)算法可適用于多種攻擊類型的網(wǎng)絡(luò)異常檢測(cè),具有檢測(cè)準(zhǔn)確率高的特點(diǎn)。同時(shí)該方法不需要對(duì)網(wǎng)關(guān)或者ECU的硬件進(jìn)行修改,可以有效地降低硬件升級(jí)成本。但同時(shí)該方法對(duì)算法的計(jì)算性能要求也相對(duì)較高。
表2 入侵檢測(cè)方法評(píng)估對(duì)比Tab.2 Evaluation results of intrusion detection methods
單一維度里的原始數(shù)據(jù)范圍對(duì)于數(shù)據(jù)異常檢測(cè)的正確率有直接的影響??梢钥紤]通過(guò)數(shù)據(jù)維度劃分的方式,降低CAN-FD報(bào)文中單一維度里的數(shù)據(jù)范圍。根據(jù)式(2)中的定義,采用的數(shù)據(jù)維度劃分方式為基于報(bào)文周期、標(biāo)識(shí)位ID和數(shù)據(jù)字節(jié)。由于支持向量機(jī)本身對(duì)于高維數(shù)據(jù)不敏感,可以采用多種維度劃分方式。另一種維度劃分方式是通過(guò)數(shù)據(jù)的定義來(lái)劃分,使用報(bào)文中字節(jié)在報(bào)文數(shù)據(jù)文件里的定義,可以降低單一維度的數(shù)據(jù)變化范圍。
因?yàn)榉椒ㄕ摰木壒剩诋惓H肭謾z測(cè)的攻擊場(chǎng)景未知的情況下,無(wú)法避免異常入侵檢測(cè)中的錯(cuò)誤。為了提高入侵檢測(cè)系統(tǒng)的性能,可以結(jié)合誤用入侵檢測(cè)方法和異常入侵檢測(cè)方法。出于對(duì)網(wǎng)絡(luò)性能和ECU計(jì)算性能的保護(hù),基于支持向量機(jī)的入侵檢測(cè)方法更合適應(yīng)用于遠(yuǎn)程服務(wù)器的部署。
從網(wǎng)絡(luò)入侵檢測(cè)和保護(hù)的角度出發(fā),基于CIDF通用入侵檢測(cè)模型建立了CAN-FD入侵檢測(cè)架構(gòu),并提出了一種基于支持向量機(jī)的異常入侵檢測(cè)方法。通過(guò)參數(shù)分析和預(yù)測(cè)正確率的評(píng)估,對(duì)CANFD支持向量機(jī)的維度劃分方法進(jìn)行了優(yōu)化。相比于其他的入侵檢測(cè)方法,本文利用SVM模型的CAN-FD網(wǎng)絡(luò)入侵檢測(cè)算法可適用于多種攻擊類型的網(wǎng)絡(luò)異常檢測(cè),具有檢測(cè)準(zhǔn)確率高的特點(diǎn)。在后續(xù)的研究工作中將繼續(xù)優(yōu)化檢測(cè)算法的計(jì)算資源消耗。