智能网联汽车信息安全实训平台是以建设车联网安全检测和培训体系为目的而搭建的一套成熟、落地、可操作的安全检测环境,其测试方案覆盖车机软件、车载通信、车内智能终端设备、车内总线等检测环境。以提升能力为根本,帮助学院构造车载信息安全知识体系框架,培养学员车载信息安全检测能力。
测试对象: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
评论
查看更多