一种激光故障注入方法与故障机理描述

VSole2022-07-26 06:10:33

背景介绍

随着物联网的发展,微控制器(MCU)的需求大幅增加,且其处理的数据常常是关键且有价值的。除了网络攻击之外,由于这些设备在物理上是可访问的,因此出现了许多物理技术来提取未经授权的数据。

在相关技术中,故障注入(FI)是一种主动的侧信道攻击方式,通过改变芯片的物理操作环境(例如过电压和欠电压、超频、暴露于高温或低温或激光),在目标处理器中引发计算故障,例如跳过指令,从而改变设备的工作方式;由此,它会产生一个故障结果,进一步使用差分故障分析(故障与无故障),以提取未经授权的数据。

基于以上信息,巴黎理工学院的Vanthanh Khuat、Jean-Luc Danger、Jean-Max Dutertre等人在FDTC 2021上讨论了一种针对32位微控制器的激光故障注入方法,通过收集所有位置上的故障并分析它们的行为,实现了从闪存接口到执行管道的故障识别与故障描述。[1]

已有工作

相关研究证明,激光故障注入能够导致易失性存储器(静态随机存取存储器(SRAM)或寄存器)中存储的数据发生故障,同时使用不同的底层技术和数据从一个组件移动到另一个组件,而不会影响存储在非易失性存储器中的数据。

具体而言,激光故障注入可用于瞄准和修改指令,导致指令被破坏、跳过等。2019年Dutertre等人报告了一个强大的激光故障注入诱导多指令跳过故障模型,在该模型中,作者能够使用具有相对较长脉宽的激光脉冲跳过任意数量的指令,最多跳过300条指令。[2]

实验内容

作者使用ARM Cortex-M0+内核(两级流水线)的SAMD21G18A进行实验,激光故障注入装置如图1所示,激光平台由激光源、显微镜、XYZ工作台、红外(IR)摄像机和计算机组成。激光源可以产生波长为1064 纳秒的激光脉冲,使光能够通过几百µm的硅。激光脉冲宽度可在50纳秒到1秒的范围内调谐。此外,激光源允许获得可编程延迟,功率范围为0到3瓦。光被引导到显微镜并通过显微镜聚焦。

图1 激光注入工作台

使用红外摄像机观察激光光斑在整个设备中的位置,本文分别在六个点位(如下图2所示)、是否启用缓存的共十二种情况下进行激光故障注入。

图2 红外相机拍摄的对应点位

实验结果

  • 重放与跳过两种故障现象

首先对故障现象进行描述,跳过故障定义如下图3(左)、重放故障定义如下图3(右)。

图3 跳过故障定义(左)、重放故障定义(右)

在六个点位分别进行激光故障注入,观察到不同的故障现象,部分故障现象如下图4所示,分为重放和跳过两种故障现象。当缓存被禁用时,缓冲区大小为32位,对应2×16位的指令,对应的故障现象为跳过某两条指令或重放某两条指令;当缓存被启用后,缓冲区大小为64位,对应4×16位的指令,对应的故障现象为跳过某四条指令或重放某四条指令。

图4 在点位P1、P2观察到的故障现象

经过分析,重放故障是由激光导致的闪存接口缓冲区更新被阻止引起的;跳过故障是由激光导致的缓冲区内容中的一个或多个位损坏引起的。

  • 故障发生机制

根据故障指令的数量以及在禁用和启用缓存时报告的故障行为,尝试确定指令在哪个阶段出现故障。为了检测和大致分类诱发故障,首先要了解从闪存到核心管道的指令流。图5是SAMD21G18A的非易失性存储器(NVM)的框图。通常存储在NVM(如闪存)中的指令在传输到AHB总线之前先加载到闪存接口及其缓冲区。与2×16位指令对应的32位数据每两个时钟周期加载到AHB总线中。然后,指令由AHB总线加载入管道。

图5 SAMD21 NVM接口

有实验表明,使用EMFI(电磁波故障注入)和LFI(Laser)时,闪存接口缓冲区可能会出现故障。

故障发生机制如图6所示。假设AHB总线已经申请到了。这时候就要把HTRANS、HADDR放总线上。HRDATA比HADDR是慢一个周期的。因此,在图6(b)中,由于AHB纵向数据更新发生故障,导致指令i5、i6被重放;在图6(c)中,由于HRDATA发生位故障,指令不能被正确识别,导致指令i7、i8被跳过;在图6(d)中,由于核心管道的提取阶段获得了位损坏的指令,导致i6被跳过;在图6(e)中,由于核心管道的执行阶段获得了位损坏的指令,导致i5被跳过。

