特斯拉车载信息娱乐系统越狱“教程”

谈思汽车 2023-08-26 10:41

 智能汽车安全新媒体 


0 背景

2023年的blackhat会议如期而至,其中题目为《Jailbreaking an Electric Vehicle in 2023 or What It Means to Hotwire Tesla's x86-Based Seat Heater》的汇报,作者讲解了AMD 安全处理器 (ASP)的安全启动过程,并采用电压故障注入的手段跳过了安全启动,获得了特斯拉车载信息娱乐系统的root权限,有了root权限后,作者进一步研究了TPM(Trusted Platform Module)对象密封和解封的过程,最终从NVMe 存储获得了私人用户数据。

🤔️ 整个过程分为两个阶段,第一阶段为电压故障注入破坏安全启动,获得root权限;第二阶段为破解TPM硬件安全组件信任链获得敏感数据。让我想起了之前学习过的blackhat2022的议题《Glitched on Earth by Humans: A Black-Box Security Evaluation of the SpaceX Starlink User Terminal (2022.08)》方法相同,不过该议题的目标是个ARM。正好借着今年的议题,学习下AMD的安全启动和跳过。笔者是一枚安全小白,以漏洞复现的角度整理了学习笔记,如有错误之处,欢迎业界大佬联系指正。



1 电压故障注入破坏安全启动,获得root权限


💡 第一阶段分三步,第一步,板级分析找到flash读取车载信息娱乐系统的固件(此固件中包含内核、文件系统等等),patch后烧写回flash。第二步,分析安全启动流程。第三步,电压故障注入跳过安全启动的验证。


1.1 patch固件,添加ssh


从设备flash上将原始固件提取出来,patch后烧写回flash。由于安全启动的存在,更改后的恶意固件无法通过启动校验。因此还需要在启动过程进行patch和物理攻击等手段,跳过固件校验的代码逻辑,才能获得设备的root shell。


🤔️ 这之中有三个问题,一是patch哪些部分、如何patch,二是故障注入该打哪,三是AMD zen1的安全启动流程还是未知的。

💡 patch的思路和打手机root的方法一样,就是在安全启动全过程逐级patch。
💡 故障注入应该是要跳过启动最开始的阶段,也就是烧写在efuse中的根密钥去校验下一步的过程。
💡 AMD zen1的安全启动可以去官网去找找,印象中UEFI级别的启动代码有可能是开源的。


1.2 AMD zen1的安全启动流程以及逐级patch思路


作者在ppt的第23页已经给出了安全启动的流程以及固件存储的位置,想要获得root权限,方法包括在启动时生成串行Shell、将SSH密钥添加到authorized_keys文件中以实现SSH访问、添加已知的SSH密码等。这些方法都需要对根文件系统进行更改,以便在启动时获得根Shell访问权限。




于是需要patch Linux Kernel固件。dm-verity之前在root安卓的资料中有见到过,在此系统的学习下。

攻击者可以通过查找并替换特定字符串来欺骗系统,例如将“restart_on”替换为“ignore”,以及将“%1$llinear %35s#%11$s%U %lu”替换为“%lu0 %lu verity %u%s”。通过改变这些参数,攻击者能够迫使系统执行非法或未经授权的操作。


于是此时状态是RootFS可以通过Linux Kernel 的校验。



Linux Kernel 被patch后,OS Loader的校验会失败,所以需要patch Tesla OS Loader的固件。


通过反编译软件,字符串搜索“verify image”字符串,定位到关键函数,然后用反编译软件更改跳转汇编指令,并跳过一些if分支。




于是此时状态Linux Kernel 通过了Tesla OS Loader的校验。但是coreboot对Tesla OS Loader校验会失败。




🤔️ 接下来更改coreboot固件 ,Coreboot如何验证Tesla OS Loader?

Coreboot是一种用于替换传统固件(如BIOS或UEFI)的开源项目。可以参照源码去逆向。

官方网站:https://www.coreboot.org 

Github源代码仓库:  https://github.com/coreboot/coreboot 

文档网站: https://doc.coreboot.org

它的目的是初始化硬件并加载一个有效的操作系统引导程序。下面是Coreboot如何验证操作系统引导加载程序(loader)的一般过程:

初始化硬件:Coreboot首先初始化处理器、内存、外设等硬件组件。

验证阶段:在引导过程的某个阶段,Coreboot可能会使用某种机制来验证要加载的操作系统引导程序的完整性和身份。这可能涉及以下几个步骤:

  • 使用公钥加密:Coreboot可能会存储或访问一个受信任的公钥,该公钥用于验证引导加载程序的签名。

  • 计算哈希:对引导加载程序文件计算哈希,并将结果与预先存储的已知良好哈希进行比较。

  • 使用受信任的计算平台(TPM):如果系统装有TPM芯片,Coreboot可以使用它来确保引导过程的完整性和可信度。


💡 由于Coreboot是开源实现,它为arm zen1安全启动提供底层固件支持,但真正的安全验证由AMD Secure Processor完成。所以patch Coreboot的思路就是安全验证恒通过。(待后续研究)


1.3 AMD安全处理器(AMD Secure Processor)

AMD Secure Processor使用ARMv7微控制器架构,是一个高权限级别的安全微控制器,内置在AMD CPU芯片中,负责诸如硬件根信任建立、固件TPM(遵照TPM2.0规范),密钥管理等安全关键任务,是AMD平台安全功能的基石。在EPYC服务器产品上,还可以提供基于硬件的安全加密虚拟化。

