车联网安全入门之从CAN模拟环境搭建到重放攻击
2023-2-27 18:1:33 Author: 谈思实验室(查看原文) 阅读量:15 收藏

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

车联网安全最近几年成为了各大汽车厂商以及安全厂商的关注热点,但是作为一个穷苦的无车一族想要入门车联网安全该怎么办?那当然是靠模拟器了
本文将介绍如何通过Ubuntu模拟车载CAN总线的收发包来进行操作学习。话不多说,芜湖,起飞🛫️~

什么是CAN总线

CAN总线又称为控制器局域网是Controller Area Network的缩写。CAn总线是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一,在1991年呗大规模应用于汽车,从那儿以后,CAN总线成为汽车的标配。
CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。简单来说就是用来控制车辆功能的通信协议,比如车门解锁、转向灯、刹车、油门等。

CAN总线特性

安全性:CAN是低级协议,不支持任何内在的安全功能。在标准的CAN中也没有加密,使得网络数据能被截取。在大多数应用中,应用程序需要部署自己的安全机制,例如认证传入命令或网络上某些设备的存在。若不执行适当的安全措施,其他人可能设法在总线上插入消息。尽管一些安全关键功能(如修改固件,编程键或控制防抱死制动)存在密码,但这些系统并未普遍实施,并且密钥对的数量有限。
通信机制:多主机,即每个节点都有接入总线的能力
寻址机制:消息区别,不设节点的地址,通过消息的标志符来区别消息。
帧类型:数据帧、远程帧、错误帧、超载帧、帧间隔
攻击方式:应用报文模糊攻击、DOS攻击测试、重放攻击
由于CAN总线上的数据包没有进行过任何的加密处理,因此这些数据包是能够被截取窃听。由于车载网络使用CAN协议进行通信,所以我们可以联想到车联功能也是通过CAN网络进行数据发送和交换。
CAN总线攻击方式包括应用报文模糊测试、DOS攻击测试、重放攻击等。
在接下来的文章里我们将通过模拟软件模拟真实的汽车,并对其进行重放攻击

实验环境

  • • Ubuntu16.04
  • • ICSim(仪表盘模拟器)
  • • Socketcand(CAN网络)
  • • Kayak(一款基于SocketCAN的CAN总线分析工具)

安装ICSim

安装依赖
# 安装依赖
sudo apt install libsdl2-dev libsdl2-image-dev can-utils maven autoconf -y
# 下载ICSim
git clone https://github.com/zombieCraig/ICSim.git
# 编译安装
cd ICSim/
sudo make

安装socketcand

# 下载socketcand
git clone https://github.com/linux-can/socketcand.git
cd socketcand

# 获取缺少的文件
wget https://raw.githubusercontent.com/dschanoeh/socketcand/master/config.h.in

# 编译安装
autoconf
./configure
make clean
make
sudo make install

安装Kayak

# 下载
git clone https://github.com/dschanoeh/Kayak.git
# 安装jdk
sudo apt-get install openjdk-8-jdk
# 安装
cd Kayak
mvn clean package

启动模拟器

# 设置vcan(虚拟CAN)接口
sudo modprobe can
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
# 打开仪表盘模拟器
./icsim vcan0
# 打开仪表盘控制器
./controls vcan0
仪表盘控制器,操作说明
功能
控制按钮
转向
键盘左右
速度
键盘上下
开/关左前车门
右shift/左shit+A
开/关右前车门
右shift/左shit+B
开/关左后车门
右shift/左shit+X
开/关右后车门
右shift/左shit+Y
开启全部车门
左shift+右shift
关闭全部车门
右shift+左shift

抓取CAN数据包

# 使用candump抓包
candump vcan0 -l
由于CAN在不停进行通信,故抓取到的包将会非常大
尝试重放刚才抓取到的数据包
canplayer -I candump-2023-01-12_151749.log
可以看到左前侧车门被成功打开
通过二分法我们找到了左前侧开门的数据包,如图。
(1673507873.514241) vcan0 19B#00000E000000
其中的19B是设备标识符,在数据包中查找19B
grep 19B candump-2023-01-12_151749.log
通过分析和尝试我们可知
19B#00000E000000为开启左前侧车门,19B#00000F000000为关闭所有车门
将其分解为二进制可得出16种可能的开关门组合
二进制
十六进制
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
8
1001
9
1010
a
1011
b
1100
c
1101
d
1110
e
1111
f
尝试字符控制的不同车门
字符
车门
8
右后侧车门
4
左后侧车门
2
右前侧车门
1
左前侧车门
假设1是关门,0是开门
右后侧车门 左后侧车门 右前侧车门 左前侧车门
        8     4    2     1
        1     0    0     0
此时的值为8,结果为
至此我们就可以操控每个门的开关了。
按照同样的思路我们将转向的数据包找出来
左转向:188#01000000
右转向:188#02000000
参考链接:
https://www.freebuf.com/articles/network/281831.html
https://article.itxueyuan.com/ZoxRvk

来源:Tide安全团队

码上报名

2023第六届无人驾驶及智能驾舱中国峰会,5月11-12日,上海

码上报名

AutoSec 7周年年会暨中国汽车网络安全与数据安全合规峰会,5月11-12日,上海

更多文章

智能网联汽车信息安全综述

软件如何「吞噬」汽车?

汽车信息安全 TARA 分析方法实例简介

汽车FOTA信息安全规范及方法研究

联合国WP.29车辆网络安全法规正式发布

滴滴下架,我却看到数据安全的曙光

从特斯拉被约谈到车辆远程升级(OTA)技术的合规

如何通过CAN破解汽

会员权益: (点击可进入)谈思实验室VIP会员

END

微信入群

谈思实验室专注智能汽车信息安全、预期功能安全、自动驾驶、以太网等汽车创新技术,为汽车行业提供最优质的学习交流服务,并依托强大的产业及专家资源,致力于打造汽车产业一流高效的商务平台。

每年谈思实验室举办数十场线上线下品牌活动,拥有数十个智能汽车创新技术的精品专题社群,覆盖BMW、Daimler、PSA、Audi、Volvo、Nissan、广汽、一汽、上汽、蔚来等近百家国内国际领先的汽车厂商专家,已经服务上万名智能汽车行业上下游产业链从业者。专属社群有:信息安全功能安全自动驾驶TARA渗透测试SOTIFWP.29以太网物联网安全等,现专题社群仍然开放,入满即止。

扫描二维码添加微信,根据提示,可以进入有意向的专题交流群,享受最新资讯及与业内专家互动机会。

谈思实验室,为汽车科技赋能,推动产业创新发展!


文章来源: http://mp.weixin.qq.com/s?__biz=MzIzOTc2OTAxMg==&mid=2247519112&idx=1&sn=db4fa084a053ff411cf7b7e5f483549f&chksm=e927cf53de504645ecef12695313d336a35702acf25f085f0ddf28f5794e275bda9b31cfeff5#rd
如有侵权请联系:admin#unsafe.sh