登录 | 注册 退出 我要上传 我要投稿

【功能安全】使用电磁故障注入开展汽车芯片安全测试

专栏作者 2024-04-22

内容提要:这项工作将着眼于一个典型的汽车产品示例,该示例面临安全关键设计失效的担忧。


摘要

电磁故障注入(EMFI)是一种众所周知的为数字设备安全分析引入故障的方法。此类故障可以被视为类似于已知在数字设备中自然发生的故障,这是设计安全关键系统的一个已知问题。

已经为安全关键系统制定了许多标准,包括制定使用粒子源提高自然发生故障率的标准。在这项工作中,我们证明了桌面EMFI工具可用于完成类似的测试,有效地加快了评估过程。

我们演示了使用EMFI工具进行安全评估,以重现汽车ECU中存在的广为人知的安全问题——使用其他技术无法轻松重现的安全问题。

1.引言

故障注入允许攻击者修改被测设备的操作。这些攻击可能包括允许绕过安全启动过程的简单控制流更改,以及允许恢复加密材料的差异故障分析攻击。

为了了解攻击者的能力,防御者通常会假设一些故障模型,该模型显示了攻击者的能力。这些可能很简单——例如假设攻击者能够“跳过指令”,或者更复杂——例如攻击者能够翻转单个或多个位。这可能包括将特定位作为控制流劫持或其他高级攻击的一部分。

这些故障是通过各种方法引入的——操纵外部时钟或电压供应是引入故障的一种简单方法,但也存在其他方法,包括通过闪光管或激光引起的光学故障,或电磁故障。

这些攻击者模型通常假设攻击者及时在特定实例触发故障。这种在特定时刻触发故障的能力,定义了具有特定安全含义的故障与可能由于计算机系统中的失效或错误,而自然发生的失效之间的差异。

计算机系统中的随机故障是一个众所周知的问题,历史上在需要更好的长期稳定性的系统中,使用诸如纠错码存储器之类的解决方案。凭借安全关键设计过程的悠久历史,我们可以探索安全关键系统使用的故障模型,以更好地了解安全和安全故障模型重叠的地方。

这项工作将着眼于一个典型的汽车产品示例,该示例面临安全关键设计失效的担忧。尽管付出了相当大的努力,但以前只能通过经典的安全关键型设计评估工具部分捕捉到这种失效。通过应用安全分析中常用的工具,我们将演示如何重现此失效。

这项工作的具体贡献是:

1)安全中的故障注入与汽车安全测试的联系

2)使用EMFI对SRAM进行静态损坏

3)使用EMFI重现安全关键漏洞

本文将首先在第2节中介绍安全关键系统中使用的标准,包括讨论以前如何在类似的以安全为重点的文章中报告这些标准。基于之前在功能安全和网络安全领域的工作,第3节将显示用于评估SRAM存储器是否损坏的常用指标的特定链接。然后,我们将在第4节中演示对生产ECU的“攻击”,以重现安全关键漏洞,然后在第5节中讨论结论和未来机会。

2.ISO 26262-11故障和失效模式

数字系统的安全关键设计在许多工业系统中是众所周知的。本文重点关注汽车系统,特别是ISO 26262系列标准,它是IEC 61508对汽车系统的改编。

ISO 26262包含几个部分。尤其令人感兴趣的是第11部分(“ISO 26262对半导体的应用指南”)、第5部分(“硬件级别的产品开发”)和第6部分(“软件级别的产品开发”)。

ISO 26262-11为各种类型的数字设备定义了示例故障和失效模式。其中三个与安全故障模型直接相似:“非存储器数字组件的故障模型(5.1.2)”、“存储器的详细故障模型(5.1.3)”和“数字组件的失效模式(5.1.4)”。本节其余部分中的以下信息在ISO 26262-11中进行了定义,但在此处重新创建以供快速参考。

表1.png

表1:ISO 26262-11故障模式

ISO 26262-11第5.1.2节定义了非存储器数字元件的瞬态故障,如表1所示。从这个定义中,我们可以看到,单事件瞬态(SET)会根据瞬态相互作用的结构导致各种类型的干扰。请注意,非存储器数字组件的此定义可能仍包括存储器,例如CPU中的寄存器,但稍后在ISO 26262-11第5.1.3节中,独立存储器设备(例如FLASH或SRAM存储器)涵盖了其他故障模式,例如作为“卡在0”的故障。

