張海春,姜榮帥,王 頡,魯趙駿,劉政林
(1.華中科技大學光學與電子信息學院,武漢430074;2.深圳開源互聯網安全技術有限公司,深圳518000;3.華中科技大學網絡空間安全學院,武漢430074)
現代汽車不再是簡單的機械設備,而是集成了上百個電子控制單元(electronic control unit,ECU)的 復 雜 系 統[1]。各ECU通 過 控 制 器 局 域 網(controller area network,CAN)總線連接,汽車在不斷智能化、網聯化的同時也暴露了藍牙、蜂窩網絡等各類攻擊入口,導致入侵車載CAN總線的可能性大大增加[2]。
車載CAN總線在設計時充分考慮了汽車通信嚴苛的性能需求,成為事實上的汽車總線標準[3]。但是安全機制的缺乏帶來了重大安全隱患,惡意攻擊者一旦成功訪問車載CAN總線便可以注入任意數據幀。數據加密、身份認證等安全機制對計算資源要求較高、計算耗時較長,無法滿足通信實時性,因此不能應用于車載CAN總線。相比于傳統的安全機制,異常檢測不會干擾車載CAN總線正常通信,具有低成本、靈活部署、高兼容性的優勢,研究人員對此開展了大量的研究工作。
文獻[4]中將CAN總線上連續兩個CAN ID相同的數據幀發送時間間隔超過閾值視為異常,但是沒有考慮非周期性數據幀的影響。文獻[5]中提出基于電壓特征變化的異常檢測方案,利用ECU位置的不同導致的電阻及電信號特征的不同檢測異常節點,但是該方法需要示波器等大型設備持續采集及處理總線電信號。文獻[6]中提出一種基于信息熵的CAN ID異常檢測機制,但是僅能檢測出CAN總線存在異常,無法檢測出異常的細節信息。
本文中在分析了基于信息熵的車載CAN總線異常檢測機制的基礎上提出了基于相對熵的車載CAN總線異常檢測機制,具體貢獻如下:(1)該機制將檢測窗口由時間窗口改為數據窗口,改善了時間窗口內無法有效采集到足夠非周期數據幀的情況;(2)該方案采用相對熵作為檢測依據,可以檢測出導致總線異常的具體攻擊類型、異常數據幀的CAN ID,具備較好的檢測效果。
CAN總線是多主機廣播通信協議,采用雙絞線架構,減少了線路布局,增強了抗噪聲和干擾能力。網絡的分布式體系結構易于維護,降低了系統成本。速度可達1 Mbit/s,可滿足汽車總線通信對于大帶寬、抗干擾能力強、實時性強的需求,在汽車總線網絡中得到了廣泛應用。
如圖1所示,依據仲裁字段CAN ID的長度,CAN數據幀分為標準幀和擴展幀[7]。標準數據幀主要由7個字段組成:數據幀起始字段(SOF),通知每個接收器數據傳輸開始;仲裁字段防止數據幀在傳輸過程中產生沖突;數據域傳輸最多8個字節的數據;循環冗余碼用于標識數據幀是否正常發送到接收器,若接收器正常接收到數據幀則會激活ACK位;數據幀結束位表示數據幀的傳輸過程已結束;控制域解決總線數據競爭;數據長度字段(DLC)定義了數據域的長度。

