首页
社区
课程
招聘
[翻译]识别 CAN 总线上的攻击
发表于: 2017-5-11 09:36 20178

[翻译]识别 CAN 总线上的攻击

2017-5-11 09:36
20178

现存的汽车Controller Area NetworkCAN)非常容易受到攻击。缺少对发送者的验证,意味着攻击者可以伪装成作为网络上的一个合法节点,进行发送和接收消息。这篇论文提出了一个可以使用CAN识别合法和不合法消息的系统。此外,重防攻击可以阻塞注重安全的实时网络,这一系统还提供了防御重防攻击的功能。

关键词:Controller Area NetworkCAN),汽车安全,安全机制,网络安全


在过去的20年里,Controller Area Network(CAN)以其在车载式通信中优越的鲁棒性,容错率和高效而出名。除了它的一些安全特征,CAN在设计时并没有考虑到安全性,因为汽车被假定处于一个孤立的系统中。然后,现今的车载网络正在受到威胁,因为攻击者试图盗取,篡改或伪造信息,这可能会使得汽车的购买者和他们所处的环境变得不安全。

我们提出了一个系统,使用这个系统,CAN可以检测外部威胁,并区分消息是来源于合法的ECUs(电子控制单元)还是未被授权的源。我们也能试图创造一个能够防御重放攻击的系统,以此降低实时网络资源的消耗。



CAN在现代汽车通信协议中被大量的使用。它在1980年代中期由BOSCH设计出来,并运行在广播网络中。某一节点创建的包会被发送给网络中所有的节点,接收节点自己决定是接收还是抛弃这个包。这一行为的原理是为了保持网络中信息的一致性(Texas Instrments-2008)。标准CAN包的结构如图1所示:

标准CAN包(Texas Instrments-2008

除了标准长度,还有一个拥有一个29-bit的标志域的扩展版本,这个标志域使包中柷包含更多种类的优先顺序。

个体节点决定是否使用能够标志消息类型的标志符(CAN ID)来处理包。


几个潜在的漏洞存在于CAN的实现中。接收节点决定是否根据CAN ID来处理包,网络中其他的节点也可以这样做。因此,个体节点不能识别某一个包是不是专门发送给它的,也不知道这个包来自于哪个节点。这就导致另一种漏洞,也就是CAN不能识别节点是否是合法的。CAN没有任何的对节点授权的方式。因此,攻击者可以轻易地在中继节点上伪造消息。这些方面导致了CAN不仅不安全,还不能对威胁进行识别。


攻击者如果要渗透汽车的网络有非常多的方法。最直接的就是通过On-Board Diagnostics (OBD-II)端口。它提供了对CAN总线的直接访问,并被用于对包进行诊断(Checkoway-2011)。然而,如果攻击者连接到了这个端口,他们就会被当作这个网络中的一个节点。这使得他们可以收集和传输消息。一种替代方法是在端口上安装某些远程设备,远程对汽车进行攻击。

最近汽车生产的趋势转向了汽车的无线通信。像GM’OnStar, Toyota’s SafetyConnect, BMW’s BMW Assist (Checkoway-2011)这些系统让车辆能够通过宽带服务进行通信。这些系统提供了新的路径供攻击者与车辆进行交互。

我们研究的目的是针对CAN安全机制的缺乏,生成一些功能性的解决方案。CAN漏洞的关键点是协议不能识别消息的来源。

为了研究解决方案,我们提出了一个能够兼容现在CAN模型的方法。我们设计了一种机制,使CAN能识别ECUs是本地车辆硬件的一部分(合法的ECUs)还是外部攻击者的(恶意的ECUs)。此外,我们打算创造一个系统,这个系统通过创建一个能够区分某一帧和下一帧,以此使CAN能够防御重放攻击。

为了实现这一目标,我们创建了一个系统,通过在现有的CAN帧后面添加一个域,使CAN能够识别入侵者,并防御重放攻击。这一机制会在这一域中产生新的值。这些值中的其中一个就是根据帧中数据以及一个秘密值产生的hash值。这个hash值可以作为一个授权值,用来识别消息是来源于,在车辆生产过程中的哪些组件。另一个值作为一个时间戳,使系统能够识别重放攻击。

目前使用的CAN帧不能兼容我们提出的额外的域。因此,我们决定使用新CAN FD (CAN with Flexible Data-Rate)。这一协议对CAN协议进行了一系列改进,包括更灵活的数据传输率和一个扩展数据域。鉴于传统的CAN格式只允许8字节的最大数据长度,CAN FD协议可以支持长达64字节的消息(Hartwich-2012)。此外,CAN FD协议有更灵活的数据传输率(从CAN1 mbps到高达15 mbps),这使得这个系统可以兼容增长的消息长度。


这一系统的核心概念就是使用一个小的加密哈希函数。加密哈希函数是一种单向散列的函数,因为它不能根据hash值还原出原始的数据。此外,加密哈希函数还可以避免冲突,也就是说,两个不同的消息不可能产生相同的hash值。

hash函数在消息的保护授权和发送者的验证方面都有应用。因为从hash值还原出原文是非常困难的,用于产生hash值的原文内容不会受到修改,因为随后它们就会被验证。


这一系统的第一步源于车辆的生产。在汽车的生产过程中,每辆车都会有一个指定的值。这个值是唯一的,并被用于车辆的识别(与车辆识别码(VIN)相似)。汽车中的每一个ECU将会有一个CAN标识号(CIN),这个CIN会被硬编码进他们的系统中。这个值作为一个索引用于对ECU进行访问。在维修的时候,通过从生产商那获取原始CIN,这个CIN可以被改变。


这一机制会产生一个被称之为CAN消息认证器(CAN Message Authenticator (CMA))新的域,它包含hash值和用于产生哈希值的时间信息。在一个合法的ECU收到一个帧的时候,CMA将被用于验证消息的合法性。这一新的帧位于当前数据帧的末尾。



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (2)
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
22
2020-1-7 11:15
0
雪    币: 4382
活跃值: (6491)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
汽车诊断,远程连接安全很重要!希望得到加强
谁都不希望方向盘被黑客控制
2022-4-9 18:48
0
游客
登录 | 注册 方可回帖
返回
//