
?智能汽車安全新媒體?

為了更便捷發(fā)現(xiàn)安全漏洞,提高安全防御水平?;跐B透測試的基本原理,介紹了一種針對(duì)域控制器的滲透測試方法,將該方法以滲透工具的形式進(jìn)行展現(xiàn),并進(jìn)行實(shí)際測試驗(yàn)證。以簡單的操作實(shí)現(xiàn)針對(duì)域控制的MPU 和MCU兩大部分進(jìn)行漏洞檢查、密碼破解、診斷攻擊等測試,從而降低滲透測試門檻,提高工作效率。
引言
伴隨著車輛智能化、網(wǎng)聯(lián)化程度的提高,車輛已不僅僅利用CAN總線進(jìn)行信息交互,而是作為智能的移動(dòng)終端,實(shí)現(xiàn)和車、路、云、人的通信交互。在帶來優(yōu)質(zhì)體驗(yàn)的同時(shí),也帶來信息安全的隱患。信息安全問題不僅能造成財(cái)產(chǎn)損失,還可能對(duì)用戶的生命構(gòu)成威脅[1],因此信息安全重要性得到國家和車企的高度重視。國家出臺(tái)了相關(guān)的車輛信息安全法規(guī),各大主機(jī)廠及供應(yīng)商也正在進(jìn)一步加強(qiáng)信息安全的防御、檢測。其中滲透測試就是專門針對(duì)網(wǎng)絡(luò)安全的測試,可幫助發(fā)現(xiàn)網(wǎng)絡(luò)安全漏洞,進(jìn)而協(xié)助提高網(wǎng)絡(luò)安全水平。
作為車輛云—管—端中端的一環(huán),域控制器得到越來越廣泛應(yīng)用,主要由微控制器(micro controller unit,MCU)和微處理器(micro processor unit,MPU)組成。域控制器不僅涉及CAN通信,還涉及網(wǎng)絡(luò)通信等計(jì)算機(jī)方面內(nèi)容,由于其同時(shí)涉及CAN和以太網(wǎng),而且還是域中重要一環(huán),便成為網(wǎng)絡(luò)安全的重點(diǎn)保護(hù)對(duì)象。
由于滲透測試來源于計(jì)算機(jī)的信息安全,滲透測試也主要涉及計(jì)算機(jī)方面知識(shí),入手較為困難,且委托第三方的滲透價(jià)格也較為昂貴。為此,本文利用滲透測試?yán)碚摚_發(fā)出簡捷的滲透測試工具,便于開發(fā)人員快速地找出域控制存在的安全漏洞。
域控制器基本組成介紹
車輛域控制一般按照功能劃分為5個(gè)域:動(dòng)力域(power train)、底盤域(chassis)、車身域(body)、座艙域(cockpit)和自動(dòng)駕駛域(ADAS),每個(gè)域都有一個(gè)相應(yīng)的域控制器來實(shí)現(xiàn)相應(yīng)的功能[2]。
域控制器目前主要由MCU和微處理MPU兩大部分組成,以目前的ADAS域控制器為例,如圖1所示,MCU作為“Safety host”,主要以CAN通信的形式和車內(nèi)CAN網(wǎng)絡(luò)建立聯(lián)系,MPU作為“Performance host”完成視覺算法的處理,主要以車載以太網(wǎng)的形式和外界建立聯(lián)系,MPU端的操作系統(tǒng)一般采用Linux 或QNX。