圖1 CAN總線數據幀結構
CAN總線缺乏基本的安全機制[8],其脆弱性表現在以下6個方面。
(1)缺乏身份認證。CAN總線沒有源標識符字段,目的標識符字段,任何節點都可以偽造成惡意節點發送報文。接收方無法識別發送方是否是真實的節點。
(2)缺乏加密機制。基于數據傳輸的實時性考慮,CAN總線協議未采用加密機制,攻擊者可以監聽總線數據,造成隱私泄露。
(3)缺乏完整性校驗。CAN總線缺乏數據完整性校驗機制,數據幀接收者并未檢查數據的完整性,攻擊者可惡意篡改傳輸數據。
(4)廣播傳輸機制。CAN數據幀以廣播形式發送到CAN總線,CAN總線上的所有ECU都可以接收到數據幀,這意味著惡意節點可以監聽到所有的總線傳輸數據[9]。
(5)基于ID的仲裁機制。CAN ID決定了CAN數據幀的傳輸優先級。數據幀CAN ID越小,其在總線上傳輸的優先級越高。惡意攻擊者可以構造較高優先級的數據幀不斷發送到總線上造成DoS服務攻擊。
(6)帶寬有限。高速CAN總線的數據傳輸速率僅為500 Kbit/s,數據載荷長度最高只有64 bit[8],限制了CAN總線協議提供較強的訪問控制功能,為攻擊者攻擊ECU降低了難度。
基于車載CAN總線的脆弱性,車載CAN總線威脅模型如圖2所示。攻擊者可以發動4種基本攻擊組合為實際的攻擊案例,包括監聽攻擊、重放攻擊、偽造攻擊、注入攻擊。
(1)監聽攻擊。車載CAN總線利用廣播機制傳輸數據,在未加密數據的情況下,攻擊者ECU?A可以監聽并分析CAN總線數據,如圖2(a)所示。通過重放或者變異監聽獲取的數據幀可以發動重放攻擊、模糊測試[10]等攻擊,是實際攻擊的基礎。
(2)重放攻擊。在沒有身份認證與數據完整性校驗的情況下,攻擊者可以發動重放攻擊[11-12]。如圖2(b)所示,惡意節點ECU?A可以發送來自ECU?C的數據到CAN總線,繼而控制ECU?B。

圖2 車載CAN總線威脅模型
(3)偽造攻擊。如圖2(c)所示,基于ECU?B數據幀內容與總線頻率,惡意攻擊者可以掛起ECU?B,繼而利用ECU?B的CAN ID偽造數據幀控制ECU?C。
(4)注入攻擊。如圖2(d)所示,攻擊者利用仲裁機制構造基于較高優先級的CAN總線數據幀占據CAN總線[13],引發總線拒絕服務,也可以基于特定的CAN ID構造數據幀控制目標ECU。
在19世紀50年代,熵的定義由Rudolf Clausius提出,用來描述系統的混亂程度。1948年,香農革命性地將熵的概念引入信息學,用信息熵的概念量化了信息的不確定度。目前,信息熵理論是常見的入侵檢測基礎理論之一。
假設系統X,其有限的可能狀態集為{X1,X2,…,XN},則系統X的信息熵為

式中p(Xi)是狀態Xi在系統X中的概率。為評估CAN總線的信息熵和相對熵,可用β=(S,T)表示當前檢測窗口的CAN總線系統,S={ID1,ID2,…,IDN}表示各個CAN ID數據幀集合,T表示當前檢測窗口記錄的所有CAN總線數據幀集合,則當前檢測窗口CAN總線系統β的信息熵為

設NIDi是當前檢測窗口中CAN ID為IDi的數據幀數量,N是當前檢測窗口所有數據數據幀的總數量,則

CAN ID為IDi的數據幀信息熵為

在信息論中,相對熵等價于兩個概率分布的信息熵的差值。設P(X)和Q(X)是隨機變量X上的兩個概率分布,則在離散隨機變量的情形下,相對熵的定義為

假設q(IDi)是CAN ID為IDi的報文在正常情況下的分布,即不受攻擊時的正常分布,p(IDi)是CAN ID為IDi的報文在受攻擊情況下的分布,則CAN ID為IDi的報文的異常情況對正常情況的相對熵為

當總線沒有遭受攻擊時,KL(IDi)的值接近于0,當總線中產生攻擊時,KL(IDi)會產生明顯的變化。遭受DoS攻擊的數據報文相對熵為

顯 然p(IDi)>q(IDi),故DoS攻 擊 數 據 幀KL(IDi)>0。未遭受DoS攻擊的數據幀相對熵為

