轩辕实验室┃通过重新配置ECU和禁用攻击包来缓解车载网络攻击

来源:上海控安
2020-05-13
1964

本文翻译自Hyeokchan Kwon,Sokjoon Lee,Jungyong Choi,Byung-ho Chung 所著 Mitigation mechanism against in-vehicle network intrusion by reconfiguring ECU and disabling attack packet中文版权归控安轩辕实验室所有。



摘要

       车载安全性研究具有挑战性,因为大多数研究人员很难获得真正的安全性评估工具。另一方面,现有的软件解决方案要么非常昂贵,要么功能非常有限。迫切需要一种方便的工具,该工具可以生成灵活的数据集以用于车载攻击和防御评估。在这项工作中,我们设计和开发了一种攻击流量生成(ATG)工具,用于车载CAN总线的安全性测试。通过提供可与廉价、广泛可用的硬件配置一起工作的开源软件包,它消除了该领域研究的障碍。ATG为汽车安全研究人员提供了一个免费且实用的工具包,可与实际或模拟的CAN总线轻松有效地进行交互。ATG的最重要功能之一是自动生成攻击有效载荷。负载可以预先配置并在多种攻击模式下使用。ATG可以将攻击数据包注入CAN总线,并实时记录CAN总线流量。重播(replay)模式可以使用预分类的数据集对CAN总线安全性实施方案进行有效评估。此外,用于原始可重播CAN序列的统一数据格式,使不同的汽车研究团队能够针对不同的车辆和仿真硬件交换数据集,并同时进行安全性测试。


01 介绍


  

车辆安全的关键是检测和阻止攻击,例如将未经授权的数据注入车辆的内部网络,并使用拒绝服务来破坏车辆的可用性。

     目前,有一种汽车防火墙用于检测车辆内部网络的入侵,并且一种针对车辆的入侵检测系统(IDS)也在积极研究中。通常,对于自动防火墙,可以使用访问规则白名单来控制对内部网络的访问。汽车防火墙通常安装在车载网络 (IVN)入口点,如head单元或OBDII,也可以安装在中央网关或仅用于检测的ECUs(电子控制单元)中等。车辆防火墙的工作方式是,通过检查车辆的状态、CAN ID、CAN有效负载、应用程序等的方式来允许或阻止数据包注入到车辆的内部网络。

     以汽车入侵检测系统(IDS)为例,该系统通常以分析车载网络传输的流量和检测异常或不当行为的方式运行。

     当检测到攻击时,当前的车辆防火墙或IDS采取被动动作,例如向用户(或仪表板、车辆管理中心等)发送警告警报,以及事后通过安全更新进行响应。事实上,目前的汽车安全系统还没有针对车载网络的网络攻击的对策。

     在本文中,我们提出了一种入侵响应机制,以实时应对非法入侵攻击,减轻攻击造成的损害。为此,我们提出了一种通过重新配置ECU禁用攻击包来降低车载网络入侵的机制。





02 背景


相关工作 

     汽车入侵防御技术是由松下、Argus、ESCRYPT、IBM和Symantec等公司研发的。为了检测内部网络的网络攻击,使用了各种机制,如CAN ID检测、DPI和CAN消息的时间间隔分析。目前,对车载网络中异常检测和网络攻击机制的研究较多,但对检测后的对策研究较少。

     当检测到攻击时,当前的自动防火墙或IDS将采取被动操作,例如向用户发送警告警报,然后通过安全更新进行响应。例如,特斯拉在2016年和2017年被keen security labs攻击时,特斯拉随后发布了一个在线安全补丁/更新。2015年,当吉普切诺基(Jeep Cherokee)被查理·米勒(Charlie Miller)和克里斯·瓦拉塞克(Chris Valasek)黑时,克莱斯勒召回了一辆140万辆修复错误的车辆。为了保证汽车的实时安全,需要建立针对IVN网络攻击的实时响应机制。本文提出了一种通过重新配置ECU和禁用攻击包来降低车载网络入侵的机制。


