轩辕实验室┃智能网联汽车信息安全实训平台—CAN总线逆向实验

来源:上海控安
2020-11-19
2770

以下文章来源于轩辕实验室 ,作者轩辕实验室

轩辕实验室轩辕实验室

车联网信息安全和预期功能安全技术


微信图片_20201022180405.jpg



智能网联汽车信息安全实训平台

以建设车联网安全检测和培训体系为目的而搭建的一套成熟、落地、可操作的安全检测环境,其测试方案覆盖车机软件、车载通信、车内智能终端设备、车内总线等检测环境。以提升能力为根本,帮助学院构造车载信息安全知识体系框架,培养学员车载信息安全检测能力。



01

测试对象


CAN总线


02

教学目的


学习如何获取汽车中的CAN总线数据,并对CAN总线数据报文进行协议逆向。


03

详细介绍


通过工具获取汽车中的CAN总线数据,根据CAN总线协议对CAN总线的数据进行分析,通过逆向分析的手段,对CAN总线进行协议逆向,解析出相应指令的数据报文。


04

依赖文件和软件


can-utils

Linux系统中对CAN总线分析的工具,可以显示抓取CAN报文,重放CAN日志文件,发送单个帧,生成随机CAN流量,显示CAN数据内容的差异,通过该工具,可以帮助我们对CAN总线进行协议逆向分析。

ICSim

CAN总线模拟仿真工具,可以在主机中模拟出CAN总线的仪表盘,对接受的CAN报文进行解析,并在仪表盘中显示指令动作。


05

依赖硬件工具


CAN-USB CAN总线嗅探工具,通过USB口连接在主机中,分析CAN报文。


06

实验整体流程



1.jpg

实验流程和网络拓扑


07

实验步骤



1
打开模拟器 在终端中打开汽车靶机模拟器

cd ICSim

./setup_vcan.sh

./icsim vcan0

在另一个终端中打开模拟器控制器:
./controls vcan0


2
使用模拟器发送指令

操纵模拟器控制器,执行键盘上的上下可以控制车速,左右可以控制车灯,如下图所示。


2.jpg

模拟器控制器

可以在仪表盘模拟器中观察到相应的反应,如下图所示。


3.jpg

仪表盘显示状态


3
嗅探接收CAN报文

使用ifconfig命令可以看到vcan0接口存在,我们可以通过该接口与CAN网络进行交互,抓取嗅探CAN报文:

candump vcan0

可以看到抓取到了CAN报文数据,如下图所示。


4.jpg

CAN报文数据

通过不断的控制模拟器,在屏幕上可以动态的显示CAN报文。


4
捕获并重放CAN操作
为了逆向CAN总线,我们需要缩小逆向范围,抓取单一指令的报文数据,通过模拟器控制器执行操作,通过candump工具来抓取相应的报文并存储为本地日志文件。
candump -l vcan0
将停止对模拟器控制器操作,将上面抓取的报文进行重放测试。
canplayer -I candump-2020-05-13_154442.log
观察模拟器仪表盘,可以看到出现相应的反应。can总线是不可靠的服务,发送报文后无法确保能传输成功,因此可以多尝试几次发送,保证指令正确执行。


5
差分法逆向
对can日志文件进行差分法发送,每次都截取一半数据报文进行发送,直到捕捉到对应指令的报文。




微信图片_20201022180704.jpg


收藏
点赞
2000