作者 |肖博陽上??匕部尚跑浖?chuàng)新研究院研發(fā)工程師
來源 |鑒源實驗室
01 CAN總線
1.1 CAN總線是什么?
CAN是控制器局域網(wǎng)絡(Controller Area Network, CAN)的簡稱,是ISO國際標準化的串行通信協(xié)議,由以研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國BOSCH公司開發(fā),并最終成為國際標準(ISO 11898)。CAN總線是國際上應用最廣泛的現(xiàn)場總線之一。
1.2 為什么要使用CAN總線?
在汽車產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低功耗、低成本的要求,各種各樣的電子控制系統(tǒng)被開發(fā)出來。由于這些系統(tǒng)之間通信所用的數(shù)據(jù)類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數(shù)量也隨之增加。為適應“減少線束的數(shù)量”“通過多個LAN,進行大量數(shù)據(jù)的高速通信”的需要,1986 年德國電氣商博世公司開發(fā)出面向汽車的CAN 通信協(xié)議。此后,CAN 通過ISO 11898及ISO 11519進行了標準化,在歐洲已是汽車網(wǎng)絡的標準協(xié)議。

圖1汽車CAN總線(From gast-auto.com)
1.3CAN總線的網(wǎng)絡安全威脅分析
CAN網(wǎng)絡不是一個封閉的內(nèi)部網(wǎng)絡,可直接通過車內(nèi)的OBD診斷接口接入CAN總線,也可通過智能手機、云服務器等與T-Box建立連接間接接入CAN總線,這樣就給不法者入侵CAN網(wǎng)絡提供了可乘之機。通過對CAN總線協(xié)議與網(wǎng)絡特性進行簡要的TARA(Threat Analysis and Risk Assessment)分析,可將CAN網(wǎng)絡的威脅安全屬性總結為以下幾方面:
(1)機密性
CAN總線的通信方式是全局廣播,因此只要接入CAN總線的任一節(jié)點,就能輕易訪問CAN總線上所有流量信息。CAN數(shù)據(jù)以明文形式傳輸,沒有任何消息驗證碼、數(shù)字簽名的保護。
(2)可用性
CAN總線采用基于優(yōu)先級的仲裁方式,即當有多條消息同時需要發(fā)出時,優(yōu)先級高的先行發(fā)出,因此攻擊者可以利用這一點,在某節(jié)點以高頻發(fā)送具有高優(yōu)先級的報文以阻塞其他節(jié)點的消息發(fā)出,進而導致ECUs無法正常工作。
(3)真實性
CAN報文數(shù)據(jù)內(nèi)容不包含發(fā)送方的任何信息,這使節(jié)點無法判斷消息的來源是其他合法節(jié)點還是攻擊者,因此外部攻擊者可以偽裝成任一ECU節(jié)點發(fā)送惡意消息。
(4)完整性
CAN協(xié)議本身雖然有CRC校驗對傳輸過程進行完整性驗證,但不能防止數(shù)據(jù)被第三方惡意修改后重新注入。
02 滲透測試
2.1 什么是滲透測試
滲透測試是一種通過模擬惡意攻擊者的技術和方法,挫敗目標系統(tǒng)的安全控制措施,取得訪問控制權,并發(fā)現(xiàn)具有業(yè)務影響后果安全隱患的一種安全測試與評估方式。
2.2 為什么要對CAN總線做滲透測試?
上文已經(jīng)對CAN總線的潛在風險與滲透測試做過簡要的介紹,因此不難發(fā)現(xiàn),對于有著一定潛在風險的通信協(xié)議,對其進行滲透測試是不可或缺的。通過滲透測試,我們能對CAN存在的漏洞等安全脆弱點進行探測、利用,進一步得到目標系統(tǒng)存在的安全隱患,使目標機構和組織可以參照生成的滲透測試報告進行維護。
2.3滲透測試的方式
(1)模糊攻擊
模糊攻擊指的是通過生成一系列隨機、無效或非預期的報文后,將這些報文發(fā)送至目標總線上,以達到目標總線出現(xiàn)非預期的行為的一種滲透測試方式。模糊攻擊不需要了解攻擊對象本身的數(shù)據(jù)特點(如CAN報文的某一數(shù)據(jù)位所表示的意義),只需要構建符合CAN報文格式的數(shù)據(jù),因此可以通過模糊攻擊挖掘系統(tǒng)的潛在漏洞。
模糊攻擊可以測試當前被測對象是否有做報文數(shù)據(jù)完整性校驗的安全防護措施,若無安全防護措施,則被測對象將可能產(chǎn)生非預期的行為。模糊可以在不同層面上進行,分別為:原始報文層、系統(tǒng)信號層、協(xié)議層。針對這三種層面,均可使用隨機模糊、遍歷模糊或自定義的模糊策略進行模糊攻擊。
例如將報文ID設置為完全隨機、報文DLC設置為4、報文Data設置為”1X 12 34 56”,其中X表示需要模糊的數(shù)據(jù),對CAN總線進行模糊攻擊,可以看到發(fā)送的模糊報文如圖2所示。