众所周知,SRAM等存储器中的瞬态故障遵循表1的一般格式。一个主要的补充是单事件闩锁(SEL)故障模型,通常通过持续到目标设备的恒定较高电流消耗,来检测电源循环。已经使用激光故障注入技术对不同设备进行了从“安全”角度进行的此类评估,包括对Kintex-7 FPGA等较新设备的工作。

这些安全标准中对故障模式和失效模式进行了区分。给定的故障可能导致表2中列出的失效模式(FM)之一。这些适用于执行某些给定功能的通用数字设备。此功能根据设备和所考虑的设备区域而变化。CPU可以具有执行指令的整体功能,但也可以具有特定功能,例如中断处理程序或内部存储器访问功能。使用表2中的失效模式的给定功能的失效,会给我们特定功能的失效。

例如,CPU将具有“根据给定指令集架构执行给定指令流”的功能。表2中的失效模式,可能会发生表3中的失效。

这些失效遵循通常在面向安全的故障注入中,发现的众所周知的指令故障模型。例如,典型的“指令跳过”故障模型包含在FM1中,但也可能是FM2和FM3的一部分。不正确的分支可以看作FM4,指令突变被FM2覆盖。

表2.png

表2:ISO 26262-11失效模式

表3.png

表3:应用于CPU指令流的失效模式

当为使用安全工具的开发人员比较工具和技术时,此映射特别有用。虽然安全故障注入具有特定的时间,这一事实意味着不能假定安全关键系统对有动机的攻击者具有鲁棒性,但这表明基本故障模型本身是一致的。我们现在将研究如何将通常针对安全分析的工具,用作安全关键失效模拟的一部分。

3.电磁故障注入

电磁故障注入(EMFI)的目标是最终将电压注入芯片本身的结构——这可能导致“软错误”故障(例如寄存器或SRAM中的位翻转)或读取中的临时错误电压电平(一个SET)。至少从1970年起,强场具有破坏数据(不会损坏设备)的能力这一事实就已为人所知。

虽然EMFI通常用于安全测试目的,但安全测试中的故障注入过程更普遍遵循JESD89A标准(针对“软错误”测试设备的参考),该标准使用α粒子源来加速软错误。由于这些alpha粒子源不容易安装在桌面上,因此使用标准EMFI工具来获得类似的结果,将是一种有价值的做法。我们接下来将演示静态RAM内存损坏如何使用桌面EMFI设备重新创建。

A.EMFI造成的内存损坏

以前对EMFI的研究表明,错误只发生在传输过程中,并且没有观察到静态损坏。这将是一个重要的区别,因为大多数对存储设备的安全关键测试,都假设带电粒子导致单位或多位故障。为了帮助验证安全和安全测试之间的联系,我们将证明使用EMFI可以实现静态位翻转,这与广泛用作安全关键测试的一部分的假设一致。

1.png

图1:使用EMFI工具安装在XYZ工作台上的弹道凝胶

测试将使用名为弹道凝胶(ChipSHOUTER项目的一部分)的现成靶板完成。这个目标有一个32 Mbit的SRAM芯片,可以用来了解不同设置的位翻转是如何变化的。通过将模式下载到设备、注入故障,并查看模式翻转的位置,我们可以了解可能产生什么样的影响。物理板安装在图1中的测试平台上。

在执行EMFI注入时,我们可以调整几个特性。首先是注射器本身的设计,已经提出了旨在帮助跨设备进行比较的协议。在这项工作中,我们将使用一个单一的EMFI平台,ChipSHOUTER。我们将比较改变注射尖端(线圈)的细节以及充电电压的效果。

B.喷头尺寸和电压的影响

随附的注射针尖随铁氧体磁芯的尺寸以及绕磁芯的缠绕方向而变化:两个4mm针尖和两个1mm针尖,每个针尖都有“顺时针”(CW)和“逆时针”(CCW)版本。预期交换正负脉冲极性相当于改变绕组方向。然而,出于安全原因,改变绕组方向可确保最高电压不在绕组尖端的最暴露端。各种线圈的示例如图2所示。

