GlitchLab:硬件电压毛刺攻击进入秒级时代

导语:是德科技(Keysight)研究团队刚在 arXiv 上放出 GlitchLab 论文,把硬件电压毛刺攻击的速度和精度直接拉到秒级。以前要盲扫几千次才能撞对的攻击窗口,现在 2.7 秒就能恢复 AES 密钥,34 秒破解密码验证。这套框架直接把故障注入从实验室手艺推到了工业化水准。


一、事件背景

it4sec 博主本月早些时候分享了一篇来自是德科技研究团队的论文,主题是 GlitchLab:一个用硬件在环优化(Hardware-in-the-Loop)技术加速物理故障注入(Fault Injection)攻击的框架。

电压毛刺攻击这事在硬件圈不新鲜 —— 早在 90 年代就有人搞。但传统做法有个核心痛点:正确的攻击参数区间太小。电压、时延、脉冲长度,三个参数任意一个错位,毛刺就白打。靠人工或随机扫一遍参数空间,可能要烧掉几千次真实硬件尝试才能找到”甜点”。

GlitchLab 的思路是把这事自动化、智能化 —— 用贝叶斯优化 + 强化学习在线调参,把攻击窗口搜索收敛到秒级。


二、技术原理

2.1 攻击链路

电压毛刺攻击的物理链路其实不复杂:

  1. 故障注入探头(电磁或电源轨)怼到目标芯片的电源或时钟引脚
  2. 在芯片执行加密或认证代码的特定瞬间注入一个电压/时钟毛刺
  3. 毛刺让某条指令的执行时间或结果出错
  4. 单条指令出错可能引发雪崩:跳过比较、绕过认证、吐出错误密钥

链路本身简单,难的是”第 2 步什么时候打、打多大、打多长”。芯片内部某个比较指令可能只跑 5ns,窗口就那么窄,错过就是白打。

2.2 GlitchLab 的硬件在环优化

GlitchLab 硬件在环攻击流程与实验设备示意图

上图分两部分。上半部分是 GlitchLab 的 6 步闭环:

  • 候选选择:在搜索空间里挑下一组参数(电压、时延、脉冲长度)
  • 毛刺执行:通过 DS1180A 毛刺模式发生器 + DS1140A 毛刺放大器把电压脉冲打到目标芯片
  • 目标程序:目标板上跑着 AES 加密、PIN 校验、有限循环、无限循环这几类典型目标
  • 结果分类:把毛刺造成的输出分成”触发失败 / 正常 / 错误 / 命中目标”等几类
  • 奖励:给强化学习(Reinforcement Learning)一个奖励信号,告诉它这一枪打得好不好
  • 模型更新:用 SMAC(Sequential Model-based Algorithm Configuration,序列模型算法配置)+ 贝叶斯优化更新代理模型(Surrogate Model)

每跑完一轮攻击就回到第 1 步,根据代理模型挑下一组更可能成功的参数。代理模型越跑越准,攻击窗口搜索越收敛。

下半部分是实物硬件的接线:GlitchLab 软件 → DS1180A 毛刺模式发生器 → DS1140A 1.5A 毛刺放大器 → 目标芯片 → 数字示波器抓电源迹 → 反馈回 GlitchLab。整个链路是闭环的,每次毛刺的电源波形都会被示波器捕获,作为下次调参的依据。


三、实测结果

是德团队用的是 Riscure Pinata 训练板,上面跑 STM32F407IG(意法半导体 ARM Cortex-M4 单片机,工业控制 / IoT 常见型号)。三个典型目标的实测数据:

攻击目标用时
AES 故障注入(用于密钥恢复)2.7 – 5.2 秒
控制流绕过2.2 – 4.1 秒
认证绕过 / 接受错误密码34 – 142 秒

前两项是秒级,第三项稍慢但也只在一两分钟量级。这跟传统动辄几天的盲扫完全不在一个量级。


四、红队视角评点

这事红队得盯紧,原因有三:

第一,速度已经可以接受。以前搞硬件毛刺要排场地、租示波器、对电源轨、反复试错,一个目标可能磨一两周。现在 2.2 秒就能撞开控制流,攻击成本断崖式下降。原来只有国家级实验室玩得起的东西,商业红队、攻击团伙都能复刻。

第二,是德科技自己把工具链摆出来了。DS1180A + DS1140A + 数字示波器这套是商用设备,淘宝 / 咸鱼搜 “ChipWhisperer” 也能凑出类似组合。开源的 fault injection 工具链(比如 ChipWhisperer-Lite、FaultyCat)已经成熟到本科生毕业设计水平。再叠加 GlitchLab 这种自动化框架,门槛基本归零。

第三,目标都是工业级真实场景。STM32F407IG 不是玩具,是大量 PLC、变频器、读卡器、医疗设备的 SoC。AES 密钥 2.7 秒恢复 —— 如果某家加密机、支付终端用了 STM32 做 AES 加速,黑盒攻击窗口从原来的”几乎不可能”变成了”几个下午”。


五、防御建议

硬件层的毛刺攻击没有银弹,只能从几个方向同时下手:

  • 电压监控 + 异常检测:芯片内置电压监控器(Voltage Monitor),检测到异常毛刺就触发复位或擦密钥
  • 冗余执行:关键比较 / 认证逻辑跑两遍,结果不一致就拒服务
  • 时钟完整性保护:用片内 PLL(Phase-Locked Loop,锁相环)监控外部时钟,毛刺导致时钟异常就报警
  • 恒定时间代码:AES 这类加密尽量用恒定时间实现,削弱时序侧信道(但对电压毛刺帮助有限,因为毛刺直接改的是执行结果,不是时序)
  • 物理防护:芯片灌环氧树脂(Potting)、加金属屏蔽罩、增加攻击者的物理接入难度

六、总结

GlitchLab 的意义不是技术突破,而是把硬件攻击工程化了。论文里那张图最值得玩味的不是结果数字,而是闭环结构 —— 攻击、调参、再攻击,全自动。这种工作流一旦标准化,硬件攻击就进入了”按小时计费”的红队服务模式。

原文及论文 PDF:

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容