它的启动流程如下:

图片来源:Implementing an emulator for AMD’s Platform Security Processor ,December 9, 2020


在2013年时,AMD发布的安全处理器叫做PSP,是基于arm TrustZone的架构。


图片来源:AMD Security and Server innovation,2013




作者在接下来的分享中,也介绍了ASP的启动包括片上的root key去验证片下的Boot Loader。



由于片上的root key无法获得,所以可以采用故障攻击的手段,使ARK hash比较的过程中出现判断错误,从而使得片下的Boot Loader验证通过。



💡 总结整个启动流程:1、arm zen1芯片在安全启动过程中,先由硬件自身的可信代码进行初始化,建立硬件根信任Root Key。2、由Root Key校验片下Boot Loader。3、然后将控制权交给Coreboot开源固件。Coreboot完成后续系统初始化,并加载操作系统启动LOADER,OS loader的安全校验交给AMD平台安全处理器ASP。4、完成验证后,再将控制权交还给已验证的操作系统LOADER,进行后续内核和文件系统的启动和逐级校验。5、通过这种链式验证模式,实现从硬件根信任到操作系统的完整安全启动过程。


1.4 电压故障攻击


完整过程[参考]

https://github.com/PSPReverse/amd-sp-glitch/blob/main/attack-code/README.md


1.4.1 电压故障攻击的环境搭建


使用Teensy进行电压故障注入攻击的搭建方法:


1. Teensy通过SVI2接口向目标注入数据包读写VR寄存器,来调整电压。

2. Teensy通过ATX复位线重置目标设备。

3. Teensy监控SPI总线的片选flash信号,用作电压故障的触发。

4. 外部PC控制故障的参数。




1.4.2 故障参数的调整


  • 毛刺的深度:指在电压毛刺上升/下降期间出现的尖峰电压,一般来说,深度越大,毛刺电压对设备的影响就越大。

  • 毛刺的持续时间:指毛刺电压出现的持续时间,持续时间越长,毛刺电压对设备的影响就越大。

  • 攻击时刻:目标设备ARK校验的时间


1.4.3 利用侧信道协助确定故障时间窗口


示波器采集观察连接线上的信号,确定ARK校验的时间窗口。


侧信道分析(SCA)是一种通过分析硬件设备运行时的物理信息(例如,电源消耗、电磁辐射等)来获取系统内部结构或操作的方法。这种分析在汽车安全中尤为重要,特别是在确保通信线路的完整性和可靠性方面。


🤔️ 确定故障时间窗口是一项复杂的任务,涉及以下几个步骤:

1. 数据收集:利用示波器收集所需信号和相关信息。

2. 初步分析:观察和分析信号,找到可能的异常点。

3. 故障时间窗口定位:结合SPI CS信号和供电电源观察,精确确定故障发生的时间窗口。

4. 进一步诊断:通过深入分析故障时间窗口中的信号特征,识别潜在的问题和根本原因。


1.4.4 攻击验证脚本的编写


见《越狱特斯拉车载信息娱乐系统(下)》(肝不动了)

完整过程[参考]

https://github.com/PSPReverse/amd-sp-glitch/blob/main/attack-code/README.md


-  THE END  -

因文章部分文字及图片涉及到引用,如有侵权,请及时联系17316577586,我们将删除内容以保证您的权益。

谈思汽车 智能汽车安全新媒体
评论
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 14浏览
  • 智能汽车可替换LED前照灯控制运行的原理涉及多个方面,包括自适应前照灯系统(AFS)的工作原理、传感器的应用、步进电机的控制以及模糊控制策略等。当下时代的智能汽车灯光控制系统通过车载网关控制单元集中控制,表现特殊点的有特斯拉,仅通过前车身控制器,整个系统就包括了灯光旋转开关、车灯变光开关、左LED前照灯总成、右LED前照灯总成、转向柱电子控制单元、CAN数据总线接口、组合仪表控制单元、车载网关控制单元等器件。变光开关、转向开关和辅助操作系统一般连为一体,开关之间通过内部线束和转向柱装置连接为多,
    lauguo2013 2024-12-10 15:53 67浏览
  • 我的一台很多年前人家不要了的九十年代SONY台式组合音响,接手时只有CD功能不行了,因为不需要,也就没修,只使用收音机、磁带机和外接信号功能就够了。最近五年在外地,就断电闲置,没使用了。今年9月回到家里,就一个劲儿地忙着收拾家当,忙了一个多月,太多事啦!修了电气,清理了闲置不用了的电器和电子,就是一个劲儿地扔扔扔!几十年的“工匠式”收留收藏,只能断舍离,拆解不过来的了。一天,忽然感觉室内有股臭味,用鼻子的嗅觉功能朝着臭味重的方向寻找,觉得应该就是这台组合音响?怎么会呢?这无机物的东西不会腐臭吧?
    自做自受 2024-12-10 16:34 133浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-10 16:13 93浏览
  • 【萤火工场CEM5826-M11测评】OLED显示雷达数据本文结合之前关于串口打印雷达监测数据的研究,进一步扩展至 OLED 屏幕显示。该项目整体分为两部分: 一、框架显示; 二、数据采集与填充显示。为了减小 MCU 负担,采用 局部刷新 的方案。1. 显示框架所需库函数 Wire.h 、Adafruit_GFX.h 、Adafruit_SSD1306.h . 代码#include #include #include #include "logo_128x64.h"#include "logo_
    无垠的广袤 2024-12-10 14:03 68浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 17浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 15浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 19浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 18浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 81浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