顯然p(IDi) 重放攻擊下,攻擊者一般重放特定CAN ID的數據幀到總線,占用總線資源較少,理想情況下,未被重放的數據幀出現頻率在重放攻擊下不變。假設攻擊者以n倍的頻率重放特定CAN ID的數據幀,則 顯然,KL(IDi)>0,其它沒有被重放的數據幀,出現的概率不變,KL(IDi)=0。因此,重放攻擊下CAN網絡的相對熵會產生明顯的波動。 基于信息熵的異常檢測機制檢測窗口為時間窗口,檢測機制分為兩個階段:分析階段和檢測階段。 分析階段:無攻擊情況下,采集車載CAN總線中一定時間窗口的CAN總線數據幀,確定最佳時間窗口長度、異常信息熵閾值、CAN ID白名單,構成CAN總線異常檢測特征庫。 檢測階段:依據特征庫,在設定的時間窗口內,首先判斷數據幀CAN ID是否在白名單中,超出白名單中的數據幀即為異常數據幀。其次,判斷時間窗口內的數據幀信息熵是否超出閾值,超出閾值即為異常。 時間窗口的大小不僅影響檢測精度,還影響異常檢測的最大響應時間。如果時間窗口過大,異常檢測的響應時間過長。如果時間窗口過小,信息熵波動大,會出現誤判的現象。 圖3 展示了時間窗口分別為1、3、5、7、10和20 s的信息熵波動情況。無論時間窗口多大,信息熵都會在一定范圍內波動。當時間窗口為1 s時,不足以覆蓋一個數據幀傳輸周期,信息熵波動幅度最大;當時間窗口為10、20 s時,異常檢測響應時間較長。當時間窗口選定為3 s時,信息熵變化范圍較大,信息熵變化范圍分別為(3.685 491,3.693 019)。當滑動時間窗口選定為5、7 s時,信息熵變化較小,信息熵變化范圍 分 別 為(3.687 199,3.688 828)、(3.687 091,3.688 774)。為平衡異常檢測的準確率和檢測的實時性,本文選定T=5 s為最佳時間窗口。 圖3 不同時間窗口CAN總線信息熵 考慮到非周期性數據幀對時間窗口的低敏感度,在一定時間窗口內不一定能采集到足夠的非周期數據幀,基于相對熵的異常檢測機制未采用時間窗口,而是將采集一定數量數據幀的數據窗口作為檢測窗口。基于相對熵的異常檢測機制分為兩個階段:分析階段與檢測階段。 分析階段:確定最佳數據窗口大小、CAN ID白名單和相對熵閾值作為異常檢測特征數據庫。 檢測階段:依據特征庫,檢測數據幀CAN ID是否異常,檢測數據窗口內的相對熵是否異常。 數據窗口的大小非常重要,數據窗口過大,CAN ID覆蓋率較高,但是異常檢測響應時間過長。數據窗口過小,數據幀數量較少,CAN ID覆蓋率較低。 圖4 為數據窗口內采集100、200、300個數據幀條件下的相對熵變化情況。數據窗口增加會導致異常檢測響應時間變長,以周期為10 ms的數據幀為例,時間窗口設置為300,檢測響應時間不低于3 s。隨著數據窗口增加,相對熵絕對值波動愈加平緩。數據窗口為200與300的情況下,相對熵絕對值的波動明顯小于數據窗口為100的情況。故隨著數據窗口變大,異常檢測率會增加。數據窗口低于100,則相對熵絕對值過于隨機,波動較大,不利于提高檢測率。為平衡響應時間與檢測率,本文選取數據窗口大小為T=200。 圖4 不同數據窗口CAN總線相對熵 本實驗用于安全評估所采用的CAN總線收發設備為創芯科技CANalyst?II分析儀,實驗車輛為某型號福特車輛。 攻擊者從汽車CAN總線采集3 000條CAN數據幀作為重放攻擊輸入數據。本實驗中,攻擊者隨機選取第22、27、33個時間窗口對車輛發動重放攻擊。圖5為5 s時間窗口重放攻擊下的CAN總線信息熵變化。在22、27、33個時間窗口處,系統信息熵明顯偏離(3.687 199,3.688 828)的閾值范圍。依據特征數據庫,位于上述3個時間窗口處重放攻擊造成的數據異常可被檢測出來,系統在遭遇重放攻擊時會給出警報。 圖5 重放攻擊下的CAN總線信息熵(時間窗口=5 s) 根據CAN網絡基于優先級傳輸的特性,以0.22 ms的發送速率,向CAN網絡中注入CAN ID為0x000的數據包會導致CAN拒絕服務。本實驗分別在22~26、32~33、38~40的時間窗口內對車載CAN網絡發動DoS攻擊。圖6為5 s時間窗口DoS攻擊下的CAN總線信息熵變化。實驗表明,在22~26、32~33、38~40時間窗口內,CAN總線信息熵出現明顯偏離正常(3.687 199,3.688 828)范圍的現象,異常檢測機制可以有效檢測出DoS攻擊造成的數據異常。但是DoS攻擊與重放攻擊引起的信息熵變化并無明顯區別,基于信息熵的異常檢測機制雖然可以檢測到總線異常,但是卻無法區分引起異常的攻擊類型。 圖6 DoS攻擊下的CAN總線信息熵變化(時間窗口=5 s) 攻擊者從汽車CAN總線采集200條數據幀統計CAN總線相對熵。實驗中,攻擊者向車載CAN總線重放CAN ID為0x211、0x275、0x433、0x4b0的數據幀模擬數據重放攻擊。圖7為模擬重放攻擊下CAN總線的相對熵情況。與圖4正常狀態下CAN總線的相對熵相比,CAN ID為0x211、0x275、0x433、0x4b0的數據幀相對熵變化較為明顯,檢測機制可以檢測出重放攻擊導致的CAN總線相對熵異常。 圖7 重放攻擊下CAN總線相對熵異常(滑動窗口200) 攻擊者以較高頻率向CAN總線注入CAN ID為0x190的數據幀,基于CAN總線傳輸的廣播機制與仲裁機制,CAN ID為0x190的數據幀會占用總線資源,產生拒絕服務效果。圖8為DoS攻擊下的CAN總線相對熵,結果顯示CAN ID為0x190的數據幀相對熵產生了大幅度變化,該機制可以檢測出DoS攻擊造成的CAN總線相對熵異常。與重放攻擊相比,DoS攻擊造成的相對熵變化更為顯著,基于相對熵的異常檢測機制不僅可以檢測出兩種攻擊造成的CAN總線異常,還可以檢測出具體的攻擊類型與異常數據幀CAN ID。 圖8 DoS攻擊下的CAN總線相對熵(滑動窗口200) 本文中分析了車載CAN總線的安全漏洞并描述了針對車載CAN總線的威脅模型。為檢測外部攻擊造成的車載CAN總線數據幀流量異常,首先分析了基于信息熵的車載CAN總線異常檢測機制,該機制能夠檢測出外部攻擊造成的總線異常現象和異常數據幀CAN ID,但是無法區分導致異常的具體攻擊類型,例如DoS攻擊、重放攻擊等。在此基礎上,提出了基于相對熵的車載CAN總線異常檢測機制,該機制將基于信息熵的異常檢測機制中的時間窗口改為數據窗口,改善了前者無法檢測非周期數據幀異常的缺陷。在某型號福特車輛上的實驗結果表明,基于相對熵的車載CAN總線異常檢測機制不僅可以檢測出外部攻擊造成的車載CAN總線流量異常及異常數據幀CAN ID,還可以進一步區分DoS攻擊、重放攻擊等外部攻擊的具體類型。未來,本課題將結合數據挖掘技術進一步完善數據窗口的參數選取機制,基于不同車輛的CAN總線流量特征自動設置數據窗口大小以適應不同車輛,增大本文異常檢測機制的適用范圍。
2.2 基于信息熵的異常檢測機制

2.3 基于相對熵的異常檢測機制

3 實驗及分析
3.1 基于信息熵的異常檢測


3.2 基于相對熵的異常檢測


4 結論