您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [Black hat]:自动驾驶域控制 - 发现报告

自动驾驶域控制

2024-05-16 - Black hat 郭生根
报告封面

来自百度安全实验室的高树鹏 , 曾英涛 , 胡一美 , 高洁 传统汽车 当前汽车 未来汽车 宝马 3 系电子系统的演变 我们以前对 IVI 的研究 我们以前对 T - Box 的研究 我们以前对 4G 模块的研究 关于自动驾驶域控制器 为什么研究 ADAS ? •智能车辆可能是公众可访问的最复杂和最先进的物联网设备。 •相比过去,智能汽车集成了多种新技术,包括新的架构、通信接口、处理器和操作系统。目前,对这些技术的安全性关注不足。 ADAS , 相对较差。设计不当可能会带来远程车辆控制的风险。 •与 IVI 和 T - Box 设备相比 , 这是一个新的研究领域。 ••员和汽车制造商安全团队的一个新的研究方向。 最终目标 : 增强 ADAS 设备的安全性。 为什么研究 ADAS - 高复杂性 NIO Center 计算群集 系统: 4x Linux 1x Android (QNX VM) SoC : 4x Nvidia Orin - X 1x Qualcomm SA8155 MCU : 2x TC399 1x TC397 4x EMMC 5x UFS 超过 1000 + TOPS @ int8 (RTX4090 660 TOPS @ int8) 为什么研究 ADAS - 高复杂性 为什么要研究 ADAS - 新架构 - 以太网连接 为什么要研究 ADAS - 新架构 - 以太网连接 为什么要研究 ADAS - 可控车辆 ADAS 已连接到 动力总成 CAN 和底盘 CAN 。 超过 30 + ADAS 设备 ADAS 控制器的开发流程 — — FPGA Mobileye Q4M / H 1.1 ~ 2 TOPS 低速自动驾驶域控制器 TI TDA4VM 8 TOPS Mobieye 4H 2 TOPS 地平线 J3 1x J3 和 1xTDA4 VM 2x TDA4 虚拟机 TI TDA4 VH Nvidia Xavier Nvidia Orin - X 4 倍 Orin - X 1016 TOPS Nvidia Orin - N 84 TOPS Orin - X VS Orin - N 相同接口 2x Mobileye 5H 2x 高通 SA8650 ADAS 内部结构 : ADAS 内部结构 : •••••内存: DDR存储: UFS, EMMC, NorFlash网络 : 板载以太网芯片SoC : 包括 ARM CPU 和 AI NPU ,运行操作系统 , 执行 AI 推理MCU:自动驾驶决策、CAN传输与接收、故障监测与降级、电源管理、超声波雷达算法、AEB决策等。 ••••Serializer / Deserializer : 摄像机数据输入, 输出视频信号(例如 , 停车 360 视图)到 IVI电源管理芯片 , CAN 收发器芯片。各种接口: 电源、以太网、 CAN 等。其他:GNSS GPS 芯片、 IMU 芯片 如何研究 ADAS - 作为物联网设备进行分析 熟悉结构 , 找到入口点 , 完成攻击。 远程代码执行(RCE) 可能无法实现 , 但信息泄漏等风险也很重要。 操作系统: 访问文件系统,例如通过固件提取或固件下载获得访问权限。获得shell访问权限,例如通过调试端口。 接口分析: 评估接口 : UART 、以太网端口、 JTAG 、 DAP 等。 分析 CAN 信号、 CAN FD 、车辆以太网。 如何研究 - 获取设备 如何研究 - 获取设备 如何研究 - 通电和点火 阅读 EMMC / UFS 存储 读取 EMMC 存储 使用 UFS 程序员转储 / 写入 EMMC 内置闪存控制器。允许直接编辑和删除。例如,修改 /etc/shadow 文件。 UFS 目前缺乏有效的文件管理方法。类似于 dd 。 当前使用的 UFS 程序员 :•完成转储 , 写入(高达 300MB / s) 。•支持指定的偏移量。 使用 UFS 程序员转储 / 写入 - 新工具 分区表详细信息 有 GPT 具有 GPT 分区表 , 允许直接读取分区和文件 : • EXT4 : Horizon , TI • QNX :Mobileye , TI , Qualcomm Nvidia 设备缺少标准分区表 : • EXT4 (Orin) • QNX (Xavier) QNX6: 挂载只读, 不能写 有分区表 无分区表 如果没有分区表 , 需要重建 •该工具仅支持搜索 EXT3 EXT4 、 FAT 和其他文件系统。•QNX 需要手动分区。 Binwalk - R '\ xeb\ x10\ x90\ x00\ x00' start _ offset = 0x3EF500000 end _ offset = 0x543280000 count = $(((end _offset - start _ offset) / 0x100000)) ddif = part3. dd of = new _ part3. bin bs= 1024 skip = $((0x80000 / 1024)) Nvidia QNX / Android IVI QNX 然后使用工具 , 如 qnxmount 敏感文件:•/ etc / shadow 用于破解密码 •加密密钥(磁盘加密、文件加密、 OTA)•MQTT 私钥、密码•OTA 升级包•模型文件•MCU 固件•…. 使用的框架和技术 初创企业的过程,在此过程中可以通过逆向工程发现监听端口进程中的漏洞。 如何 Getshell 一半的设备已启用 SSH :•默认凭据 : nvidia / nvidia•使用 Hashcat 的蛮力•写一个新的 / etc / shadow # BHASIA @ BlackHatEvents 密码验证机制 :•密码破解算法 串口登录 侦听过程中的漏洞分析和利用 如何 Getshell - 修改 UFS 修改 EMMC 存储非常常见。 现在我们 : 1. 将所有UFS 转储为. img •••0xd65f03c0 是 ret 指令绕过ChangePasswd () 函数修改阴影文件 3. 将. img 文件写回 UFS 如何 Getshell - UART 接口 获得网络访问 •••所有车载设备使用车载以太网使用双芯电缆支持 100M / 1000M 获得网络访问 -- 如何使用车载以太网适配器 •••自动协商功能。此外 , 100M 按电缆顺序区分。建议使用适配器车载以太网分为 100M / 1000M和主 / 从四种组合。 如何获得 IP 在混杂模式下捕获数据包以确定 SOC IP 地址 : •••VLANs 普遍存在。大多数设备不使用 ARP,而是需要绑定MAC 地址。有时,根据 UDP的目标 IP 和 MAC 地址设置本地 IP 和 MAC 地址是必要的。一些设备使用 IPv6 地址。 接口风险 主板通常有许多接口 ,尤其是 UART 和 JTAG。 一些汽车制造商不仅有许多调试接口 , 而且清楚地给他们贴上标签. 调试和固件刷新通常需要这些接口。因此 ,保护是必要的。 特殊接口:Flash、HDMI、DP、DAP、以太网、Recovery 其他相关外设研究 — — CAN 捕获唤醒 CAN 信号 每个控制器有多个 CAN 通道。一个支持唤醒功能 , 如 TJA1043 。 CAN接口引脚可以根据CAN收发器的引脚排列来确定。某些ADAS系统需要通过CAN信号进行唤醒操作,既可以是任意的CAN信号,也可以是特定的ID和数据位。 其他相关外设研究 — — 激光雷达 •汽车级激光雷达•使用以太网•汽车制造商添加了 20 字节的一些 / IP 命令•逆向工程汽车制造商的驱动程序 , 使激光雷达黑客和使用。 其他相关外设的研究 — — 串行器 / 解串器 在汽车领域,图像传输不使用HDMI或DisplayPort,而是使用LVDS进行数据传输和供电。 通过计算微小的电压变化进行数据传输。技术: FPD - Link 和 GMSL 在安全领域:我们可以通过进行摄像头仿真注入并在通常较为昂贵的显示屏幕上节省成本。 风险 # BHASIA @ BlackHatEvents TI / Nvidia / Horizon / Mobieye 模型文件 模型配置, 原始模型 方便的模型调用、训练和微调 在车辆上部署 AI 模型 需要保护 作为安全研究人员,您现在可以超越仅使用YOLO进行模型对抗研究(GAN)和论文写作的阶段,因为您可以访问真实模型. 模型文件的安全性分析 •模型结构非常重要 , 因为它构成了良好结果的基础。•. onnx. pt 是原始型号 FP32 , 便于训练和调整。 •. hbm. trt. en gine. bin 是量化模型 INT8 , 适用于低计算能力的设备上的推理。 结论:• 不要在车辆中部署 / 存储. onnx 模型 , 这是危险的。 ••像. trt 这样的量化模型可以直接用于推理。模型结构分析也是可能的。 模型文件的分析与重建 +0 前4字为文件魔数,ptrt,ftrt +8 序列化版本号,0xd5,0xcd,0xe8 +0x10 模型数据大小 +0x18 序列化数据,TRT 定义了多个标签,通过硬编码解码 模型文件的分析与重建 与原始模型相比 , 结构相似 , 一些层进行了合并和优化。使用 TensorRT 编译 LeNet 模型 , 并用我们的脚本解析它。 解析获取的模型。多个任务和输出形状。 模型文件的分析与重建 model. hbm: 逆向工程 hxxx - disas 和 hxxx - sim 流程。 第一行: 幻数; 'X2A' 表示以下模型指令是针对 X2A 的。其他 指令,如X2、B25等•X2 BERNOULLI2•X2 BERNOULLI•B25 BAYES。偏移表从0xB8开始,每个模型有一个条目,每个条目占用8字节。 detection _ segment _ 0 包含指令信息。使用 Frida 进行逆向工程。 从 0x472E0 开始 , 每条指令为 8 个字节 , 例如一些卷积运算 , 在 BPU 中加速。 Demo:利用汽车级 AI 识别模型的玩具车 一辆 50 美元的微型车 ,带有 NPU 。 我们从 ADAS 控制器中提取了一组模型 把它们部署在微型车上。 关于 TC3XX MCU TriCore TC3xx 或 RH850 几乎所有控制器都包含 TC397 和 TC399 。在 ADAS、网关、 T - Box 、 IVI 、 VCU 和其他控制器中 Why?•支持 ASIL - D 安全要求。因此它可以发送 CAN 信 号。 •Lockstep 内核 , 用于指令和数据的 ECC 保护。• : 在 ADAS以太网、 FlexRay 、 CAN - FD 、 LIN 、 SPI 。 CAN / FlexRay线控转向 电源管理 故障诊断 超声波雷达 CAN 收发器 - 许多系统包含 MCU 固件文件 , 甚至带有. elf 符号文件。吉德拉可以执行反向分析 ! - MCU 固件是可读的! 只有少数汽车制造商设置了读保护,通常仅保护少量数据块。- 每个ADAS电路板都具有DAP读取引脚。- 我们专门设计了一款核心板读取器,可以移除MCU、进行焊点处理,并执行固件读取、调试和信号分析。 TC397 固件的逆向工程 ••GHIDRA 可以分析 TriCore 十六进制固件。主要通过分析 MCU 固件来更好地理解 CAN 控制逻辑,因为 SoC 无法直接发送 CAN。 •识别 MCU