专栏首页物联网IOT安全智能汽车安全入门|世界智能驾驶挑战赛总结

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

0x00 基本介绍

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

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

安装方法:

sudo apt-get install libsdl2-dev libsdl2-image-dev can-utils
git clone https://github.com/zombieCraig/ICSim.git

启动方法:

./icsim vcan0
./controls 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总线还是缺乏相关的准备,比赛后面的题目还是很有意思的,例如远程篡改汽车车辆识别号码等等。比赛之前也搜集很多关于车联网的资料,如果有需要的小伙伴请在公众号后台回复<车联网>获取车联网资料

本文分享自微信公众号 - 物联网IOT安全(IOTsafety),作者:年华不散场

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 看大佬如何破解智能门锁

    上一篇文章的分析中,我们发现Yale智能门锁的通信中存在两个问题,本篇文章将分为两个部分描述如何利用这两个问题:

    用户7021283
  • 对BLE智能手环的测试

    在2019年的某个月份,笔者的朋友给笔者送来了一个手环,让笔者搞一搞。详细询问之后,笔者理清了具体情况:这个手环会收集佩戴者的步数并上报给公司,公司认为步数不够...

    用户7021283
  • 你们的goose到了请接收

    无意间看到了这个goose小姐姐心都萌化了,这是最近很火的一款desktop小游戏,我们先看一下官网

    用户7021283
  • 速读原著-TCP/IP(拥塞举例)

    现在观察一下数据报文段的传输过程。图 2 1 - 6显示了报文段中数据的起始序号与该报文段发送时间的对比图。它提供了一种较好的数据传输的可视化方法。通常代表数据...

    cwl_java
  • 速读原著-TCP/IP(ICMP:Internet控制报文协议)

    I C M P经常被认为是 I P层的一个组成部分。它传递差错报文以及其他需要注意的信息。I C M P报文通常被I P层或更高层协议( T C P或U D P...

    cwl_java
  • 计算机网络学习记录(不断更新)

    平时TTL减为0时最后一个经手的路由器会返回TTL-Exceeded报文,到目的主机后由于端口大于30000,会返回Port-Unreachable报文,这样就...

    xiaoxi666
  • SDN开发笔记(七):L2switch源码分析(上)

    前言 一般按照odl官方文档或者wiki安装L2switch组件会采用在karaf控制台上输入feature:install odl-l2switch-all命...

    SDNLAB
  • 速读原著-TCP/IP(时间戳选项)

    时间戳选项使发送方在每个报文段中放置一个时间戳值。接收方在确认中返回这个数值,从而允许发送方为每一个收到的 A C K计算RT T(我们必须说“每一个收到的 A...

    cwl_java
  • 巴法云之MQTT物联网通信协议详解

    实时通信协议是物联网技术中的一项根本性技术,在数据的有效传输、及时通信方面不可或缺,在物联网领域发挥着至关重要的作用,因此物联网通信协议的制定至关重要。目前物联...

    巴法
  • Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上

    MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,现为Cirrus Link)于1999年开发,用于监测穿...

    sanshengshui

扫码关注云+社区

领取腾讯云代金券