楊洪福, 朱翔宇, 孫延秋
上海創(chuàng)時(shí)汽車科技有限公司, 上海 201201
伴隨著車輛智能化、網(wǎng)聯(lián)化程度的提高,車輛已不僅僅利用CAN總線進(jìn)行信息交互,而是作為智能的移動(dòng)終端,實(shí)現(xiàn)和車、路、云、人的通信交互。在帶來(lái)優(yōu)質(zhì)體驗(yàn)的同時(shí),也帶來(lái)信息安全的隱患。信息安全問題不僅能造成財(cái)產(chǎn)損失,還可能對(duì)用戶的生命構(gòu)成威脅,因此信息安全重要性得到國(guó)家和車企的高度重視。國(guó)家出臺(tái)了相關(guān)的車輛信息安全法規(guī),各大主機(jī)廠及供應(yīng)商也正在進(jìn)一步加強(qiáng)信息安全的防御、檢測(cè)。其中滲透測(cè)試就是專門針對(duì)網(wǎng)絡(luò)安全的測(cè)試,可幫助發(fā)現(xiàn)網(wǎng)絡(luò)安全漏洞,進(jìn)而協(xié)助提高網(wǎng)絡(luò)安全水平。
作為車輛云—管—端中端的一環(huán),域控制器得到越來(lái)越廣泛應(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ì)象。
由于滲透測(cè)試來(lái)源于計(jì)算機(jī)的信息安全,滲透測(cè)試也主要涉及計(jì)算機(jī)方面知識(shí),入手較為困難,且委托第三方的滲透價(jià)格也較為昂貴。為此,本文利用滲透測(cè)試?yán)碚?,開發(fā)出簡(jiǎn)捷的滲透測(cè)試工具,便于開發(fā)人員快速地找出域控制存在的安全漏洞。
車輛域控制一般按照功能劃分為5個(gè)域: 動(dòng)力域(power train)、底盤域(chassis)、車身域(body)、座艙域(cockpit)和自動(dòng)駕駛域(ADAS),每個(gè)域都有一個(gè)相應(yīng)的域控制器來(lái)實(shí)現(xiàn)相應(yīng)的功能。
域控制器目前主要由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域控制器
針對(duì)MCU的攻擊,這里主要以CAN總線的攻擊為主,下面將介紹幾種較為常見的攻擊方法以及相應(yīng)的防御措施。
洪水攻擊:攻擊者向CAN總線上發(fā)送高頻率、高優(yōu)先級(jí)的總線信號(hào),從而使ECU無(wú)法正常響應(yīng)其他低優(yōu)先級(jí)的數(shù)據(jù)包,造成車輛的癱瘓,故障燈點(diǎn)亮。若在啟動(dòng)前進(jìn)行洪水攻擊,則可導(dǎo)致車輛無(wú)法正常啟動(dòng)。
針對(duì)洪水攻擊,防御措施主要有增設(shè)網(wǎng)關(guān)、在OBD處增設(shè)防火墻等。
診斷攻擊:攻擊者通過發(fā)送一些診斷命令來(lái)實(shí)現(xiàn)對(duì)控制器的篡改。例如,通過發(fā)送11 02實(shí)現(xiàn)重置功能,通過2E服務(wù)實(shí)現(xiàn)參數(shù)篡改等。
針對(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
篡改攻擊:攻擊者通過更改正常通信的CAN報(bào)文的有效載荷實(shí)現(xiàn)攻擊,若ECU針對(duì)篡改的內(nèi)容做出正確的響應(yīng),則可實(shí)現(xiàn)控制、干擾的目的,如修改車速顯示信息、控制轉(zhuǎn)向和制動(dòng)等。
針對(duì)篡改攻擊,防御措施除增加“checksum”之外,還可以升級(jí)為安全報(bào)文。以MAC校驗(yàn)及增加新鮮度值(FV)等手段進(jìn)行完整性和機(jī)密性方面的防御,如圖2所示。
圖2 安全報(bào)文結(jié)構(gòu)
針對(duì)MPU的攻擊,攻擊的步驟比MCU測(cè)試更復(fù)雜一些,攻擊也主要是通過網(wǎng)口或者車載以太網(wǎng)接口進(jìn)行。針對(duì)MPU端的滲透測(cè)試主要包含下面幾個(gè)步驟。
收集目標(biāo)的相關(guān)信息,例如:IP地址、端口信息、操作系統(tǒng)版本信息等,可通過Wireshark或者Netdiscover等工具來(lái)獲得MPU的IP地址;也可通過Netdiscover-p來(lái)實(shí)現(xiàn)監(jiān)聽,發(fā)現(xiàn)在線的設(shè)備信息,如圖3所示。
圖3 IP信息
獲取IP地址之后,可以通過Nmap工具來(lái)獲得開放的端口信息。例如,通過發(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的版本信息,通過已知版本信息,在接下來(lái)的漏洞掃描中,查找該版本是否有已知的漏洞,利用該漏洞就可進(jìn)行滲透攻擊。
漏洞掃描的目的是找出MPU弱點(diǎn),攻擊者可利用該弱點(diǎn)進(jìn)行滲透攻擊,如權(quán)限設(shè)置錯(cuò)誤、采用默認(rèn)的弱密碼、http 端口開啟等可通過Nessus工具進(jìn)行漏洞掃描。通過漏洞掃描可發(fā)現(xiàn)目前的漏洞數(shù)量、漏洞描述及漏洞的嚴(yán)重程度??赏ㄟ^修復(fù)漏洞來(lái)提高網(wǎng)絡(luò)安全的防御能力,如降低用戶權(quán)限、關(guān)閉端口、密碼改為證書認(rèn)證等。
滲透測(cè)試主要指利用漏洞加載攻擊載荷,實(shí)現(xiàn)對(duì)MPU的攻擊。滲透攻擊可以通過Metasploit工具進(jìn)行。密碼暴力破解也屬于攻擊的一種,若密碼設(shè)得很簡(jiǎn)單或者未采用證書認(rèn)證方式登錄,則很容易進(jìn)行暴力破解,進(jìn)而進(jìn)入MPU內(nèi)部,實(shí)施更改或破壞。
由于滲透測(cè)試需要較多的不同工具,而且大部分需在終端中輸入相應(yīng)的指令來(lái)進(jìn)行完成,過程比較煩瑣,且可視化不強(qiáng)?;谀壳皾B透測(cè)試遇到的痛點(diǎn)以及MCU和MPU的滲透測(cè)試邏輯,將主要的滲透內(nèi)容進(jìn)行匯總,編譯開發(fā)出可視化較強(qiáng)的滲透測(cè)試軟件。測(cè)試者只需要輸入一些簡(jiǎn)單信息,點(diǎn)擊相應(yīng)按鈕即可完成對(duì)應(yīng)的測(cè)試工作,如圖5所示。
圖5 滲透測(cè)試工具展示
4.1.1 MPU端測(cè)試
MPU端測(cè)試主要包含信息收集、漏洞掃描和密碼破解3個(gè)方面:
信息收集:可進(jìn)行IP地址、端口、操作系統(tǒng)、可用命令的收集。其中端口信息通過調(diào)用底層Nmap工具來(lái)實(shí)現(xiàn),并將最終的收集展示。
漏洞掃描:基于IP信息進(jìn)行漏洞掃描,找出漏洞及漏洞的嚴(yán)重程度。
密碼破解:基于需要破解的用戶名及密碼字典進(jìn)行破解。例如,若 root賬戶使用了默認(rèn)或者簡(jiǎn)單密碼,則很容易進(jìn)行破解。
4.1.2 MCU端測(cè)試
MCU端測(cè)試主要進(jìn)行洪水攻擊、診斷攻擊及信號(hào)篡改攻擊。
洪水攻擊:可通過設(shè)置發(fā)送頻率來(lái)實(shí)現(xiàn)攻擊的程度。
篡改攻擊:通過更改報(bào)文內(nèi)容來(lái)實(shí)現(xiàn),若MCU做出正確響應(yīng),則說明篡改攻擊成功。
針對(duì)MPU端測(cè)試,通過對(duì)模擬MPU端進(jìn)行滲透測(cè)試,故意設(shè)計(jì)多個(gè)漏洞。例如,將root密碼設(shè)置為默認(rèn)的密碼可以發(fā)現(xiàn),通過該工具,可以準(zhǔn)確獲得IP地址和相應(yīng)的漏洞信息,而且還可以破解root密碼。
針對(duì)CAN通信測(cè)試,對(duì)其進(jìn)行了診斷攻擊和篡改攻擊,診斷攻擊通過發(fā)送2E DID寫入服務(wù),MCU給出了消極響應(yīng)——條件不正確。說明針對(duì)2E服務(wù),MCU設(shè)置了接收前置條件,測(cè)試通過。
篡改攻擊,通過更改安全報(bào)文有效載荷進(jìn)行測(cè)試,發(fā)現(xiàn)MCU端報(bào)了MAC校驗(yàn)錯(cuò)誤故障。說明更改后的安全報(bào)文未通過MAC值校驗(yàn),MCU端設(shè)置了MAC校驗(yàn)機(jī)制,測(cè)試通過。
軟件實(shí)際應(yīng)用結(jié)果如圖6所示。
圖6 軟件實(shí)際應(yīng)用結(jié)果
針對(duì)域控制器的滲透測(cè)試,將MCU和MPU的測(cè)試內(nèi)容結(jié)合在一起,利用滲透測(cè)試的基本原理,開發(fā)出簡(jiǎn)捷的測(cè)試方法,將該方法以軟件的形式進(jìn)行展現(xiàn),在實(shí)際的測(cè)試中,該方法也得到有效驗(yàn)證,協(xié)助降低了滲透測(cè)試門檻,便于滲透測(cè)試工作在測(cè)試中的推廣。