汽车信息安全--MCU Flash读保护真的没有后门吗?

news2024/11/15 8:35:41

目录

1.修bug修出的灵感

2.串行编程接口协议

3.毛刺攻击

4.RH850 串行编程模式

 5.小结


1.修bug修出的灵感

ECU量产后通过密码控制来防止通过Debug口读取Flash的程序和数据。

这是应该是共识了,但是这样做真的就万无一失了吗?

最近解决了个问题:连接调试器后如果memory窗口是非法地址,则Flash无法正常编程。

在逻辑分析仪的帮助下发现调试器会周期基于某调试协议(例如SWD\JTAG等等)与芯片进行通信,如下图所示:

既如此,只要了解到芯片厂自带编程上位机与芯片的通讯协议,就可以探探通过密码ID来控制调试接口的方式是否真的没有后门。

前篇文章《汽车信息安全--攻破SecOC,就在今天!-CSDN博客》提到攻破SecOC的前提是先要提取ECU固件代码并审计。

因此我们基于此来看看如何提取固件代码。

2.串行编程接口协议

芯片为RH850 P1M-E,在调试接口必须授权访问的情况下,我们考虑该芯片的另外一种运行模式:

它针对Flash的串行编程(Serial Programming mode)有两种推荐环境,如下:

E1大家很熟悉了,用RH850的都逃不开它,主要用来调试,这里也可以在串行编程模式下当做刷写器用;PG-FP5则可实现对该系列MCU Flash的擦除、编程和验证。

在物理硬件上我们可以看到连接方式包括单线串口、两线串口、CSI接口,如下图:

首先用PG连接受保护ECU,发现进入串行编程模式确实被禁用了,如下图:

这个Command和Response就和之前碰到问题很像了,那这些指令到底是什么意思呢?

RH850没有找到相关资料,但是在RA System Specifications for Standard Boot Firmware找到了一些端倪。例如,使用Flash Programmer读取过程如下:

对应的命令帧格式如表所示:

SOH表示帧起始数据,紧接着两个byte为实际数据长度,第4byte为命令,SAD4byte为首地址、EAD为终止地址,紧接着就是校验和,最后一个byte为帧结束数据,固定0x03。

MCU端响应帧格式如下:

结合上面实际连接受保护ECU的错误响应和文档对比,DC确实为串行编程使能

这就是说瑞萨针对这块的功能复用程度是比较高的。既如此,反正命令只有一个byte,找个P1M-E的芯片挨个试一下,总能找到端倪。

于是乎,我们就可以看到如下波形:

掌握到命令及状态码后,我们接下来就要看看,到底MCU是在什么返回禁止连接的错误码?在RX651手册里,找到了PC和MCU建立连接的流程图:

 

第a-d步,是正常指令阶段,但是在e步等待同步指令时,我们发现了在这个位置是有权决定返回“Connection of serial programmers is prohibited"。

那有没办法影响MCU跳过这步,直接进入(3)?那是肯定的,使用电压\时钟毛刺攻击。

3.毛刺攻击

所谓电压毛刺攻击,是故障注入的一类,它的作用就是绕乱CPU的运行,让CPU到正常范围外取指。

举个例子,在这样一段代码里,理论上是不会通过串口打印出字符的,

void test(void)
{
    uint8 a=1;
    gpio_tiggerlow();
    while(a!=3);
    printf("you can hack me ")
}

但是通过电压\时钟让CPU超频、超温等,就有可能导致CPU运行乱序(想想我们电脑过热蓝屏)。

因此,如果能通过电压毛刺跳入上述流程图正确分支,那么连接这一步就成功了。

那么我们在同步命令的帧结尾注入毛刺,实现了连接,如下:

4.RH850 串行编程模式

P1M-E 要进入串行编程模式,就必须要将FLMD0拉高,如下图:

以两线串口为例,用E1或者PG-FP5通过FPDR、FPDT就可实现与芯片的通信,既然都是串口了,协议也已经解析出来,因此只需要拉高FLMD0,连接JP0_0\0_1,模拟下发指令,数据是否就可以读出来。

 5.小结

上述这个例子,就是2021年某日系车EPS被攻破的全过程,从固件提取再到SecOC密钥提取,可以明显发现OEM还是采用功能堆叠的方式来对待汽车信息安全。

信息安全急需引起重视,对这块理解传统汽车人很难做到全面,很多OEM天真以为只要开启芯片的读写保护就可高枕无忧,有些甚至认为只要不暴露Debug接口就可以做到保护;但是对于攻击者来说,只要肯花功夫掌握一些芯片内部知识,任何对外暴露的接口都可以作为攻击点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux操作系统在虚拟机VM上的安装【CentOS版本】

目录 准备工作 "CPU虚拟化"的方法 VMware的安装 Linux镜像文件的下载 开始安装 声明 新建虚拟机 安装CentOS7.6 配置Linux(CentOS7.6)操作系统 配置分区【学习者可以直接点击自动配置分区,不过还是建议学习一下手动分区】 分区原则 添加分区 …

适配制造业的设备管理系统有哪些?本文给你答案!

本文将带大家盘点10款设备管理系统,供企业选型参考。 外包单位数量众多,但难以对他们进行统一协同管理?危险作业的作业申请、作业审批使用线下纸质版,不仅效率低还管控力不足?相关部门想监测、管理设备安全风险&#x…

AcWing898. 数字三角形

线性DP 董晓老师的讲解是从下标0开始算的,其实我们从1开始也可以,我感觉这里从1开始更好理解。是从下往上计算的。j负责列的计算,往上计算时逐步收窄横向的范围,i是纵向的从下往上算, 下面是内存布局 下面是逻辑上的…

