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