特斯拉Model 3胎压监测系统安全漏洞解析

汽车   2024-11-19 08:20   上海  

作者 | 北湾南巷
出品 | 汽车电子与软件


特斯拉作为电动车领域的先锋,一直在安全性、自动驾驶和数字系统方面不断创新。然而,正如任何复杂系统一样,漏洞可能会出现。
         

 

         

 

在2024年Pwn2Own黑客大赛上,来自Synacktiv的网络安全研究人员David Berard和Thomas Imbert发现了特斯拉Model 3中的一个关键漏洞,具体位于其胎压监测系统(TPMS)。该漏洞使研究人员能够在车辆的防盗系统上远程执行代码,这引发了人们对现代联网汽车及其通信网络安全性的担忧。
         

 

         

 

     
   

 

#01
发现:针对特斯拉Model 3的攻击链
 

 

       

 

1.1  VCSEC系统介绍
         

 

TPMS(轮胎压力监测系统)是现代车辆安全的重要组成部分,通过实时监测轮胎压力,确保驾驶员能及时获知轮胎异常。Tesla 的 VCSEC(车辆控制安全单元)是处理包括 TPMS 在内的重要通信接口的核心组件。如图展示了Tesla车辆控制单元(VCSEC ECU)的架构及其功能与连接性特点。   
         

 

         

 

功能

描述

功能

Endpoint for the Tesla Mobile App

提供了特斯拉移动应用程序的一个端点。可以通过该应用程序实现打开车门、启动驾驶以及基本的远程控制等功能。


NFC

支持近场通信技术(Near Field Communication, NFC)。允许用户通过NFC设备来解锁汽车并启动驾驶。


TPMS

轮胎压力监测系统(Tire Pressure Monitoring System, TPMS)。用于测量轮胎的压力和温度,确保行车安全。

连接性

Bluetooth Low Energy

低功耗蓝牙技术。与特斯拉移动应用程序及轮胎压力监测传感器进行通信。


Ultra Wide Band

宽带超短波技术。主要用于与特斯拉移动应用程序之间的通信。


Vehicle CAN

车辆控制器局域网(Controller Area Network, CAN)。通过统一诊断服务(Unified Diagnostic Service, UDS)进行维护和配置。传输标准的CAN信号。


*这些功能和连接特性共同构成了VCSEC ECU的核心能力,使得特斯拉车辆能够实现智能化的控制和监控,提升用户体验和安全性能。
         

 

1. VCSEC ECU:VCSEC ECU (Vehicle Control Security) 是特斯拉车辆安全架构的核心组件,负责管理车辆访问、启动权限、远程控制等功能。
         

 

2. TPMS 传感器:TPMS 传感器 (Tire-Pressure Monitoring System) 用于监测轮胎压力和温度,是新车辆的强制要求。确保车辆安全行驶。早期使用433 MHz无线电,现采用蓝牙低功耗。通过BLE GATT特性进行,使用特定的GATT服务。
         

 

         

 

   
3. BLE 和 UWB 连接:TPMS 传感器和 VCSEC ECU 通过 BLE (Bluetooth Low Energy) 和 UWB (Ultra Wide Band) 技术进行无线连接,传输数据。
         

 

         

 

通信阶段

描述

1

BLE ADV

TPMS传感器通过广播宣告自己的存在,以便VCSEC能够发现它。

2

BLE CONNECT

VCSEC尝试与TPMS传感器建立蓝牙连接。

3

vehicleStatus

VCSEC发送给TPMS传感器的消息,用于获取车辆状态信息。

4

updaterCommand

VCSEC发送给TPMS传感器的命令,用于更新传感器的固件或其他设置。

5

updaterResponse

TPMS传感器对updaterCommand的响应,确认命令已收到并执行。

6

genealogyRequest

VCSEC发送请求以获取TPMS传感器的家谱信息,这可能包括传感器的版本和历史数据。

7

genealogyResponse

TPMS传感器对genealogyRequest的响应,提供家谱信息。

8

Adoption messages specific to the TPMS version

特定于TPMS版本的采用消息,

9

Standard messages: Tire pressure/temperature

标准消息,传输轮胎的压力和温度数据。

10

Standard messages: powermanagement

标准消息,涉及TPMS传感器的电源管理。

         

 

