基于对2017款雷克萨斯NX300车辆的硬件分析和CAN网络测试,汽车内部的基本架构如下图所示(涉及到AVN、DCM数据通信模块、电子控制单元和CAN网络等)。
DCM是一个运行在高通MDM6600基带芯片上的远程信息处理设备,又称为T-Box。它可以通过USB以太网接口为AVN设备提供3G网络来支持远程信息服务。DCM还可以通过CAN总线查询ECU(比如汽车引擎和车门)的状态信息,并将查询结果上传到云端后台。
作为车载信息娱乐系统,雷克萨斯AVN设备主要为用户提供无线电广播、多媒体和导航功能。实际上,它由两部分组成:DCU显示控制单元和MEU地图多媒体扩展单元。DCU是AVN单元的关键部件,DCU的主电路板模块暴露了一些常见的攻击面,如Wi-Fi,蓝牙和USB接口。通过DCUuCOM电路板模块,DCU系统能给通过CAN消息与汽车内部ECU进行间接通信。MEU地图多媒体扩展单元功能非常透明,它只负责提供地图导航数据。在DCU和MEU之间,还连接了USB以太网线用于消息通信。
通过拆解DCU硬件,我们发现它主要包含两个电路板模块。如下图所示,根据电路板位置,顶层为DCU主电路板模块,底层为DCUuCOM电路板模块。
DCU主电路板模块集成了一些常规芯片,包括瑞萨R8A779xSoC芯片[2],博通BCM4339Wi-Fi蓝牙芯片,2块512MB的SDRAM内存芯片,1块8GB的eMMCNANDFlash储存器和1块8MB的SPINORFlash储存器。SoC芯片拥有两个ARM-CortexA15核,用于运行各种代码,包括芯片启动代码(bootrom)、NORFlash中的U-Boot固件代码以及eMMCFlash中的Linux系统。在DCU主板背面有一块独立的SPINORFlash储存芯片。根据芯片的数据手册,该存储器总容量为64M-bits。将存储芯片的引脚焊接到通用存储芯片编程器后,并在flashrom软件[3]中选择对应的芯片型号,可以将SPI储存芯片中的所有数据提取出来。通过对提取的数据进行逆向工程后,基本上可以推测出如下图所示的数据存储布局。由于为了支持A/B系统备份更新,Flash存储器中还保存一部分固件镜像和配置数据的副本,比如U-Bootconfig配置数据、U-BootImage镜像和BSPBootconfig启动配置数据。
DCU主板还集成了一块8GB的eMMCNANDFlash芯片用来存储AVN单元的主要代码和数据,包括Linux内核镜像、设备树数据、ramdisk镜像和Ext4文件系统。同时为了实现AVN系统的快速引导启动,Flash中也保存了一份Linux系统的快照镜像。而为了支持A/B系统更新,Flash中还需要储存Linux内核镜像和ramdisk镜像的副本。整个eMMCFlash的存储布局如下图所示。
TDCUuCOM电路板模块的用途是管理电源和一些外部设备,如DVD播放器、空调、触控板和电子时钟。而为了与这些外部设备通信,uCOM电路板上配备了两个CAN总线微控制器(SYSuCOM与CANuCOM),每个微控制器都和uCOM电路板上独立的CAN总线收发器进行连接。CANuCOM是DCU显示控制单元中的一个CAN总线控制器。它使用的是瑞萨R5F10PLJL芯片(如图5所示),通过连接一个CAN总线收发器,CANuCOM可以直接访问汽车的娱乐CAN总线,并且能给与一些车载ECU(如网关和MainBodyECU)交换CAN消息。
SYSuCOM是一个基于松下MNZLF79WXWUB芯片的CAN总线控制器。通过CAN总线收发器,它可以和位于专用CAN网络域中的触控板和电子时钟进行CAN消息通信。SYSuCOM通过UART串口直接连接了CANuCOM和DCU主电路板,它能给为主电路板和外部设备完成不同类型的消息数据转换。
以下表中所有的安全研究发现在2017款雷克萨斯NX300车型上验证是有效的,并且在我们向丰田公司提交完整的技术报告及合作交流相应的技术细节之后,丰田也确认了这些安全问题。
通过逆向uCOM固件及其固件更新逻辑,我们能够将一个恶意固件重新刷写到uCOM电路板模块中,以此来绕过CAN消息验证,从而可以实现向车辆娱乐CAN总线发送任意CAN消息。
通过结合蓝牙和车载诊断功能中的安全发现(见表1),我们可以实现如下图所示的从蓝牙无线到车内CAN网络的远程无接触式的攻击链。
步骤-1.因为车载蓝牙服务是以root权限运行在DCU系统中,一旦DCU系统被蓝牙漏洞攻击破解,恶意代码将会通过无线方式部署并永久驻留在系统中。步骤-2.恶意代码可以设计成让被破解后的DCU系统自动连接到我们创建的Wi-Fi热点,并反弹一个远程可交互的系统rootshell。步骤-3.接着可以利用Wi-Fi网络下的rootshell,通过SYSuCOM和CANuCOM将任意的CAN消息传输到车内CAN总线。步骤-4.此外通过利用CAN诊断消息,位于车内CAN网络的一些ECU会被欺骗执行诊断功能,从而使得汽车触发非预期的物理动作。
雷克萨斯汽车安全研究是一项道德的安全研究项目。科恩实验室遵循了全球软件和互联网行业公认的负责任的漏洞披露原则,同丰田公司一起合作修复本报告中列出的安全漏洞和攻击链。