圖1 ADAS域控制器
MCU端滲透測試內(nèi)容及方法介紹
針對(duì)MCU的攻擊,這里主要以CAN總線的攻擊為主,下面將介紹幾種較為常見的攻擊方法以及相應(yīng)的防御措施[3]。
2.1 洪水攻擊
洪水攻擊:攻擊者向CAN總線上發(fā)送高頻率、高優(yōu)先級(jí)的總線信號(hào),從而使ECU無法正常響應(yīng)其他低優(yōu)先級(jí)的數(shù)據(jù)包,造成車輛的癱瘓,故障燈點(diǎn)亮。若在啟動(dòng)前進(jìn)行洪水攻擊,則可導(dǎo)致車輛無法正常啟動(dòng)。
針對(duì)洪水攻擊,防御措施主要有增設(shè)網(wǎng)關(guān)、在OBD處增設(shè)防火墻等。
2.2 診斷攻擊
診斷攻擊:攻擊者通過發(fā)送一些診斷命令來實(shí)現(xiàn)對(duì)控制器的篡改。例如,通過發(fā)送11 02實(shí)現(xiàn)重置功能,通過2E服務(wù)實(shí)現(xiàn)參數(shù)篡改等[4]。
針對(duì)診斷攻擊,防御措施有增加診斷的前提條件。例如,增加車速和發(fā)動(dòng)機(jī)的前置判斷條件、增加27服務(wù)的解鎖條件等。
27服務(wù)示例:
請(qǐng)求seed
發(fā)送請(qǐng)求:27 01
肯定響應(yīng):67 01 xx(xx為seed值)
發(fā)送key
發(fā)送請(qǐng)求:27 02 xx(xx為key值)
肯定響應(yīng):67 02
2.3 篡改攻擊
篡改攻擊:攻擊者通過更改正常通信的CAN報(bào)文的有效載荷實(shí)現(xiàn)攻擊,若ECU針對(duì)篡改的內(nèi)容做出正確的響應(yīng),則可實(shí)現(xiàn)控制、干擾的目的,如修改車速顯示信息、控制轉(zhuǎn)向和制動(dòng)等。
針對(duì)篡改攻擊,防御措施除增加“checksum”之外,還可以升級(jí)為安全報(bào)文[5]。以MAC校驗(yàn)及增加新鮮度值(FV)等手段進(jìn)行完整性和機(jī)密性方面的防御,如圖2所示。

圖2 安全報(bào)文結(jié)構(gòu)
MPU端滲透測試內(nèi)容及方法介紹
針對(duì)MPU的攻擊,攻擊的步驟比MCU測試更復(fù)雜一些,攻擊也主要是通過網(wǎng)口或者車載以太網(wǎng)接口進(jìn)行。針對(duì)MPU端的滲透測試主要包含下面幾個(gè)步驟[6]。
3.1 信息收集
收集目標(biāo)的相關(guān)信息,例如:IP地址、端口信息、操作系統(tǒng)版本信息等,可通過Wireshark或者Netdiscover等工具來獲得MPU的IP地址;也可通過Netdiscover-p來實(shí)現(xiàn)監(jiān)聽,發(fā)現(xiàn)在線的設(shè)備信息,如圖3所示。

圖3 IP信息
獲取IP地址之后,可以通過Nmap工具來獲得開放的端口信息。例如,通過發(fā)送Nmap-Pn1-65535 192.167.68.130命令可以獲得針對(duì)IP 192.167.68.131中1-65535的開放端口的信息。如圖4所示,獲取這些端口之后,就可以利用開放端口存在的漏洞,進(jìn)入到MPU內(nèi)部,進(jìn)而實(shí)施一些違規(guī)操作。

圖4 端口掃描
通過Nmap 或者Nessus工具可獲得操作系統(tǒng)的版本信息。例如,Linux或QNX的版本信息,通過已知版本信息,在接下來的漏洞掃描中,查找該版本是否有已知的漏洞,利用該漏洞就可進(jìn)行滲透攻擊。
3.2 漏洞掃描
漏洞掃描的目的是找出MPU弱點(diǎn),攻擊者可利用該弱點(diǎn)進(jìn)行滲透攻擊,如權(quán)限設(shè)置錯(cuò)誤、采用默認(rèn)的弱密碼、http 端口開啟等可通過Nessus工具進(jìn)行漏洞掃描。通過漏洞掃描可發(fā)現(xiàn)目前的漏洞數(shù)量、漏洞描述及漏洞的嚴(yán)重程度??赏ㄟ^修復(fù)漏洞來提高網(wǎng)絡(luò)安全的防御能力,如降低用戶權(quán)限、關(guān)閉端口、密碼改為證書認(rèn)證等[4]。
3.3 滲透攻擊
滲透測試主要指利用漏洞加載攻擊載荷,實(shí)現(xiàn)對(duì)MPU的攻擊。滲透攻擊可以通過Metasploit工具進(jìn)行。密碼暴力破解也屬于攻擊的一種,若密碼設(shè)得很簡單或者未采用證書認(rèn)證方式登錄,則很容易進(jìn)行暴力破解,進(jìn)而進(jìn)入MPU內(nèi)部,實(shí)施更改或破壞。
滲透測試實(shí)現(xiàn)
4.1 滲透測試工具展示
由于滲透測試需要較多的不同工具,而且大部分需在終端中輸入相應(yīng)的指令來進(jìn)行完成,過程比較煩瑣,且可視化不強(qiáng)?;谀壳皾B透測試遇到的痛點(diǎn)以及MCU和MPU的滲透測試邏輯,將主要的滲透內(nèi)容進(jìn)行匯總,編譯開發(fā)出可視化較強(qiáng)的滲透測試軟件。測試者只需要輸入一些簡單信息,點(diǎn)擊相應(yīng)按鈕即可完成對(duì)應(yīng)的測試工作,如圖5所示。

