长亭百川云 - 文章详情

智能汽车安全入门|世界智能驾驶挑战赛总结

物联网IoT安全

62

2024-07-13

0x00 基本介绍

这两天参加了世界智能汽车挑战赛,比赛使用了visual threat的汽车仿真设备。不过这个文章题目起的有些夸张,准确的说应该是CAN总线安全学习入门

本想复盘一下比赛,但因为我们无法使用visual threat模拟器,遂从网上找到一个名为ICSim的模拟器来模拟CAN总线,安装起来极为友好

安装方法:

sudo apt-get install libsdl2-dev libsdl2-image-dev can-utils

启动方法:

./icsim vcan0

0x01 思路

比赛中的第一个题目要求对汽车协议(如车灯、门锁、后备箱锁、仪表等)完成有效数据提取并实现协议破解。此处我们使用ISCim生成流量模拟比赛过程

经过比赛之前的分析,我们猜测开门的报文可能分为以下3种情况

1. 只有一条报文控制开门,按下开门按钮后,CAN总线上产生一条开门的报文。

2. 车门状态报文一直在定时发送,但每当按下一次开门按钮,报文中的数据(DATA)会发生一次变化

3. 有多条时序报文控制车门开启(报文存在序列号检测或加密校验)

针对以上情况,我们提出了两种解决方案

1. 对所有的CAN数据进行统计,检索出与开门次数相同次数的ID报文

2. 对所有的CAN数据进行统计,检索出仅数据(DATA)发生变化次数开门次数的ID报文

(可能有点绕,但是还是比较靠谱的)

0x02 实践

依旧使用ICSim模拟,使用candump抓包CAN总线数据包

按下开门五次,接下来对该数据包进行分析,查找出ID出现五次的报文:

提取出该数据包后,对其进行重放测试是否有效:

完美,接下来我们尝试提取转向灯的数据,却发现无法检索到仅出现打转向灯次数的ID报文。

因此我们怀疑有可能是第二种情况,我们将使用脚本进一步分析数据(DATA)发生变化次数打转向灯次数报文

我们打转向灯三次并抓包,使用脚本分析:

查看抓包中的0x188报文,可以发现在我们没有按下转向灯时,也是有报文在发送只是DATA段为0,在我们按下转向灯时,DATA段发生了变化如下所示。

对转向灯数据包重放:

第一次接触CAN总线还是缺乏相关的准备,比赛后面的题目还是很有意思的,例如远程篡改汽车车辆识别号码等等。比赛之前也搜集很多关于车联网的资料,如果有需要的小伙伴请在公众号后台回复<车联网>获取车联网资料

最后,618我们也搞个小活动呀,师傅可以分享本文到朋友圈,然后扫描下方小程序码参与抽奖~

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2