图6 故障发生机制

综上可以得出,不同的激光故障注入位点会影响指令流水线处理的不同过程,这与作者们观察到的不同故障发生时间也较为一致。

相关学者还讨论了PW、功率对故障注入成功率的影响。激光脉宽越大,发生故障的指令越多;激光功率越大,发生故障的概率越高。

结论

本论文介绍了一种通过AHB总线在32位微控制器(MCU)中使用激光故障注入(LFI)从闪存接口到执行管道获取故障的方法。在指令通道的六个位置获得了不同的故障行为,通过收集所有位置上的故障并分析它们的行为,可以识别和描述故障,并确定闪存接口缓冲区上的故障因缓存操作模式而异;根据注入位置的不同,得到重放和跳过两种故障模型,研究了脉冲宽度和功率等激光故障注入参数对故障的影响。

本文的结果说明了激光故障注入的空间和时间准确性,指出了易受攻击的位置并揭示了设备架构的信息。

参考资料

[1] V. Khuat, J. -L. Danger and J. -M. Dutertre, "Laser Fault Injection in a 32-bit Microcontroller: from the Flash Interface to the Execution Pipeline," 2021 Workshop on Fault Detection and Tolerance in Cryptography (FDTC), 2021, pp. 74-85, doi: 10.1109/FDTC53659.2021.00020.

[2] Jean-Max Dutertre, Timothé Riom, Olivier Potin, and JeanBaptiste Rigaud. Experimental analysis of the laser-induced instruction skip fault model. In Nordic Conference on Secure IT Systems, pages 221–237.Springer, 2019.

计算机指令指令周期
本作品采用《CC 协议》,转载必须注明作者和本文链接
有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力。如果我们有一套好的分析工具,那将是事半功倍,能够帮助大家快速定位问题,节省大家很多时间做更深入的事情。
具体而言,激光故障注入可用于瞄准和修改指令,导致指令被破坏、跳过等。此外,激光源允许获得可编程延迟,功率范围为0到3瓦。故障发生机制根据故障指令的数量以及在禁用和启用缓存时报告的故障行为,尝试确定指令在哪个阶段出现故障。为了检测和大致分类诱发故障,首先要了解从闪存到核心管道的指令流。本文的结果说明了激光故障注入的空间和时间准确性,指出了易受攻击的位置并揭示了设备架构的信息。
本文章盘点了 Linux 运维必备 150 个命令,请配合下面的网站使用。定位你需要使用的命令,然后去这个网站查询详细用法即可。 地址:wangchujiang.com/linux-command/
大数据安全研究
2021-09-26 08:14:19
随着人工智能、云计算、移动互联网和物联网等技术的融合发展,传统的基于边界安全域和基于已知特征库的网络安全防护方式已经无法有效应对大数据环境下新的安全威胁。
研究人员近日发现了一种名为“Inception”(盗梦空间)的新型强大瞬态执行攻击,该攻击可以通过所有AMDZenCPU(包括最新型号)上的非特权进程泄露特权秘密和数据。瞬态执行攻击利用了所有现代处理器上都具备的“推测执行”功能,该功能通过猜测在较慢的操作完成之前接下来将执行的内容来显著提高CPU的性能。
近日,已发现影响多代 Intel CPU 的新边信道攻击,允许数据通过 EFLAGS 寄存器泄漏。该攻击是 Meltdown 的旁路,Meltdown 是 2018 年发现的一个严重安全漏洞, 影响了许多基于 x86 的微处理器。研究人员承认,攻击的根本原因仍然难以捉摸,并假设英特尔 CPU 的执行单元中有一个缓冲区,如果执行应该被撤回,则需要时间来恢复,如果随后的指令依赖于该进程,则会导致停顿在缓冲区的目标上。
拜登通过其2021年5月颁布的第14028号总统行政命令,要求相关部门采取有效的网络安全措施,例如多因素身份验证,提高联邦政府系统的安全性。情况说明书称,白宫将于10月31日至11月1日接待国际合作伙伴,以加速和扩大“反勒索软件倡议”合作项目。目标是提高集体弹性,让私营部门参与进来,并破坏网络犯罪的基础设施。在峰会上,拜登政府宣布了为期120天的网络安全学徒冲刺计划,以帮助增加网络安全就业机会。
FCS 兼备了DCS与PLC的特点,且跨出了革命性的一步。
作者:Randal E. Bryant,David R. O'Hallaron来源:华章计算机(hzbook
VSole
网络安全专家