圖2模糊攻擊報文信息
(2)重放攻擊
重放攻擊指的是惡意地將有效報文發(fā)送至目標總線上,使目標系統(tǒng)重現(xiàn)該報文所控制的行為或?qū)臓顟B(tài)的一種滲透測試方式。重放攻擊的前提即是上文介紹的CAN總線利用全局廣播進行通信,攻擊者利用這點能夠輕而易舉地獲取到CAN總線上所有的報文信息。重放攻擊也不需要了解攻擊對象本身的數(shù)據(jù)特點或工作原理,只需原封不動地將報文發(fā)送即可達到攻擊目的。重放攻擊可以測試當前被測對象是否有做關于數(shù)據(jù)來源的真實性校驗的安全防護措施,若沒有則被測對象將會執(zhí)行惡意重放報文的控制行為。
(3)DoS攻擊
DoS是Denial of Service的簡稱,即拒絕服務,指的是通過臨時或無限期干擾連接于網(wǎng)絡的服務。DoS攻擊基于上文介紹的CAN總線以報文優(yōu)先級進行仲裁得以實現(xiàn),對于CAN總線,DoS攻擊可以理解為頻繁向目標總線發(fā)送高優(yōu)先級報文來占滿目標總線的資源,提高總線負載率,使其他正常報文不可傳輸。DoS攻擊需要了解CAN報文的優(yōu)先級仲裁機制,即CAN報文的id位越小,CAN報文的優(yōu)先級越高;在具有相同id時,數(shù)據(jù)幀的優(yōu)先級大于遙控幀的優(yōu)先級、標準幀的優(yōu)先級大于拓展幀的優(yōu)先級。DoS攻擊可以測試當前被測對象是否有做可用性保護的安全防護措施。
例如將報文ID設置為0x1、報文DLC設置為4、報文Data設置為“12 34 56 78”、期望負載率設置為40%,對CAN總線進行DoS攻擊,可以看到總線負載率如圖3所示。

圖3 DoS攻擊時總線負載率圖
(4)UDS探測
UDS(Unified Diagnostic Services,統(tǒng)一的診斷服務)診斷協(xié)議是在汽車電子ECU環(huán)境下的一種診斷通信協(xié)議。UDS報文與普通報文不同,通常情況下在CAN總線中不會存在大量的UDS報文;當用戶需要對ECU請求服務時,才會向CAN總線發(fā)送UDS報文,在接收到UDS報文后,ECU會以相應的正響應或負響應進行回復,可以將這一過程理解為一種問答式的通信方式?;谶@種問答式的通信,用戶可以在CAN總線上實現(xiàn)基于ISO 14229協(xié)議中的許多服務,如診斷會話控制服務、通過ID讀數(shù)據(jù)服務,暴力破解安全進入服務,進一步得到用戶或者廠家的私密信息。
UDS探測并非是一種攻擊方式,而可以理解為一種為之后滲透測試攻擊所做的準備工作。通過UDS探測,可以獲取到汽車所支持的服務類型等信息,竊取用戶以及廠商的私密信息,也可采取進一步的滲透測試,如前文所介紹的模糊攻擊等。
例如可先探測目標網(wǎng)絡診斷物理尋址請求ID與ECU的響應ID,為后續(xù)進一步的滲透提供前置條件。探測效果圖如4所示。

圖4 UDS探測效果圖
03 總結
隨著汽車智能化、網(wǎng)聯(lián)化的高速發(fā)展,對于汽車通訊網(wǎng)絡的安全威脅越來越多,而CAN總線是目前汽車使用最廣泛的總線之一,因此對汽車CAN總線網(wǎng)絡安全威脅進行滲透測試、挖掘潛在漏洞至關重要。
審核編輯:湯梓紅
-
控制器
+關注
關注
114文章
17621瀏覽量
190047 -
CAN總線
+關注
關注
145文章
2019瀏覽量
134621 -
汽車電子
+關注
關注
3043文章
8546瀏覽量
172172
發(fā)布評論請先 登錄
泰克TBS1102X示波器在汽車總線測試中的專業(yè)應用
如何設計一款高可靠性的汽車CAN總線(二)
CAN總線十萬個為什么 | 做好這幾點,總線通訊不再異常
羅德與施瓦茨示波器在汽車CAN總線協(xié)議分析
CAN/CANFD?總線干擾儀TESTBASE-BDI

汽車CAN總線滲透測試
評論