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

2024-08-31 02:36

本文主要是介绍汽车信息安全--MCU Flash读保护真的没有后门吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

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接口就可以做到保护;但是对于攻击者来说,只要肯花功夫掌握一些芯片内部知识,任何对外暴露的接口都可以作为攻击点。

这篇关于汽车信息安全--MCU Flash读保护真的没有后门吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122645

相关文章

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

为什么现在很多人愿意选择做债务重组?债重组真的就这么好吗?

债务重组,起初作为面向优质企业客户的定制化大额融资策略,以其高效周期著称,一个月便显成效。然而,随着时代的车轮滚滚向前,它已悄然转变为负债累累、深陷网贷泥潭者的救赎之道。在此路径下,个人可先借助专业机构暂代月供,经一段时间养护征信之后,转向银行获取低成本贷款,用以替换高昂网贷,实现利息减负与成本优化的双重目标。 尽管债务重组的代价不菲,远超传统贷款成本,但其吸引力依旧强劲,背后逻辑深刻。其一

如何保护自己的个人隐私

个人隐私保护概览 在数字时代,个人隐私保护显得尤为重要。随着信息技术的发展,个人信息的收集、存储、使用变得更加便捷,同时也带来了隐私泄露的风险。为了保护个人隐私,我们需要从多个维度出发,采取一系列措施来确保个人信息的安全。 个人隐私泄露风险 个人隐私泄露主要来源于以下几个方面: 社交网络:在社交平台上分享信息时,如果不恰当地设置了隐私权限,可能会导致敏感信息被公开。网络服务:在使用网络服务

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

【电子通识】半导体工艺——保护晶圆表面的氧化工艺

在文章【电子通识】半导体工艺——晶圆制造中我们讲到晶圆的一些基础术语和晶圆制造主要步骤:制造锭(Ingot)、锭切割(Wafer Slicing)、晶圆表面抛光(Lapping&Polishing)。         那么其实当晶圆暴露在大气中或化学物质中的氧气时就会形成氧化膜。这与铁(Fe)暴露在大气时会氧化生锈是一样的道理。 氧化膜的作用         在半导体晶圆