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