智能網(wǎng)聯(lián)汽車信息安全實(shí)訓(xùn)平臺(tái)是以建設(shè)車聯(lián)網(wǎng)安全檢測(cè)和培訓(xùn)體系為目的而搭建的一套成熟、落地、可操作的安全檢測(cè)環(huán)境,其測(cè)試方案覆蓋車機(jī)軟件、車載通信、車內(nèi)智能終端設(shè)備、車內(nèi)總線等檢測(cè)環(huán)境。以提升能力為根本,幫助學(xué)院構(gòu)造車載信息安全知識(shí)體系框架,培養(yǎng)學(xué)員車載信息安全檢測(cè)能力。
測(cè)試對(duì)象:CAN總線
教學(xué)目的:學(xué)習(xí)如何獲取汽車中的CAN總線數(shù)據(jù),并對(duì)CAN總線數(shù)據(jù)報(bào)文進(jìn)行協(xié)議逆向。
通過工具獲取汽車中的CAN總線數(shù)據(jù),根據(jù)CAN總線協(xié)議對(duì)CAN總線的數(shù)據(jù)進(jìn)行分析,通過逆向分析的手段,對(duì)CAN總線進(jìn)行協(xié)議逆向,解析出相應(yīng)指令的數(shù)據(jù)報(bào)文。
依賴文件和軟件
can-utils
Linux系統(tǒng)中對(duì)CAN總線分析的工具,可以顯示抓取CAN報(bào)文,重放CAN日志文件,發(fā)送單個(gè)幀,生成隨機(jī)CAN流量,顯示CAN數(shù)據(jù)內(nèi)容的差異,通過該工具,可以幫助我們對(duì)CAN總線進(jìn)行協(xié)議逆向分析。
CAN總線模擬仿真工具,可以在主機(jī)中模擬出CAN總線的儀表盤,對(duì)接受的CAN報(bào)文進(jìn)行解析,并在儀表盤中顯示指令動(dòng)作。
依賴硬件工具
CAN-USB CAN總線嗅探工具,通過USB口連接在主機(jī)中,分析CAN報(bào)文。
實(shí)驗(yàn)整體流程
實(shí)驗(yàn)流程和網(wǎng)絡(luò)拓?fù)?/p>
實(shí)驗(yàn)步驟
1.打開模擬器,在終端中打開汽車靶機(jī)模擬器
cd?ICSim ./setup_vcan.sh ./icsim?vcan0
在另一個(gè)終端中打開模擬器控制器:
./controls?vcan0
2.使用模擬器發(fā)送指令
操縱模擬器控制器,執(zhí)行鍵盤上的上下可以控制車速,左右可以控制車燈,如下圖所示。
模擬器控制器
可以在儀表盤模擬器中觀察到相應(yīng)的反應(yīng),如下圖所示。
儀表盤顯示狀態(tài)
3.嗅探接收CAN報(bào)文
使用ifconfig命令可以看到vcan0接口存在,我們可以通過該接口與CAN網(wǎng)絡(luò)進(jìn)行交互,抓取嗅探CAN報(bào)文:
candump?vcan0
可以看到抓取到了CAN報(bào)文數(shù)據(jù),如下圖所示。
CAN報(bào)文數(shù)據(jù)
通過不斷的控制模擬器,在屏幕上可以動(dòng)態(tài)的顯示CAN報(bào)文。
4.捕獲并重放CAN操作
為了逆向CAN總線,我們需要縮小逆向范圍,抓取單一指令的報(bào)文數(shù)據(jù),通過模擬器控制器執(zhí)行操作,通過candump工具來抓取相應(yīng)的報(bào)文并存儲(chǔ)為本地日志文件。
candump?-l?vcan0
將停止對(duì)模擬器控制器操作,將上面抓取的報(bào)文進(jìn)行重放測(cè)試。
canplayer?-I?candump-2020-05-13_154442.log
觀察模擬器儀表盤,可以看到出現(xiàn)相應(yīng)的反應(yīng)。can總線是不可靠的服務(wù),發(fā)送報(bào)文后無法確保能傳輸成功,因此可以多嘗試幾次發(fā)送,保證指令正確執(zhí)行。
5.差分法逆向
對(duì)can日志文件進(jìn)行差分法發(fā)送,每次都截取一半數(shù)據(jù)報(bào)文進(jìn)行發(fā)送,直到捕捉到對(duì)應(yīng)指令的報(bào)文。
fqj
評(píng)論
查看更多