欢迎光临第五届中国汽车网络信息安全峰会2020!

汽车网络安全之——CAN安全分析方法总结(国外文献)

发布日期:2020-07-12

GRCC IoVSecurity 昨天 

手机阅读

点击上方蓝色字体,关注我们

概述


目前,CAN作为汽车*主要的通信网络,对整车安全性极为重要,如何通过CAN线进行整车的安全分析,通过CAN线可以做哪些事情,本文通过总结国外的有关文献,给出一些建议。思路类比与计算机网络的渗透测试:

主机(ECU辨识)—>服务(CAN数据逆向)—>漏洞(Fuzzing)

DoS


通过CAN 辨识ECU


主机系统的辨识依赖于指纹库,通过CAN数据指纹,辨识ECU

Physical-Fingerprinting of Electronic Control Unit (ECU) Based on Machine Learning Algorithm for In-Vehicle Network Communication Protocol “CAN-BUS”


CAN数据逆向

CAN的逆向一般分为三步:


1. 将物理事件链接到消息CAN ID

2. 识别CAN信号位的位置和长度

3. 识别信号的比例和偏移量


逆向方法:

CAN消息位辨识

READ: Reverse Engineering of Automotive Data Frames

Online Reverse Engineering of CAN Data Jens


4. 通过观察方法破解数据包

在汽车作出动作指令后, CAN ID 的报文是如何进行变化的, DBC 会把变化的部分标成红色。通过观察哪一个 CAN ID 在汽车发出指令后发生变化(这种变化通常只在瞬间),来确定此项车身控制指令对应的是哪一个 CAN ID。(可以得到*终的信号 ->可以逆向出DBC)

与C. Electronics, “Reverse engineering can bus messages with wireshark,”

2010.提到的方法类似,都是通过比较CAN消息的数据字段与物理事件出发的关系

J. Staggs, “How to hack your mini cooper: reverse engineering can messages on passenger automobiles,” Institute for Information Security,2013.

Reverse engineering can bus messages with wireshark


5. 通过模糊测试的方法破解数据包

编写 Fuzz 脚本,制定 Fuzz 的规则。例如, CAN 数据包的数据位不变, CAN ID不断的自增。不断的往 CAN 总线当中发送 Fuzz 数据包观察汽车的响应变化, 通过将汽车的变化与当前发送的数据包相对应,可以找出控制汽车的 CAN 报文指令, 利于对汽车 CAN 总线数据包进行逆向。当找到控制指令的 CAN ID,再对其数据位进行 Fuzz,通过对数据位的变化输入,找到控制命令是在哪个位上。(可以逆向出DBC)

Fuzz Testing for Automotive Cyber-security


6. 通过函数图像的方法破解数据包

画出所有ID的各个数据位上的值与时间的关系图,通过直观的方式来判断数据包中信号的信息。


7. 基于统计的方法

利用OBD的PID 得到真实数据,通过比较(部分数据) 差值/DTW距离等等特征进行匹配

Online Reverse Engineering of CAN Data Jens


8. 基于机器学习的方法

Automatic Reverse Engineering of CAN Bus Data Using Machine Learning Techniques


自动化逆向工具

Automated Reverse Engineering and Attack for CAN using OBD-II

https://github.com/comma1/ACA


Fuzzing

工具:



测试方法:对报文 ID 和Data以及长度进行模糊,生成大量模糊随机数据输入DUT中,监测系统响应。模糊方法同通用模糊器分为基于变异的模糊与基于生成的模糊方法。

关键技术:模糊数据的生成方法(模糊器设计)


1. 按位依次变化(某位bit为1,其余全为0)(较工程的方法)

2. 基于遗传算法的模糊器

3. 基于深度学习的模糊器


结果分析:

1.测试执行时间(模糊器优化指标)

2.观察系统响应,分析系统漏洞(模糊效果)

参考:

Fuzz Testing for Automotive Cyber-Security

Implementation of the CAN-FD Protocol in the Fuzzing Tool beSTORM

A Method for Constructing Automotive Cybersecurity Tests, a CAN Fuzz Testing Example


DoS


CAN ID被用于总线仲裁,当同时有多个数据包需要发送时,它们的优先级就由仲裁ID 来决定, ID 值越小优先级就越高。比如,一个 ECU 试图发送 CAN ID 0010,而另一个要发送 0011,则第一个 ECU 就能获得总线的使用权并发送该数据包, 不会受其他数据包的影响,并且发送 CAN ID 为 0011 的数据包的 ECU 必须等待,直到下一个数据包发送时一起参与仲裁。

基于优先级仲裁机制的Dos攻击,*简单方法是发送 CAN ID 为 0000 的数据包,这样的数据包将被视为*高优先级,其他所有 ECU 的所有数据包都必须等待这些数据包传输完毕之后才能发送。如果一直不停止发送这样的数据包,则其他数据包将不得发送,对外的表现就是拒绝服务。


结果分析:


1. 流量和负载率(丢帧)

2. 系统响应(ECU活性辨识)


参考:

Evaluation of DoS Attacks on Vehicle CAN Bus System

Protocol-Compliant DoS Attacks on CAN: Demonstration and Mitigation

————————————————

版权声明:本文为CSDN博主「闻者文也」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Pan_w_w/article/details/107135306




相关文章

汽车网络安全之——ECU攻击
下载 | “安全硬件扩展” 网络安全规范Secure Hardware Extension (SHE) 标准
下载 |《信息安全技术 车载网络设备信息安全技术要求》(征求意见稿)






SELECTED EVENTS




 

长按二维码识别关注



我就知道你“在看”


  • 电话咨询
  • 15021948198
  • 021-22306692
None