CAN协议

     本文的目标IVN是一个基于CAN的网络。车辆的当前安全信息由车内的CAN(控制器局域网络)协议传输。CAN用于汽车的核心控制系统,如车身系统、发动机管理和变速器控制。

     CAN是一个点对点网络。也就是说,没有主节点控制各个节点对CAN总线上的读写数据的访问。当CAN节点准备好传输数据时,它验证总线是否在使用,然后将CAN帧写入网络。发送的CAN帧不包含发送或接收节点的地址。相反,它显示一个惟一的中间CAN ID在帧上。CAN网络中的每个节点接收CAN帧,并根据传输帧的CAN ID确定网络中的每个节点是否接受帧。当多个节点试图同时向CAN总线发送消息时,具有最高优先级(最低CAN ID)的节点将自动获得总线访问权。具有较低优先级的节点必须等到总线可用后才能重试传输。通过这种方式,可以实现CAN网络来确保CAN节点之间的确定性通信。

     CAN协议的主要特点如下:广播通信、串行网络、只需两根线(即CAN_H, CAN_L)以及数据速率高达1MB/s。每个消息帧最多支持8个字节,不支持节点ID,只支持消息ID,一个应用程序可以支持多个消息iD,支持消息优先级(即消息ID越低,优先级越高)。

图1 显示了一个CAN节点(ECU)。

     每个CAN节点需要如下组件:

中央处理器(Central processing unit):主机处理器决定接收到的消息和需要发送的消息的含义。连接到主处理器的传感器、执行器和控制设备。

CAN控制器(CAN controller):(接收)CAN控制器存储从总线接收到的串行位,直到整个消息可用并可由主机处理器获取为止。(发送)主机进程将发送的消息发送给CAN控制器,CAN控制器在总线为空时将比特发送给总线。

收发器(Transceiver):(接收) 将数据流从CAN总线级转换为CAN控制器级。通常有一个保护电路来保护CAN控制器。(传输)将数据流从CAN控制器级转换为CAN总线级。

     标准CAN帧的位字段含义如表1所示。







03 入侵缓解机制


所提议机制的体系结构如图2所示。每个组件的描述如下。

丨入侵检测系统(Intrusion detection system):检测车载网络攻击的系统

丨 缓解管理器(Mitigation manager):当汽车网络攻击被入侵检测系统检测到时,一种控制设备或SW模块可以缓解网络攻击所造成的损害。它可以独立存在设备或可作为软件模块安装在交流中心网关等。

丨 缓解ECU(Mitigation ECU):根据缓解管理器的指示执行攻击缓解。

丨 受害者ECU(Victim ECU):预计会被这次攻击造成的损坏。

丨 相应的代理模块:每个ECU中安装的sw模块都配备了一些功能,每个ECU处理这些功能是为了应对攻击。


     当检测到车辆受到网络攻击时,对车辆的损害进行缓解的过程如下:

     一个入侵检测系统可以检测到对车辆内部网络的渗透攻击,并指示响应管理器采取应对措施。此时,被检测到的攻击包中所包含的CAN ID、预计会被攻击破坏的ECU、攻击类型等一起传输给相应的管理器。在本文中,我们提出了四种类型的对策。


A. 对策1:重新配置ECU

     缓解管理器将缓解消息发送到预期将被损坏的ECUs或需要保护的ECUs。并采取必要的应对措施。收到缓解消息的ECU可以执行以下操作对策。

1. 重新启动

2. 转换ECU的模式(即从安全的角度来看,被认为是重要的或损坏的ECU)到安全模式。安全模式的操作可以是多种多样的,例如,为了车辆的安全,只有basio驱动操作是允许的,只有经过安全验证的消息才能被处理。

3. 重新配置ECU(即例如,切换到安全模式,开启诸如完整性检查、加密模式等安全特性)。


B.对策2:避免攻击CAN包

1. 缓解管理器将攻击包的CAN ID发送给周围的ECU,以便每个ECU丢弃包含相应CAN ID的包。

2. 缓解管理器将攻击包的信息发送到安装在特定域中的缓解ECU(例如,动力系统、底盘、车身等)。

3. 缓解ECU广播可以识别攻击包的信息到同一域中的ECU

4. 每一个ECU(即对应的代理模块安装在其上)丢弃包含相应CAN ID的数据包

5. 当攻击结束时,它再次广播包含相应的CAN ID的包是正常的。


