Skip to main content
QUICK REVIEW

[论文解读] Injecting Software Vulnerabilities with Voltage Glitching

Yifan Lu|arXiv (Cornell University)|Feb 14, 2019
Physical Unclonable Functions (PUFs) and Hardware Security参考文献 7被引用 6
一句话总结

本文展示了一种低成本的电压毛刺攻击,利用短路电路在CMOS逻辑中引发时序违例,实现故障注入,从而绕过PlayStation Vita的ARM架构SoC上的安全启动保护。通过系统性地扫描毛刺参数,作者实现了可靠的代码执行,并成功转储了未映射的引导ROM,证明了电压毛刺攻击可以利用硬件加固的消费级设备中的数据相关时序漏洞。

ABSTRACT

We show how voltage glitching can cause timing violations in CMOS behavior. Then we attack a real, security hardened, consumer device to gain code execution and dump the secure boot ROM.

研究动机与目标

  • 开发CMOS逻辑中电压毛刺效应的理论模型,重点研究由瞬态电源电压下降(V_DD' ≈ 0V)引起的建立/保持时间违例。
  • 将该模型应用于真实世界中经过安全加固的消费级设备——PlayStation Vita,以实现早期引导阶段的代码执行。
  • 证明通过在执行过程中破坏关键完整性检查,电压毛刺攻击可绕过安全启动机制。
  • 展示使用开源硬件(如ChipWhisperer)在现代、加固的SoC上可行且可重复的故障注入。

提出的方法

  • 通过分析在瞬态电源电压条件(V_DD' ≈ 0V)下CMOS反相器的传播延迟(t_pHL 和 t_pLH),建模电压毛刺对CMOS反相器行为的影响。
  • 定义毛刺参数N(毛刺起始周期)和M(毛刺持续周期数),系统扫描故障诱导的时序窗口。
  • 使用Rigol DS1054Z示波器监控eMMC通信,通过检测异常命令序列(如意外的READ_SINGLE_BLOCK请求)来识别成功故障。
  • 利用ChipWhisperer API实现自动化暴力扫描,测试指定窗口内所有N和M组合,观察每次尝试后设备的行为。
  • 利用观察结果:成功故障会导致设备请求第一个引导加载程序块,从而检测到有效的毛刺攻击。
  • 迭代优化毛刺参数,利用故障实现更早的代码执行,逐步从SRAM中转储引导ROM数据。

实验结果

研究问题

  • RQ1电压毛刺如何在CMOS逻辑中引发时序违例,特别是通过建立/保持时间违例?
  • RQ2电压毛刺对实际SoC中组合逻辑和触发器行为的数据依赖性影响是什么?
  • RQ3电压毛刺攻击是否可以可靠地用于绕过现代、加固的消费级设备中的安全启动机制?
  • RQ4如何系统性地发现并调节故障注入参数(N和M),以实现一致的利用?
  • RQ5故障引发的软件漏洞在多大程度上可被利用以实现代码执行和数据外泄?

主要发现

  • 在PlayStation Vita的F00D处理器上成功执行了可行的电压毛刺攻击,在早期引导阶段实现了可靠的代码执行。
  • 最优毛刺参数为N = 40800–40820周期,M = 45–55周期,在稳定条件下成功率超过80%。
  • 通过观察异常的eMMC命令序列检测到成功故障,特别是设备在毛刺后请求第一个引导加载程序块。
  • 该攻击利用了bldr_size完整性检查中的数据依赖性漏洞,故障导致读取到错误的块计数(0xE2)。
  • 引导ROM无法直接读取,但通过在SRAM中获得执行权限,并反复对早期代码段进行毛刺攻击,间接实现了数据转储。
  • 该方法具有鲁棒性和可重复性,即使在环境条件变化下,也能在初始有效配置附近轻松找到新的工作参数对。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。