比较变化的充电电压的影响表明,脉冲电压和损坏的字节数之间存在明显的联系。增加充电电压会增加翻转的字节数。

使用4mm探头尖端,顺时针(CW)和逆时针(CCW)缠绕方向在每次故障注入尝试中,损坏的字节数上没有显著差异。这可能会导致位设置或位重置故障的一些偏差,但通常对于安全测试来说,这不是一个问题。

2.png

图2:显示围绕注射尖端(线圈)的绕线方向

1mm芯线的结果似乎与4mm芯线的不同。在这里,CW和CCW提示似乎有不同的响应。这很可能是由于物理结构公差造成的——尖端本身的长度略有不同,因此它们在芯片表面上方的高度不同。请注意,这确实表明可能存在少量字节错误。此配置中的1mm CW尖端在充电电压低于280V时显示1–10字节错误。

3.png

图3:充电电压和线圈的比较

C.高度的影响

预计注入尖端的物理高度会影响位翻转的数量。在以下示例中,我们将保持充电电压固定在200V,并使用1mm CCW尖端。尖端会从芯片表面升起,故障重复100次。这使我们能够评估高度变化的可重复性。结果如图4所示。

4.png

图4:改变与SRAM表面的距离会导致发生不同数量的故障

将探头移离表面显示故障减少,但如图所示,该过程仍然存在相当大的随机性。建议在探头移开时偏向零,但偶尔会针对同一位置进行大量翻转。

D.XY扫描位置

扫描芯片表面上的EMFI位置不仅会影响注入故障的位置,而且由于设备中的不同特性,它会影响数量。举个简单的例子,在SRAM顶部扫描我们的相同故障可以得到图5的结果。请注意,多个区域有一个1字节的故障,一些区域有超过1字节的故障(但不是以前看到的大量故障),而其他区域有大量的故障。

5.png

图5:SRAM故障结果(200V),浅蓝色是SRAM芯片顶部,虚线区域表示扫描区域

这表明有几个不同的变量会影响EMFI平台生成的故障类型。这可用于针对安全测试所需的不同类型的故障,例如同时影响设备的小部分和大部分的故障。

4.使用EMFI进行安全测试

如上一节所示,EMFI能够注入类似于设计用于在安全关键环境中运行的系统应受到保护的故障。这项工作的重点是汽车系统,我们可以将系统的结果,与怀疑由随机位翻转引起的问题进行比较。

示例目标将是2006年车型的ECU。之所以选择这个相对较旧的ECU,是因为现有的公共工作讨论了软件失效发生的可能性,而不会触发预期的故障安全行为。由于大多数生产ECU无法用于代码检查,因此专家证人证词的存在特别有趣,因为它可以让我们了解专家证人认为系统中存在哪些潜在缺陷。

根据专家证人的证词,ECU中使用的故障安全逻辑不会检测到某些内存损坏事件。这将导致意外的车辆操作,特别是车辆油门与请求的用户输入的分离。值得注意的是,这似乎表明油门“卡”在一个位置,但实际上并没有完全打开。这已通过测试平台进行验证,在运行的车辆上,特定的位在一个完整的ECU中翻转。审判中的证词表明,亲身体验过潜在缺陷的驾驶员,描述了油门在卡住之前进入全开(油门全开)位置。这表明与代码分析确定的根本原因不同,但正如专家证人所指出的,很难涵盖所有潜在缺陷。

最近对这些设备的研究表明,电压波动会暂时导致油门全开,但这不会导致油门卡住。然而,这确实表明电压波动与内存损坏的某种组合可能会导致整体错误情况,但这一点的实用性仍存在疑问——随机粒子或EMFI的损坏类型是否能解释这两者?

使用EMFI,我们可以证明内存损坏会导致功耗过大,这解释了两种故障同时存在的可能性。以前仅使用经典的静态或动态分析工具无法检测到此结果。这将以黑盒方式完成,无需对实际的ECU或传感器进行任何修改。但是,作者必须强调,以下安全测试并未在整个系统上执行——也就是说,安全测试并未显示整体系统故障,因为在此示例中未研究其他故障保护措施。如果测试人员确实了解被测系统,则可以执行更高级的分析,例如,可以比较内存和寄存器转储,以了解插入损坏的位置。