Berard和Imbert展示了他们如何利用特斯拉Model 3胎压监测系统(TPMS)的无线通信来在防盗系统的电子控制单元(ECU)上远程执行代码,该关键组件被称为VCSEC。该单元控制着与智能手机的交互以实现解锁和启动汽车等关键功能,同时还协调TPMS的操作。
         

 

1.2 漏洞解析
         

 

研究揭示了 Tesla 的 VCSEC ECU 在处理 x509 证书时的整数溢出漏洞。该问题源于证书响应的解析,数据在未充分验证 start_index 的情况下进行拷贝,导致缓冲区外写入(Out-Of-Bounds Write)。这使得攻击者能够利用此缺陷重写内存结构,从而控制函数指针并跳转到恶意代码。   
         

 

         

 

1. x509 证书分片:VCSEC ECU 在处理 TPMS 传感器证书时,会将其分片发送,并通过 Protobuf 消息传输。
         

 

         

 

         

 

2. 整数溢出:VCSEC ECU 在验证证书分片时存在整数溢出漏洞(integer overflow),导致越界写操作(OOB write),攻击者可以利用该漏洞控制程序流程。
         

 

   
         

 

描述

漏洞背景

在处理通过分段发送的 x509 证书时,系统中存在整数溢出漏洞。该漏洞与 startIndex 字段的验证有关。

验证漏洞

验证 startIndex 时的整数溢出:在处理证书的分段数据时,如果 startIndex 为负数,并与 data_size 相加后,可能导致整数溢出。此结果会使 startIndex + data_size 成为负数或意料之外的极大数值。

越界写入风险

 startIndex 导致越界写入:如果 startIndex 是负值,在执行 memcpy(g_cert_buffer + start_index, data, data_size); 时会出现越界写入。此问题会导致数据写入到 g_cert_buffer 数组的预期边界之外,带来潜在的安全隐患。

漏洞的潜在影响

攻击者可利用该漏洞执行恶意操作,如覆盖内存数据或注入恶意代码,导致系统不稳定或执行未经授权的操作。

         

 

        

详细描述

全局缓冲区定义

char g_cert_buffer[512]; 定义了一个大小为 512 字节的全局缓冲区,用于存储证书数据。

函数输入参数


tpms_id

u32_t tpms_id:表示 TPMS(胎压监测系统)设备的唯一标识符。

data

u8_t *data:指向包含证书部分数据的缓冲区。

data_size

u32_t data_size:data 指针所指数据的大小。

start_index

u32_t start_index:数据应写入 g_cert_buffer 的起始索引。

certificate_size

u32_t certificate_size:完整证书的总大小。

整数溢出风险


溢出检查

if (data_size <= 512 && (u32_t)(start_index + data_size) <= 512) 用来检查 start_index 和 data_size 的和是否在合法范围内。

潜在问题

