Scission: Signal Characteristic-Based Sender Identification and Intrusion Detection in Auto...
出處: CCS’18
作者: Marcel Kneib、Christopher Huth
單位: Bosch Engineering GmbH
原文:ofollow,noindex" target="_blank">https://dl.acm.org/citation.cfm?id=3243751
隨著汽車可連線性的增強,攻擊面也越來越多。這種攻擊不僅對汽車本身造成破壞,也可能進一步危害人身安全。CAN協議由於設計之初並沒有考慮安全性,比如對傳送者的身份進行認證,驗證訊息的完整性等等,這就造成了一旦連線在CAN總線上的ECU被攻擊者惡意控制,攻擊者就能任意偽造訊息。本文,來自博世的工程師設計了Scission系統,用CAN報文的物理特性來判斷訊息的合法性。
介紹
由於汽車的開放性和高連線性,汽車安全已成為一個主要問題。假如攻擊者可以物理訪問ECU,就能控制很多安全敏感的功能,並且無視駕駛員的控制,比如停止發動機或停止制動。由於要求進行物理訪問是不現實的,有研究者對汽車進行了系統的分析並利用其他攻擊面,包括遠端連線,例如藍芽和蜂窩網路。使用這些遠端攻擊,使得對ECU的攻擊變得更加現實。Miller和Valasek展示的在Jeep Cherokee上的攻擊,導致140萬輛汽車被召回。他們通過蜂窩網路訪問車內的網路,進而控制引擎,以及剎車和轉向等。研究表明,CAN仍然是當下使用最廣泛的用於車載系統的匯流排協議,可以在今天的每輛車中找到。但是大多數車載系統中沒有實現足夠的安全措施,攻擊者可以傳送偽造的CAN訊息到其他裝置,CAN的接收者無法識別傳送者,從而無法驗證訊息的真實性。
背景
CAN
CAN是一種車用匯流排標準,於1983年在Robert GmbH設計。 它使用兩根絞合線(高,低)把多個ECU連線起來,兩端用120Ω電阻端連線。低速CAN訊號在傳輸顯性訊號(0)時,驅動CANH端抬向5V,將CANL端降向0V。在傳輸隱性訊號(1)時驅動CANH和CANL為2.5V。CAN幀的訊號如圖所示,其中高電平為藍色,低電平為紅色。
資料通過CAN幀傳輸,每個有效載荷能夠承載8個位元組。資料幀用唯一識別符號(一般是11bit)來表示資料的優先順序和含義。注意沒有節點地址存在。由於CAN是廣播匯流排,因此多個匯流排參與者可以同時訪問匯流排。顯性訊號遮蔽隱性訊號,也就是說,識別符號越小,優先順序越高。
一些研究者發現,CAN報文的物理特性可作為識別傳送者身份的依據。比如說電阻的阻值,一般來說有5%的容差,那麼這個容差的大小就可以作為相應的ECU的一個特徵被識別出來。並且這種物理特性可以保持一定的時間不變,同時攻擊者如果想影響該屬性的話,必須通過物理接觸的手段。
作者選取物理特性作為指紋: * 電源電壓 * grounding * 電阻,導線 * 匯流排拓撲的瑕疵
相關工作
- CAN+ protocol,即通過增加MAC,這需要軟硬體相容這種新協議,作者首先否定了這種方案
- additional messages,也是通過增加MAC,只需更改協議,但對匯流排負載提出了更高的要求
- truncated MACs,是一種折中的方案,即取MAC的一部分,為了避免衝突至少使用64bit ,並且金鑰管理和維護計數器都需要額外的算力
作者同時指出,通過增加MAC的方式只能防止訊息被篡改,但偽造的訊息依然可以傳送。
- Clock-based Intrusion Detection System,只能識別週期性的CAN報文,已被研究者證明不安全
- CAN訊號的特徵可以識別origin,並且這個特徵很長一段時間不變
- 使用extended identifier field的18bit 來識別訊息的origin,但需保證這extended不被用作別的用途,同時也許重新設計ECU使得其支援擴充套件的identifier field
- Voltage-based attacker identification,只使用了數個CAN報文的電壓平均值作為特徵,不夠穩定
SCISSION
Security and Threat Model
不同的車上的ECU型號不同,所構成的網路也各不相同。根據ECU的功能可以分為powertrain, comfort 和 body。如圖,展示了兩種示例架構。Scission使用一個附加的ECU接到總線上,來監控匯流排。為了防止Scission被bypass,假設該ECU是被安全的實現的(即可信的)。對於整合進入系統的ECU,閘道器可以確定收到的訊息是否從合法的ECU傳送。
CAN沒有提供驗證機制,因此每個匯流排參與者都能夠使用所有可用的識別符號並且接收方無法驗證訊息是否來自合法的傳送者。 為了彌補這個缺點,Scission根據CAN資料包的物理特性來確定收到的資料包的身份。所以,只有當被控制的ECU或者額外的的ECU傳送偽造的訊號時,Scission才能檢測到攻擊者。
- Compromised ECU,作者認為最容易被攻擊的ECU是那些帶有連線能力的,比如 cellular, WiFi 和 Bluetooth。因為這樣,攻擊者就能遠端傳送CAN資料包。
- Unmonitored ECU,針對passive 或者 unmonitored device,比如利用更新機制插入惡意程式碼
- Additional ECU,攻擊者加一塊ECU,當然這需要物理接觸汽車,典型的比如通過OBD-II獲取車的狀態資訊
- Scission-aware Attacker,攻擊者試圖誤導IDS,比如通過消耗電池,或者使ECU所處的環境的溫度發生變化。
Fingerprinting ECUs
如圖4所示,首先對訊號進行取樣,然後進行預處理,接收的資料被分成單獨的位元並根據特徵排序。隨後,提取時域和頻域的不同特徵。這些特徵,就是了實際的指紋。 系統啟動的時候,訓練這些指紋的模型,然後將其用於分類計算概率。在之後,系統監控傳送的資料,當檢測到攻擊時觸發警報。
識別指紋的步驟可以分為如下幾步:
* Sampling
取樣率20M/s,取高低電壓的差值作為原始資料
* Preprocessing
對原始資料分組,根據波形分成顯性上升沿,顯性非上升沿和隱形下降沿
-
Feature Extraction 對每組資料分別 計算最大值,平均值,方差等等。。 Relief-F,特徵選擇演算法
-
Model Generation and Classification Logistic Regression,分類演算法,有監督的學習。 那麼為什麼是有監督的學習?下面給出瞭解釋。
-
Deployment and Lifecycle 系統必須要保證學習的階段不被幹擾,所以這一階段最好是放在整車廠進行,那如何保證之後學習的引數不被因為時間的變化準確度下降?作者提出需定期對車進行檢修,或者使用線上的機器學習演算法,(那麼線上的話學習的資料會不會被汙染?這個時候就要用到加密)
Intrusion Detection using Fingerprints
-
Detecting Compromised ECUs 根據訓練的分類模型,每當接受到一個新的資料包就預測其合法的概率。當資料被標記為未被識別ECU時,就有很大的概率產生誤報。 如何防止誤報?tmax記錄每個ECU允許傳送的異常資料包的概率的閾值 那麼會不會導致漏報?tmin記錄每個ECU應該傳送的正常的資料包的概率的最低閾值
-
Detecting Unmonitored ECUs
-
Detecting Additional ECUs 對於Unmonitored和Additional的檢測,系統會為每個ECU記錄一個全域性的counter,當檢測到可疑的資料包counter就會+1,正常的資料包會-1。對於Unmonitored,檢測出ECU不應該發出不屬於其的報文很容易。對於Additional ECUs,因為加了一塊ECU,會導致bus的拓撲改變,因此每個ECU都會被影響,counter會迅速增加。
-
Detecting Scission-aware Attacker 在學習階段,Scission是沒有作用的,因此必須嚴格保證學習階段不被幹擾。
評估
作者最終實現了很高概率的識別接收到的CAN資料包的傳送者,並且根據這些特徵識別compromised, unmonitored 和 additional ECUs。作者分別在一個原型系統,Fiat 500, Parsche Panamera S E-Hybrid上做了測試。
Fingerprinting ECUs
每個ECU的前200個frame作為訓練集。在這部分,作者使用了5個Arduino Uno作為CAN的原型,每個Arduino驅動兩塊CAN shield。每條匯流排的兩端連上電阻,雙絞線。連線同一電源。
Prototype,混淆矩陣,每一列是收到的資料能夠用指紋正確區分的概率。
Fiat 500,真實的測試,有6個ECU,為了能發測試資料,接了兩塊樹莓派作為ECU
Porsche Panamera S E-Hybrid,真實的測試,同樣又接了兩塊樹莓派
Detecting Compromised ECUs
Prototype,用兩塊Arduino傳送偽造的資料包,98%的攻擊識別率 Fiat 500,用兩塊Raspberry Pis,100%的攻擊識別率 Porsche Panamera S E-Hybrid,96.82的攻擊識別率
Detecting Unmonitored ECUs
只在Fiat 500上做了實驗,在不識別ECU7的前提下,在200條可信的資料包裡插入從ECU1發出的偽造的資料包,異常包加4,正常包減1,閾值200
Detecting Additional ECUs
Prototype,先記錄沒有ECU9的資料包,並用這些資料訓練,在420個正常的資料包後,傳送惡意的資料包,在第53個惡意資料包發出後,ids檢測出異常
Fiat 500,在傳送390個正常的資料包後,傳送惡意的資料包,在第77個惡意資料包發出後,ids檢測出異常
Porsche Panamera S E-Hybrid,在傳送370個正常的資料包後,傳送惡意的資料包,在第79個惡意資料包發出後,ids檢測出異常
總結
作者認為在車載網路中使用IDS是一種很有前途的技術。作者提出了一種從CAN訊號中提取指紋的方法識別收到訊息的傳送者的方法。評估顯示,Scission能夠正確識別的概率為99.85%。他們所提出的IDS也能夠檢測到來自未受監控和其他裝置的攻擊。