C. 对策3:重新配置主机

     如果攻击的目标是一个head单位(信息娱乐系统),就需要一个更微妙的反应。在这种情况下,缓解管理器向head单元发送缓解消息以更改设置。要更改的设置包括特定的外部通信限制、特定包的访问控制、注入特定包的应用程序执行控制和反病毒运行。


图3 显示了特定领域的对策流程。


D. 对策4:特定领域的对策

     汽车以太网已经成为下一代汽车内网,IEEE正在积极开展相关的标准化工作。近年来,以宝马为代表的装备了汽车以太网的汽车逐渐增多。汽车以太网的结构是根据车辆的功能形成一个域,并通过每个车辆以太网交换机连接各个域。在每个域中,可以使用现有的IVN协议

     当攻击发生在具有这样一个域网关的车辆结构中时,对策如下:

     当攻击发生时,相应的管理器向域网关发送一条消息来指示域单元的通信,例如更改相应域的配置。它丢弃包含上述特定CAN ID包的包,或将域本身的设置更改为安全模式,以便传输和接收包含加密或签名的消息。






04 禁用攻击包机制


本节介绍禁用攻击包的机制。所提出的方法是利用构成车辆内部网络的CAN协议的特性来减少攻击。

 CAN(控制器区域网络)是一种功能强大的车辆总线标准,旨在使微型计算机和设备在没有主机的情况下在应用程序中相互通信。它是一种基于消息的协议,用于车辆中的多路布线,以节省铜线。


CAN框架格式如图4所示。

     在图4中,消息标识符是惟一的消息ID, RTR位是远程传输请求字段。RTR是一个远程传输请求字段。数据帧为显性(0),远程帧为隐性(1)。数据字段有要传输的数据(长度以字节为单位,由DLC字段决定)

      在CAN框架格式中,此技术中使用的字段有以下两个:

1. 消息标识符:存储CAN ID值的部分

2. RTR位:区分远程帧和数据帧的字段。对于数据帧必须是显性的(0),对于远程请求帧必须是隐性的(1)。


     除了用于数据传输的数据帧之外,还有远程帧——用于请求数据的帧类型,来自任何CAN节点。远程帧具有与数据帧的布局相同,但缺少数据字段。原则上,可以为CAN网络中所有现有的数据帧定义远程帧。每个ECU必须确保远程帧的标识符与相关数据帧的标识符匹配。负责生成该数据帧的ECU必须将其作为对远程帧的响应进行传输。

     本文使用远程帧来禁用攻击包。图5显示了一个ECU的攻击过程,作为一个例子。此时,为标识符分配了一个CAN ID值,RTR位的值为“0”,表示这是一个数据帧。

     当一个RTR位为0的消息被广播时,每个ECU接收它并通过查看CAN ID处理它(如果它是感兴趣的帧)。这是一个正常的包结构,但是假设这个包用于攻击。例如,这个包可能用于DoS攻击、未授权的包或未授权的控制命令。


     针对攻击的缓解方法和步骤如下。图6显示了一个禁用攻击包进程:

1. 缓解管理器指示缓解ECU禁用攻击包。

2. 缓解ECU将包含在CAN总线上传输的攻击数据包的CAN ID的广播数据包的RTR从显性(0)更改为隐性(1)。显性状态和隐性状态之间的区别因素是CAN_H和CAN_L线之间的差分电压。可以通过CAN总线上的电压控制来更改RTR值。

3. 将RTR设置为1的框架是远程帧,其中每个ECU接收帧,只有当帧的标识符是与之关联的CAN ID时,才返回它们的状态。另一个ECU丢弃不接收该帧。

4. 在这种情况下,由于RTR被更改为1,因此其他ECU不会接收和丢弃该帧,因此攻击造成的损害会部分减轻。另一方面,攻击ECU接收所有帧并返回它们的状态,因为被更改的帧是远程帧并包含与他相关的CAN ID。因此,它具有反击攻击者的效果。







//////////




控安轩辕实验室”依托华东师范大学软件工程学院和上海工业控制系统安全创新功能型平台,致力于车载信息安全和预期功能安全技术研究,面向智能网联汽车及车载边缘计算网络从事前瞻性技术预研、研发技术成果转化以及安全解决方案推广。 





收藏
点赞
2000