如果 start_index 是负数(例如 -8,int start_index = -8; // 有符号整数),与 data_size(例如 64)相加后 (start_index + data_size) 等于 56,看似合法。由于 start_index 被强制转换为 u32_t(u32_t idx = (u32_t)start_index; // 转换为无符号整),会变成非常大的正数,导致条件检查通过,但实际执行时发生越界写入。(这个二进制数的十进制值等于 2的32次方8=4294967288。因此,-8 被转换为 4294967288)

越界写入


memcpy() 操作

memcpy(g_cert_buffer + start_index, data, data_size); 将 data 的内容复制到 g_cert_buffer,从 start_index 位置开始。·  g_cert_buffer + start_index 表示起始地址加上偏移量。因为 start_index 是 4294967288(远大于 512),偏移会导致指针超出 g_cert_buffer 的合法范围。实际上,指针操作时,内存地址计算为 g_cert_buffer 的地址加上一个巨大的偏移量,指向缓冲区之外的内存。这会导致 memcpy() 向非法区域写入数据。

问题产生

如果 start_index 是负数(如 -8),指针偏移后指向 g_cert_buffer 边界之外的内存位置,memcpy 会写入到 g_cert_buffer 预期范围之外,导致内存损坏和安全问题。

潜在安全隐患

由于 g_cert_buffer 仅定义了 512 个字节,这种越界写入可能覆盖其他全局变量、堆栈或其他内存数据,导致内存损坏或潜在的安全漏洞,如允许攻击者利用此行为执行恶意代码。越界写入可能导致敏感数据的篡改、程序崩溃,或更严重的漏洞,如攻击者利用漏洞实现远程执行任意代码。

         

 

3. 漏洞触发条件:攻击者需要伪造 TPMS 传感器,并通过 BLE 广播消息与 VCSEC ECU 建立连接,然后发送精心构造的证书数据触发漏洞。利用过程如下:
         

 

3.1  TPMS 传感器自动学习机制:特斯拉车辆支持 TPMS 传感器自动学习功能,用于识别和添加新的传感器。
         

 

         

 

3.2  伪造 TPMS 传感器:攻击者可以使用 ESP32 开发板伪造 TPMS 传感器,并模拟 BLE 广播消息。如图展示了如何在 Tesla Model 3 中利用 TPMS(轮胎压力监测系统)漏洞进行攻击的流程和概念验证。
         

 


描述

车辆启动和 TPMS 激活

当车辆开始行驶时,TPMS 被唤醒并开始监控轮胎压力,以确保驾驶安全。

TPMS 开始广播

激活后,TPMS 传感器通过无线信号广播其状态信息,与车辆的控制单元进行通信。

攻击者的初步干预

攻击者使用类似 ESP32 的设备连接到 TPMS,阻止 VCSEC(车辆控制安全单元)与合法的 TPMS 建立通信。

VCSEC 无法连接到 TPMS

由于攻击者的干预,VCSEC 无法与合法 TPMS 连接,图中“raced by ESP32”表示攻击者通过抢先连接扰乱了正常通信。

系统超时并启动自动学习模式

在约 90 秒尝试连接失败后,系统会注销当前 TPMS 并启动“自动学习模式”以寻找新的设备配对。

攻击者广播伪造的 TPMS 信号

攻击者的设备开始冒充新的 TPMS,通过广播伪造信号欺骗 VCSEC 建立连接。

VCSEC 连接伪造的 TPMS 并触发漏洞

最终,VCSEC 连接到伪造的 TPMS,并将其注册,从而允许攻击者注入恶意数据,进行 RCE 攻击,获取对车辆控制系统的访问权限。

         

 

关键技术点:
         

 

  • 攻击者需要利用 BLE(低功耗蓝牙)设备,如 ESP32,来实现 TPMS 信号的伪造和广播。
         

 

  • 在车辆启动自动学习模式时,攻击者通过伪造的新 TPMS 设备获得 VCSEC 的连接,绕过了 UDS 配置的限制,从而利用漏洞进行攻击。
         

 

3.3  控制程序流程:攻击者通过发送精心构造的证书数据触发整数溢出漏洞,控制程序流程,最终执行任意代码。如图解释了攻击者如何利用特斯拉 Model 3 的轮胎压力监测系统(TPMS)在车辆控制安全控制单元(VCSEC)中实施远程代码执行(RCE)。
         

 

         

 

描述

1. 初始通信

VCSEC  TPMS 发送 updaterCommand:VCSEC 向 TPMS 发送更新命令以请求响应,这是设备间的正常通信流程,用于确认 TPMS 的状态和数据。


TPMS 返回 updaterResponse (Type 5):TPMS 发回的响应被标记为 Type 5,表示此过程中可能涉及触发漏洞的潜在行为。

2. 触发漏洞的步骤

证书读取 (certificateRead):VCSEC 发出指令请求读取 TPMS 的证书信息,以验证设备的合法性。


漏洞利用:TPMS 返回包含证书信息的 certificateResponse,攻击者通过此响应中的漏洞进入下一阶段,使 VCSEC 在处理数据时出现问题。

3. 攻击者控制

劫持 VCSEC:在接收恶意的 certificateResponse 后,VCSEC 被攻击者模拟的信号劫持,导致其运行非安全代码。


攻击者使用 ESP32 模拟 TPMS:攻击者通过配置为 TPMS 模拟器的 ESP32 模块发送精心制作的恶意信号,从而实现对车辆内部系统的远程代码执行与控制。

         

 

3.4  发送 CAN 消息:攻击者可以利用漏洞发送 CAN 消息,控制车辆行为,例如解锁车门、启动引擎、刹车等。
         

 

         

 

漏洞出现在VCSEC所使用的多个通信接口中。TPMS传感器和智能手机均通过蓝牙低功耗(BLE)与ECU通信,这为潜在入侵提供了攻击面。此外,智能手机还可以使用超宽带(UWB)接口来增强与车辆的通信。研究人员能够利用无线TPMS系统突破防盗ECU,展示了现代车辆复杂而相互连接的特性。
         

 

这项研究是2024年1月举办的知名Pwn2Own黑客大赛的一部分,该比赛旨在发现并向制造商负责任地披露各种技术的漏洞。尽管Synacktiv的完整研究尚未公开,但他们已提供了关于这些漏洞如何发生及其对车主和制造商潜在影响的见解。当下特斯拉已经发布了修复该漏洞的固件更新,并建议用户及时更新。
         

 

         

 



#02
胎压监测系统(TPMS)漏洞:这意味着什么?  
 

 

          

 

特斯拉汽车中的胎压监测系统(TPMS)在驾驶安全中发挥着至关重要的作用,它能够持续监测胎压并提醒驾驶员任何异常情况。令人担忧的是,这一看似无害的TPMS——现代汽车中常见的功能——竟然可以被利用来实现恶意目的。在这种情况下,黑客可以利用TPMS的无线通信作为攻击其他关键车辆系统的入口,最终控制防盗系统及其他核心功能。
         

 

         

 

特斯拉Model 3高度依赖复杂的电子控制单元(ECU)来管理其系统,由于其互联特性,攻击面更为广泛。研究表明,攻击者可能远程解锁和控制车辆的重要功能。尽管尚未出现此类恶意事件的报告,这一发现提醒我们,无论组件初看起来多么普通,都应确保联网汽车中所有部件的安全性。
         

 

         

 


#03
保障联网汽车安全的重要性
     

 

随着电动汽车(EV)和自动驾驶技术的兴起,汽车正日益成为“车轮上的计算机”。因此,它们面临着日益增加的网络安全威胁。尽管便利性和创新是这场技术革命的核心,但它也带来了保护不断扩大的攻击面这一固有挑战。
         

 

Berard和Imbert在特斯拉Model 3中发现的TPMS漏洞引起了人们对全面审查联网汽车各系统重要性的关注,即便是TPMS这样看似与网络安全无关的系统。联网汽车通过蓝牙低功耗(BLE)、超宽带(UWB)和Wi-Fi等多种无线接口进行通信,这为黑客提供了利用薄弱环节的机会。保护这些通信渠道对于防止远程代码执行和维持对防盗系统等关键功能的控制至关重要。
         

 

   
         

 

特斯拉在应对已发现漏洞方面有着良好的记录,采取了包括远程空中(OTA)软件更新在内的主动措施来解决问题。然而,如今的TPMS漏洞,特斯拉及其他汽车制造商面临的挑战是如何始终领先于不断寻求突破车辆系统的新方法的黑客。
         

 

  
       

 

#04
展望未来:前行之路
  
正如Berard、Imbert和相关研究机构展示的那样,联网汽车在技术上代表了一次巨大的飞跃,同时也带来了重大的网络安全挑战。汽车制造商必须确保安全性融入到车辆系统的每一层,从外部通信协议到TPMS等内部组件。
         

 

对于以尖端创新而闻名的特斯拉来说,这些漏洞提醒人们,安全性必须与技术同步发展。通过解决这些问题,特斯拉及其他汽车制造商可以继续与客户建立信任,同时保护他们免受潜在危害。
         

 

随着汽车行业数字化转型的持续推进,联网汽车的安全性将始终是重中之重。Berard和Imbert分享的研究敲响了警钟,提醒汽车制造商加大网络安全工作的力度。同时,诸如这样的研究人员将继续推动汽车安全领域的发展,确保漏洞在被恶意行为者利用之前被发现并修复。
         

 

         

 

参考:    
         

 

 

 

  1. Breach in Tesla Model 3's TPMS Unveils Serious Security Flaw - Cybellum
  2. Hexacon on X: "Our very own @_p0ly_ and @masthoon are now presenting: 0-click RCE on Tesla Model 3 through TPMS Sensors #HEXACON2024 https://t.co/8p9VzPmKR1" / X    
  3. Hexacon on X: ""0-click RCE on Tesla Model 3 through TPMS Sensors" 🚗 by David BERARD (@_p0ly_) & Thomas Imbert (@masthoon) https://t.co/Er4fv2Qxoo" / X
  4. (5) Post | LinkedIn
         

 




/ END /


     

汽车电子与软件
每天分享一篇技术文章!
 最新文章