作者 |肖博陽上海控安可信軟件創新研究院研發工程師
來源 |鑒源實驗室
01 CAN總線
1.1 CAN總線是什么?
CAN是控制器局域網絡(Controller Area Network, CAN)的簡稱,是ISO國際標準化的串行通信協議,由以研發和生產汽車電子產品著稱的德國BOSCH公司開發,并最終成為國際標準(ISO 11898)。CAN總線是國際上應用最廣泛的現場總線之一。
1.2 為什么要使用CAN總線?
在汽車產業中,出于對安全性、舒適性、方便性、低功耗、低成本的要求,各種各樣的電子控制系統被開發出來。由于這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應“減少線束的數量”“通過多個LAN,進行大量數據的高速通信”的需要,1986 年德國電氣商博世公司開發出面向汽車的CAN 通信協議。此后,CAN 通過ISO 11898及ISO 11519進行了標準化,在歐洲已是汽車網絡的標準協議。
圖1汽車CAN總線(From gast-auto.com)
1.3CAN總線的網絡安全威脅分析
CAN網絡不是一個封閉的內部網絡,可直接通過車內的OBD診斷接口接入CAN總線,也可通過智能手機、云服務器等與T-Box建立連接間接接入CAN總線,這樣就給不法者入侵CAN網絡提供了可乘之機。通過對CAN總線協議與網絡特性進行簡要的TARA(Threat Analysis and Risk Assessment)分析,可將CAN網絡的威脅安全屬性總結為以下幾方面:
(1)機密性
CAN總線的通信方式是全局廣播,因此只要接入CAN總線的任一節點,就能輕易訪問CAN總線上所有流量信息。CAN數據以明文形式傳輸,沒有任何消息驗證碼、數字簽名的保護。
(2)可用性
CAN總線采用基于優先級的仲裁方式,即當有多條消息同時需要發出時,優先級高的先行發出,因此攻擊者可以利用這一點,在某節點以高頻發送具有高優先級的報文以阻塞其他節點的消息發出,進而導致ECUs無法正常工作。
(3)真實性
CAN報文數據內容不包含發送方的任何信息,這使節點無法判斷消息的來源是其他合法節點還是攻擊者,因此外部攻擊者可以偽裝成任一ECU節點發送惡意消息。
(4)完整性
CAN協議本身雖然有CRC校驗對傳輸過程進行完整性驗證,但不能防止數據被第三方惡意修改后重新注入。
02 滲透測試
2.1 什么是滲透測試
滲透測試是一種通過模擬惡意攻擊者的技術和方法,挫敗目標系統的安全控制措施,取得訪問控制權,并發現具有業務影響后果安全隱患的一種安全測試與評估方式。
2.2 為什么要對CAN總線做滲透測試?
上文已經對CAN總線的潛在風險與滲透測試做過簡要的介紹,因此不難發現,對于有著一定潛在風險的通信協議,對其進行滲透測試是不可或缺的。通過滲透測試,我們能對CAN存在的漏洞等安全脆弱點進行探測、利用,進一步得到目標系統存在的安全隱患,使目標機構和組織可以參照生成的滲透測試報告進行維護。
2.3滲透測試的方式
(1)模糊攻擊
模糊攻擊指的是通過生成一系列隨機、無效或非預期的報文后,將這些報文發送至目標總線上,以達到目標總線出現非預期的行為的一種滲透測試方式。模糊攻擊不需要了解攻擊對象本身的數據特點(如CAN報文的某一數據位所表示的意義),只需要構建符合CAN報文格式的數據,因此可以通過模糊攻擊挖掘系統的潛在漏洞。
模糊攻擊可以測試當前被測對象是否有做報文數據完整性校驗的安全防護措施,若無安全防護措施,則被測對象將可能產生非預期的行為。模糊可以在不同層面上進行,分別為:原始報文層、系統信號層、協議層。針對這三種層面,均可使用隨機模糊、遍歷模糊或自定義的模糊策略進行模糊攻擊。
例如將報文ID設置為完全隨機、報文DLC設置為4、報文Data設置為”1X 12 34 56”,其中X表示需要模糊的數據,對CAN總線進行模糊攻擊,可以看到發送的模糊報文如圖2所示。
圖2模糊攻擊報文信息
(2)重放攻擊
重放攻擊指的是惡意地將有效報文發送至目標總線上,使目標系統重現該報文所控制的行為或對應的狀態的一種滲透測試方式。重放攻擊的前提即是上文介紹的CAN總線利用全局廣播進行通信,攻擊者利用這點能夠輕而易舉地獲取到CAN總線上所有的報文信息。重放攻擊也不需要了解攻擊對象本身的數據特點或工作原理,只需原封不動地將報文發送即可達到攻擊目的。重放攻擊可以測試當前被測對象是否有做關于數據來源的真實性校驗的安全防護措施,若沒有則被測對象將會執行惡意重放報文的控制行為。
(3)DoS攻擊
DoS是Denial of Service的簡稱,即拒絕服務,指的是通過臨時或無限期干擾連接于網絡的服務。DoS攻擊基于上文介紹的CAN總線以報文優先級進行仲裁得以實現,對于CAN總線,DoS攻擊可以理解為頻繁向目標總線發送高優先級報文來占滿目標總線的資源,提高總線負載率,使其他正常報文不可傳輸。DoS攻擊需要了解CAN報文的優先級仲裁機制,即CAN報文的id位越小,CAN報文的優先級越高;在具有相同id時,數據幀的優先級大于遙控幀的優先級、標準幀的優先級大于拓展幀的優先級。DoS攻擊可以測試當前被測對象是否有做可用性保護的安全防護措施。
例如將報文ID設置為0x1、報文DLC設置為4、報文Data設置為“12 34 56 78”、期望負載率設置為40%,對CAN總線進行DoS攻擊,可以看到總線負載率如圖3所示。
圖3 DoS攻擊時總線負載率圖
(4)UDS探測
UDS(Unified Diagnostic Services,統一的診斷服務)診斷協議是在汽車電子ECU環境下的一種診斷通信協議。UDS報文與普通報文不同,通常情況下在CAN總線中不會存在大量的UDS報文;當用戶需要對ECU請求服務時,才會向CAN總線發送UDS報文,在接收到UDS報文后,ECU會以相應的正響應或負響應進行回復,可以將這一過程理解為一種問答式的通信方式。基于這種問答式的通信,用戶可以在CAN總線上實現基于ISO 14229協議中的許多服務,如診斷會話控制服務、通過ID讀數據服務,暴力破解安全進入服務,進一步得到用戶或者廠家的私密信息。
UDS探測并非是一種攻擊方式,而可以理解為一種為之后滲透測試攻擊所做的準備工作。通過UDS探測,可以獲取到汽車所支持的服務類型等信息,竊取用戶以及廠商的私密信息,也可采取進一步的滲透測試,如前文所介紹的模糊攻擊等。
例如可先探測目標網絡診斷物理尋址請求ID與ECU的響應ID,為后續進一步的滲透提供前置條件。探測效果圖如4所示。
圖4 UDS探測效果圖
03 總結
隨著汽車智能化、網聯化的高速發展,對于汽車通訊網絡的安全威脅越來越多,而CAN總線是目前汽車使用最廣泛的總線之一,因此對汽車CAN總線網絡安全威脅進行滲透測試、挖掘潛在漏洞至關重要。
審核編輯:湯梓紅
-
控制器
+關注
關注
113文章
16582瀏覽量
180472 -
CAN總線
+關注
關注
145文章
1964瀏覽量
131503 -
汽車電子
+關注
關注
3031文章
8087瀏覽量
168402
發布評論請先 登錄
相關推薦

CAN總線應用領域 CAN總線協議解析
CAN總線測試工具選擇與使用
使用CAN總線進行汽車電控系統設計



can總線中斷狀態什么意思呢?
如何使用示波器測試CAN信號


評論