READ: Reverse Engineering of Automotive Data Frames(一种使用信号的线性变化统计特征进行逆向的方法)

本文提出READ算法用于自动化逆向汽车报文,分析私有CAN总线协议消息流量轨迹。该算法能提取和分类信号,与其他工作相比,可提取两倍以上信号,执行时间缩短两个数量级。通过合成和真实数据集评估,证明其性能优于FBCA,未来还有望进一步扩展功能。

摘要:文中提出一种新的算法自动化逆向汽车报文,从而分析私有CAN总线协议消息的流量轨迹,自动的识别和标记不同类型的信号。通过在真实的车辆上进行流量监控及逆行实验测试证明READ可以提取和分类信号,并根据车辆的RFC文档和正式规范进行对比,结果证明READ和其他类似工作相比能分类和提取两倍以上的信号。同时其执行时间缩短了两个数量级。文章通过将 READ 应用于真实车辆生成的 CAN 报文,证明了它在 CAN 流量分析中的实用性。

工作先进性

性能于之前的工作,能提取出两倍以上信号,使用真实报文进行验证。自动对提取出的信号标注描述标签,帮助人工分析。其使用的标签是汽车领域专用的,具有精确的表达能力。

如何评估

记录车辆厂商提供的一辆未改装的特许车辆的 CAN 交通轨迹。收集到的数据属于不同的 CAN 交通轨迹,这些数据是在一天中的不同时间和不同交通状况下,经过几个小时的驾驶过程收集到的。在驾驶过程中,不同的仪表盘按钮和功能在必要时被激活(例如,下雨时的挡风玻璃雨刷器、变道时的转弯指示灯)。收集到的 CAN 交通跟踪数据超过 1.26 亿个 CAN 数据帧,包括约 110 个不同的报文 ID,其中约 70 个为基本格式,其余为扩展格式。

现有工作

自动识别网络流量中特定数据包进行逆向的工作思路分三类:

  1. 匹配网络数据包中的已知签名

  2. 分析传输层的源端口号和目的端口号

  3. 对数据包元数据应用分类算法

这些工作都是为TCP/IP网络设计的,并不适用于汽车领域,因为CAN没有源端口和目标端口,其是广播通信所以也不建立双向通信流,且没有网络层、传输层和应用层的隔离。

Field classification, modeling and anomaly detection in unknown CAN bus networks FBCA试图通过观察共享相同 ID 的报文有效载荷如何随时间演变来提取信号及其边界。不过其提出的启发式方法(首先对字段进行分割并用贪心算法对其进行分类,最后用这些数据训练[TCAM:一种高速存储器,符号数据库]模型进行分类)从未针对真实 CAN 报文进行过测试,其实验评估是基于实验室环境中模拟 ECU 生成的 CAN 流量,而不是真实的车辆。

CAN总线相关知识

任何特定车型的 CAN 报文语法的完整规范都包含在所谓的 CAN 通信数据库(也称为 DBC)中。对于每条 CAN 报文,车辆的 DBC 都定义了其周期时间(许多 CAN 报文都是定期发送的)、生成报文的 ECU、报文的目标 ECU 以及解释报文内容所需的所有其他规格。为此,DBC 包含对所有 CAN 总线报文有效载荷中不同信号的完整描述,包括其边界、编码和测量单位。此外,不同的车辆配置由不同的 DBC 文件描述,因此,即使是同一汽车制造商生产的不同车辆,也无法将相同的 DBC 用于不同的车辆配置和型号。这些正式规格由汽车制造商保密。从攻击者的角度来看,由于缺乏公开规范,因此需要通过逆向工程来确定影响特定功能的 CAN 报文。所有针对CAN报文逆向的研究工作的主要局限性在于能从通用数据包中提取和分析的特征非常少。

CAN 数据帧是一种特殊类型的 CAN 报文,用于在 CAN 总线上传输数据,并被 ECU 用来发送和接收任意有效载荷。不同 CAN 数据帧的结构图如图 1所示。主要字段包括标识符(ID)、数据长度代码(DLC)和数据。ID 用于区分不同类型的 CAN 数据帧。具有特定 ID 特征的数据帧通常只由一个 ECU 生成,用户 ECU 使用 ID 从 CAN 总线上传输的所有 CAN 报文中选择相关的数据帧。ID 还可用于 CAN 报文的仲裁,该字段的数值越小,表示报文的优先级越高。ID 是唯一一个根据 CAN 报文类型而具有不同大小的字段。如图 a 所示,基本格式的 ID 字段固定长度为 11 位,而在扩展格式中(如图 b 所示),ID 长度

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值