【网络安全】打开这份“开学礼” 谨防骗子“冲业绩”

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s…

今年读过最绝的一本书!《自然语言处理原理、方法与应用》,几乎把自然语言处理讲透了【附PDF】

书籍内容介绍: 本书系统阐述自然语言处理基础知识,以及自然语言处理高级模型应用等高级知识。 全书共11章:第1~5章为自然语言处理的基础知识,第6~11章将自然语言处理知识应用于实战。书中主要内容包括预训…

99% 的人都不知道,哪种 Python 循环最快?

大家好,在Python编程中,循环是我们经常使用的工具,用来重复执行一些代码块。我们通常会在 for 循环、while 循环和列表推导式中选择一种来解决问题。但你是否曾想过:哪种循环效率最高? 今天,我们就来一次轻…

Vue -- 总结 02

Vue脚手架 安装Vue脚手架: 在cmd中安装(输入):npm install -g vue/cli 如果下载慢或下载不了,可以安装(cmd输入)淘宝镜像:npm config set registry https://registry.npmmirror.com 用命令创建Vue项目 在要创建的vue项目的文件夹里输入 cmd 回车 创…

CSS 2D3D转换与动画

CSS 2D&3D转换与动画 字体图标 字体图标展示的是图标,本质是字体 处理简单的,颜色单一的图片,使用字体图标 使用: 下载:https://www.iconfont.cn/ 引入字体图标样式表 对应标签上classz增加对应的类名&…

使用pytest的 reporting特性来生成报告

特性 1.HTML 报告:使用 pytest-html 插件,你可以生成 HTML 格式的测试报告。只需在项目的 pytest.ini 文件中添加以下内容: [pytest] addopts --htmlreport.html然后,在运行 pytest 时,将会生成一个名为 report.htm…

Serilog文档翻译系列(二) - 设置AspNetCore应用程序

Serilog 日志记录适用于 ASP.NET Core。此包将 ASP.NET Core 的日志消息通过 Serilog 进行路由,使你可以将有关 ASP.NET 内部操作的信息写入与应用程序事件相同的 Serilog 接收器中。 安装并配置了 Serilog.AspNetCore 后,你可以直接通过 Serilog 或ASP…

CDS Association

CDS view Association 引入的缘由 CDS 视图不会被业务用户直接访问,而是会被 ABAP 程序、Fiori 应用程序或 BI 前端工具使用。假设在 5 个不同的表上使用 JOINS 创建了 CDS 视图,则每次触发此 CDS 视图时都会执行此 JOIN 条件。即使业务用户只查看 2 个…

十分钟弄懂最快的APP自动化工具uiautomator2

相信很多使用appium做过APP自动化的人都深有感触: appium运行慢、时间长uiautomatorviewer定位元素时得关掉appium server在低版本的appium上获取toast需要切换automationName 现在有一款自动化测试工具uiautomator2,它几乎完美的避免了以上的问题。简…

数据结构---循环队列---树的基本概念

目录 一、队列 1.1.队列 1.创建循环队列(顺序结构) 2.判断队满 3.判断队空 4.进队 5.出队 6.销毁 二、树 2.1.树的特点 2.2.基本概念 1.根节点 2.分支节点 3.叶节点 4.层 5.深度 6.高度 7.度 2.3.二叉树 1.特点 2.遍历方式 2.4.满二…

编程要由“手动挡”变“自动挡”了?Cursor+Claude-3.5-Sonnet,Karpathy大神点赞的AI代码神器!如何使用详细教程

Cursor情况简介 AI大神Andrej Karpathy都被震惊了!他最近在试用 VS Code Cursor Claude Sonnet 3.5,结果发现这玩意儿比GitHub Copilot还好用! Cursor在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使用Open…

在postman中使用javascript脚本生成sign签名

大多数线上api接口服务都需要提供签名才可以正常访问。虽然带来了安全,单有时为了快速验证接口的某个功能,就不得不编写代码,计算签名然后再请求。那么,使用postman提供的script功能,是否能实现签名计算功能吗&#xf…

HarmonyOS开发实战( Beta5版)滑动白块问题解决最佳实践

当应用程序需要使用列表显示内容时,通常会使用ListLazyForEach组件来实现。但是列表中需要显示耗时加载的内容时,仅依靠ListLazyForEach不足以获得最优的用户体验。例如显示在线网络图片,在弱网以及快速滑动浏览的场景下,由于来不…

哪种无线可视挖耳勺最实用?五大优良黑马机型测评

无线可视挖耳勺是热度特别高的个人清洁工具,不仅能够更加清晰地观察自己耳内的状况,从而更加安全、有效地清洁耳朵,可以发挥多种多样的作用,但也存在品牌繁杂的情况,其中还有一些不专业的产品。在市面上,我…

Win11 本地部署大模型 WebUI + ComfyUI

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 Web 用户界面(WebUI),它被设计用于完全离线操作。该项目最初被称为 Ollama WebUI,后来更名为 Open WebUI。Open WebUI 的主要目的是为本地的大语言模型(LLMs&…

一条执行24s的SQL产生7小时主备延时(案例详解)

前言 在之前的文章《一条执行24s的SQL竟产生7小时数据延时,数据库高可用做了个寂寞》中,我们描述了一个问题现象:一条在主库执行24秒的SQL语句,却导致了主从延时长达7小时。文章发布后,引发了小伙伴的热烈讨论&#x…

zabbix安装过程中仓库不可用问题解决

官网文档安装zabbix-server:Download and install Zabbix 安装zabbix-server过程中碰到如下报错: 导致原因是仓库url被qiang,创建如下仓库: 仓库文件: [centos-sclo-rh] nameCentOS-7 - SCLo rh baseurlhttps://mirr…