作者:腾讯科恩实验室
原文链接:https://keenlab.tencent.com/zh/2020/03/30/Tencent-Keen-Security-Lab-Experimental-Security-Assessment-on-Lexus-Cars/
雷克萨斯从2017年开始已经为多款车型(包括NX、LS、ES等系列)配备新一代的信息娱乐系统,也被称为AVN视听导航设备。与一些智能网联车载系统相比,如特斯拉中控系统和宝马ConnectedDrive系统,雷克萨斯AVN系统会显得更加传统一些。从安全的角度来看,它能够很大程度上降低被潜在的网络安全问题攻击的可能性。但是一个新的系统往往会带来新的安全风险。
科恩实验室对2017款雷克萨斯NX300车型进行安全研究后,在该车型的蓝牙和车辆诊断功能上发现了一系列安全问题,并能够危及到AVN系统、车内CAN网络和相关车载电子控制单元(ECU)的安全性。通过结合利用这些安全问题,科恩实验室能够在无需任何用户交互的情况下,通过无线方式破解并控制汽车的AVN系统,将恶意CAN指令发送到车内CAN网络,从而实现对存在漏洞的车辆执行一些非预期的物理操作。
目前,丰田公司正在推进车辆安全问题修复的解决方案。因此本次报告内容只对研究成果做简要分析,而不是全面的细节披露。如果一切顺利的话,我们将在2021年某个适当的时间点发布完整的漏洞技术报告。
车载部件概述
基于对2017款雷克萨斯NX300车辆的硬件分析和CAN网络测试,汽车内部的基本架构如下图所示(涉及到AVN、DCM数据通信模块、电子控制单元和CAN网络等)。
DCM数据通信模块
DCM是一个运行在高通MDM6600基带芯片上的远程信息处理设备,又称为T-Box。它可以通过USB以太网接口为AVN设备提供3G网络来支持远程信息服务。DCM还可以通过CAN总线查询ECU (比如汽车引擎和车门) 的状态信息,并将查询结果上传到云端后台。
AVN 视听导航设备
作为车载信息娱乐系统,雷克萨斯AVN设备主要为用户提供无线电广播、多媒体和导航功能。实际上,它由两部分组成:DCU显示控制单元和MEU地图多媒体扩展单元。
DCU是AVN单元的关键部件,DCU的主电路板模块暴露了一些常见的攻击面,如Wi-Fi,蓝牙和USB接口。通过DCU uCOM电路板模块,DCU系统能给通过CAN消息与汽车内部ECU进行间接通信。
MEU地图多媒体扩展单元功能非常透明,它只负责提供地图导航数据。在DCU和MEU之间,还连接了USB以太网线用于消息通信。
DCU 主电路板模块
通过拆解DCU硬件,我们发现它主要包含两个电路板模块。如下图所示,根据电路板位置,顶层为DCU主电路板模块,底层为DCU uCOM电路板模块。
DCU主电路板模块集成了一些常规芯片,包括瑞萨R8A779x SoC芯片[2], 博通BCM4339 Wi-Fi蓝牙芯片,2块512MB的SDRAM内存芯片,1块8GB的eMMC NAND Flash储存器和1块8MB的SPI NOR Flash储存器。SoC芯片拥有两个ARM-CortexA15核,用于运行各种代码,包括芯片启动代码(bootrom)、NOR Flash中的U-Boot固件代码以及eMMC Flash中的Linux系统。
在DCU主板背面有一块独立的SPI NOR Flash储存芯片。根据芯片的数据手册,该存储器总容量为64M-bits。将存储芯片的引脚焊接到通用存储芯片编程器后,并在flashrom软件[3]中选择对应的芯片型号,可以将SPI储存芯片中的所有数据提取出来。通过对提取的数据进行逆向工程后,基本上可以推测出如下图所示的数据存储布局。由于为了支持A/B系统备份更新,Flash存储器中还保存一部分固件镜像和配置数据的副本,比如U-Boot config配置数据、U-Boot Image镜像和BSP Boot config启动配置数据。
DCU主板还集成了一块8GB的eMMC NAND Flash芯片用来存储AVN单元的主要代码和数据,包括Linux内核镜像、设备树数据、ramdisk镜像和Ext4文件系统。同时为了实现AVN系统的快速引导启动,Flash中也保存了一份Linux系统的快照镜像。而为了支持A/B系统更新, Flash中还需要储存Linux内核镜像和ramdisk镜像的副本。整个eMMC Flash的存储布局如下图所示。
DCU uCOM电路板模块
TDCU uCOM电路板模块的用途是管理电源和一些外部设备,如DVD播放器、空调、触控板和电子时钟。而为了与这些外部设备通信,uCOM电路板上配备了两个CAN总线微控制器(SYSuCOM与CANuCOM),每个微控制器都和uCOM电路板上独立的CAN总线收发器进行连接。
CANuCOM是DCU显示控制单元中的一个CAN总线控制器。它使用的是瑞萨R5F10PLJL芯片(如图5所示),通过连接一个CAN总线收发器,CANuCOM可以直接访问汽车的娱乐CAN总线,并且能给与一些车载ECU(如网关和Main Body ECU)交换CAN消息。
SYSuCOM是一个基于松下MNZLF79WXWUB芯片的CAN总线控制器。通过CAN总线收发器,它可以和位于专用CAN网络域中的触控板和电子时钟进行CAN消息通信。SYSuCOM通过UART串口直接连接了CANuCOM和DCU主电路板,它能给为主电路板和外部设备完成不同类型的消息数据转换。
电子控制单元和CAN网络
中央网关是一个重要的汽车ECU,它将车载CAN网络划分为不同的CAN域,包括娱乐CAN、车身CAN、OBD诊断CAN、底盘CAN和动力CAN等。另一个必不可少的ECU是Main Body ECU,也被称为车身控制模块(BCM)。Main Body ECU管理了一组用于处理车身相关功能的ECU。DCM模块和AVN属于娱乐CAN域。为了传输CAN消息,DCU uCOM电路板上设计了2个不同的CAN总线(即CAN-1和CAN-2)。通过uCOM模块,DCU主板模块可以向网关传输特定的CAN消息来查询车辆状态。
-
CAN-1. CANuCOM 微控制器的CAN总线,它直接连接到车内的娱乐CAN总线。通过UART串口与SYSuCOM通信,CANuCOM可以往娱乐CAN总线间接传输来自DCU主板的CAN消息。
-
CAN-2. SYSuCOM微控制器的CAN总线,它是一路专用CAN总线,用来连接DCU、触控板以及电子时钟等设备。该CAN总线与车载CAN网络在物理上是隔离的。
- 为了发送CAN消息,DCU主板模块与SYSuCOM建立了两路UART串口(/dev/ttySC1和/dev/ ttysc9)。DCU系统可以将定制的CAN消息发送到/dev/ttySC1串口,这些消息会被中转到CAN-1总线。通过类似的方式,发送到/dev/ttySC9的消息会被转发到CAN-2总线。
安全研究成果
以下表中所有的安全研究发现在2017款雷克萨斯NX300车型上验证是有效的,并且在我们向丰田公司提交完整的技术报告及合作交流相应的技术细节之后,丰田也确认了这些安全问题。
表1. 2017款雷克萨斯 NX300 车型上的安全研究发现
无线破解DCU系统
我们利用车载蓝牙服务中的两个漏洞实现在DCU的Linux系统中以root权限远程执行代码。第一个是堆内存越界读漏洞,第二个是堆内存的缓冲区溢出漏洞。这两个漏洞都存在于建立蓝牙连接的过程中,并且是在蓝牙配对之前,这使得针对蓝牙漏洞的利用是完全无需用户接触和交互的。而为了获得受影响车辆的蓝牙MAC地址,如果DCU系统曾经与移动电话配对过,我们就可以用 “Ubertooth One”[4]设备进行无线嗅探到DCU系统 的MAC地址。
此外,DCU系统并不支持安全启动,这意味着整个系统可以被篡改,例如按照惯例替换掉系统启动动画。在完全控制DCU系统之后,我们发现想要任意发送CAN消息并不容易,因为在DCU uCOM模块中已经实现了CAN消息的过滤机制。但幸运的是,DCU的Linux系统是负责uCOM的固件升级。
重构uCOM固件
通过逆向uCOM固件及其固件更新逻辑,我们能够将一个恶意固件重新刷写到uCOM电路板模块中,以此来绕过CAN消息验证,从而可以实现向车辆娱乐CAN总线发送任意CAN消息。
传输未授权诊断消息
根据车载诊断系统的实验测试结果,我们确认了被破解后的DCU系统是被允许通过发送未经授权的诊断CAN消息来控制车辆的诊断功能。Main Body ECU会被恶意诊断从而造成汽车在缺乏认证的情况下执行物理操作。
无线攻击链
通过结合蓝牙和车载诊断功能中的安全发现(见表1),我们可以实现如下图所示的从蓝牙无线到车内CAN网络的远程无接触式的攻击链。
- 步骤-1. 因为车载蓝牙服务是以root权限运行在DCU系统中,一旦DCU系统被蓝牙漏洞攻击破解,恶意代码将会通过无线方式部署并永久驻留在系统中。
- 步骤-2. 恶意代码可以设计成让被破解后的DCU系统自动连接到我们创建的Wi-Fi热点,并反弹一个远程可交互的系统root shell。
- 步骤-3. 接着可以利用Wi-Fi网络下的root shell,通过 SYSuCOM和CANuCOM将任意的CAN消息传输到车内CAN总线。
- 步骤-4. 此外通过利用CAN诊断消息,位于车内CAN网络的一些ECU会被欺骗执行诊断功能,从而使得汽车触发非预期的物理动作。
漏洞披露流程
雷克萨斯汽车安全研究是一项道德的安全研究项目。科恩实验室遵循了全球软件和互联网行业公认的负责任的漏洞披露原则,同丰田公司一起合作修复本报告中列出的安全漏洞和攻击链。
以下是详细的漏洞披露时间线:
丰田官方回应
丰田对于此次研究的官方回复请参考如下链接: https://global.toyota/en/newsroom/corporate/32120629.html
引用
-
https://www.renesas.com/us/en/solutions/automotive/soc/r-car-m2.html
-
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-5551
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1160/