A.测试台

为了执行安全检查,我们需要在一些正常范围内操作系统。在这种情况下,围绕ECU构建了一个非常简单的发动机/汽车模拟器,以使系统能够正常运行。

该测试台如图6所示,其中包含以下项目:

1)我们正在测试的主ECU板。

2)连接到ECU的物理节气门体。

3)油门踏板传感器连接到ECU。

4)一个点火开关(像钥匙一样打开/关闭电源)。

5)提供凸轮和曲柄信号的模拟器。

6)一个诊断阅读器,用于监控ECU数据流。

7)探头监测驱动节气门体的信号。

8)提供EMFI工具的ChipSHOUTER。

9)一个XYZ平台,允许扫描EMFI工具。

6.png

图6:测试台显示:①被测ECU、②节气门体、③位置传感器、④点火开关、⑤传感器模拟器、⑥OBD-II读取器和⑦PWM信号示波器探头。ChipSHOUTER EMFI工具显示在主ECU的上方

当前设置不会自动监控输出,而是使用人在环来观察超出规范的模式(例如油门位置与命令位置不匹配)。

B.EMFI结果

执行EMFI的同时操作设备,注意到了几种失效模式,包括:

1)ECU复位并继续运行。

2)ECU进入故障安全模式,例如减小节气门开度。

3)节气门电机驱动信号停止正常工作。

最后的失效模式是最令人感兴趣的,因为看起来控制回路是关闭的(位置通常跟随踏板)。电机由脉冲宽度调制(PWM)信号驱动,两种PWM模式的比较如图7所示。

7.png

图7:EMFI插入前后节气门体控制的PWM输出

虽然节气门体似乎保持在请求的位置,但节气门体现在有明显的“颤动”。此外,功耗从正常的1.6A跃升至3-5A(电流消耗变得不那么恒定)。电流消耗的这种突然跳跃会导致ECU电源轨上出现额外的电压降,这也与之前展示电压波动期间油门全开状态的工作一致。

1)油门卡住结果:一旦进入错误的PWM模式,油门最终会全关或全开,油门踏板传感器的变化不再对油门位置产生任何影响。在这种情况下,电流消耗进一步增加,观察PWM波形很明显,输出信号现在是恒定的。进入此模式后,需要重启电源才能退出此模式。

在此模式下,ECU继续提供响应凸轮和曲柄信号变化的点火输出信号,OBD-II扫描工具可以继续提供诊断信息。油门卡在打开的照片如图8所示。请注意,此处显示的油门被命令打开88%。在正常运行期间,测试台上的最大节气门开度仅为81%,因此此处命令的88%节气门位置似乎甚至超出了正常运行值。

5.结论

内存损坏或其他失效的可能性,是安全关键设计中的一个众所周知的问题,在安全评估中使用这些属性之前,对电磁场等问题的引用会导致内存损坏。围绕汽车设备等安全关键系统的设计有大量知识,这些知识通常与获得和应用的知识分开,重点是汽车系统的安全分析。

8.png

图8:基于EMFI的故障后的ECU导致一些错误,其中油门被命令完全打开

先前的工作表明,EMFI可用于安全分析,例如绕过密码或执行差异故障分析。在这项工作中,我们证明EMFI也可以用作安全评估的一部分,通过表明预期由带电粒子随机产生的典型错误类型也可以用EMFI生成。

此外,安全评估中常用的“黑盒”攻击类型也被用于重现汽车ECU中难以捉摸的漏洞。这表明功能安全和网络安全工程都有能力从彼此的领域学习有用的工具和技术。


02.png

详询“牛小喀”微信:NewCarRen



作者:牛喀网专栏作者
牛喀网文章,未经授权不得转载!


下一篇: 【功能安全】HILS故障诊断功能测试(一)
上一篇: 【汽车安全】车辆可预测安全性:基于感知的碰撞严重度预测函数的验证策略
相关文章
返回顶部小火箭