圖5 滲透測試工具展示
4.1.1 MPU端測試
MPU端測試主要包含信息收集、漏洞掃描和密碼破解3個(gè)方面:
信息收集:可進(jìn)行IP地址、端口、操作系統(tǒng)、可用命令的收集。其中端口信息通過調(diào)用底層Nmap工具來實(shí)現(xiàn),并將最終的收集展示。
漏洞掃描:基于IP信息進(jìn)行漏洞掃描,找出漏洞及漏洞的嚴(yán)重程度。
密碼破解:基于需要破解的用戶名及密碼字典進(jìn)行破解。例如,若 root賬戶使用了默認(rèn)或者簡單密碼,則很容易進(jìn)行破解。
4.1.2 MCU端測試
MCU端測試主要進(jìn)行洪水攻擊、診斷攻擊及信號(hào)篡改攻擊。
洪水攻擊:可通過設(shè)置發(fā)送頻率來實(shí)現(xiàn)攻擊的程度。
診斷攻擊:通過設(shè)計(jì)CAN ID,指定攻擊對(duì)象,通過設(shè)定診斷服務(wù)命令來指定攻擊種類。診斷服務(wù)命令包含了UDS的26種服務(wù),如
?11 reset命令、
?2E DID寫入命令等。
篡改攻擊:通過更改報(bào)文內(nèi)容來實(shí)現(xiàn),若MCU做出正確響應(yīng),則說明篡改攻擊成功。
4.2 軟件實(shí)際應(yīng)用效果
針對(duì)MPU端測試,通過對(duì)模擬MPU端進(jìn)行滲透測試,故意設(shè)計(jì)多個(gè)漏洞。例如,將root密碼設(shè)置為默認(rèn)的密碼可以發(fā)現(xiàn),通過該工具,可以準(zhǔn)確獲得IP地址和相應(yīng)的漏洞信息,而且還可以破解root密碼。
針對(duì)CAN通信測試,對(duì)其進(jìn)行了診斷攻擊和篡改攻擊,診斷攻擊通過發(fā)送2E DID寫入服務(wù),MCU給出了消極響應(yīng)——條件不正確。說明針對(duì)2E服務(wù),MCU設(shè)置了接收前置條件,測試通過。
篡改攻擊,通過更改安全報(bào)文有效載荷進(jìn)行測試,發(fā)現(xiàn)MCU端報(bào)了MAC校驗(yàn)錯(cuò)誤故障。說明更改后的安全報(bào)文未通過MAC值校驗(yàn),MCU端設(shè)置了MAC校驗(yàn)機(jī)制,測試通過。
軟件實(shí)際應(yīng)用結(jié)果如圖6所示。

圖6 軟件實(shí)際應(yīng)用結(jié)果
結(jié)語
針對(duì)域控制器的滲透測試,將MCU和MPU的測試內(nèi)容結(jié)合在一起,利用滲透測試的基本原理,開發(fā)出簡捷的測試方法,將該方法以軟件的形式進(jìn)行展現(xiàn),在實(shí)際的測試中,該方法也得到有效驗(yàn)證,協(xié)助降低了滲透測試門檻,便于滲透測試工作在測試中的推廣。
參考文獻(xiàn):
[1] 宋昊辰,楊林,徐華偉,等.智能網(wǎng)聯(lián)汽車信息安全綜述[J].信息安全與通信保密,2020,18(7):106-114.SONG H C,YANG L,XU H W,et al.Overview of the intelligent connected vehicles cyber security[J].Information security and communications privacy,2020,18(7):106-114.
[2] 深度詳解域控制器[EB/OL].(2020-08-04)[2022-03-06].https://auto.vogel.com.cn/c/2020-08-04/1051269.shtml.
[3] 宋澤峰.面向CAN總線的車內(nèi)網(wǎng)絡(luò)滲透測試研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2018.
[4] International organization for Standardization.ISO 14229-1 Road vehicles—Unified diagnostic services(UDS)Specification and requirements[S].2013.
[5] AUTOSAR.Specification of Secure Onboard Communication [EB/OL] .[2022-03-06].https://www.autosar.org/.
[6] 魏德曼.滲透測試:完全初學(xué)者指南[M].范昊,譯.北京:人民郵電出版社,2019.

-? THE END? -

因文章部分文字及圖片涉及到引用,如有侵權(quán),請(qǐng)及時(shí)聯(lián)系17316577586,我們將刪除內(nèi)容以保證您的權(quán)益。
