硬核黑客笔记 - 怒吼吧电磁波 (上)
字数 1297 2025-08-10 08:28:57
电磁错误注入攻击(EMFI)教学文档
0x00 电磁错误注入基础原理
什么是错误注入
错误注入(Fault Injection)是硬件安全领域常见的攻击手段,通过外界干扰手段影响目标设备的正常运行,目的是改变其正常控制流程或绕过安全防护机制。
电磁错误注入(EMFI)原理
电磁错误注入(EMFI, Electromagnetic Fault Injection)是通过电磁波干扰目标芯片运行的攻击方式:
- 计算机底层逻辑电路使用电压表示0和1状态
- 例如3.3V代表逻辑1,0V代表逻辑0
- 电磁脉冲会产生额外电压,可能改变芯片的逻辑状态
- 导致0和1状态的意外转换
- 这种状态改变可以:
- 干扰程序执行流程
- 绕过代码读取保护(CRP)
关键影响因素
实施EMFI攻击时需要考虑以下关键参数:
- 脉冲时间
- 脉冲强度
- 注入位置
- 电磁波频率
- 电磁波聚焦点
0x01 电磁注入入门案例
"小黑盒"攻击案例
2018年智能门锁安全事件中使用的"小黑盒"实际上是特斯拉线圈,通过产生高强度电磁脉冲导致门锁系统重置。
实验演示
使用高功率手台(无线电设备)对摄像头进行电磁干扰:
- 发送特定频率的无线信号
- 产生的电磁场影响摄像头电路
- 导致摄像头无法正常工作
0x02 ChipShouter工具介绍
设备概述
ChipShouter是由Colin O'Flynn设计的专业电磁波错误注入设备,特点包括:
- 易于上手
- 丰富的API接口
- 价格优势明显
设备组成
标准套装包含:
- 主机设备
- EMFI目标测试板(用于初步测试)
- 多种电磁注入探头(用于不同芯片的微调)
主要功能特点
- 自带调试接口
- 可调整注入参数
- 示波器连接功能
- 监测注入时产生的电压
- Trigger端口
- 连接第三方设备实现事件触发
- Python 3 API
- 支持定制化攻击测试
0x03 ChipShouter实战应用
目标案例
Riscure 2016硬件CTF挑战中的"Fiesta"题目:
- 运行在Arduino的Atmega芯片上
- 固件输出"LOCKLOCKLOCK"循环
- 目标:跳出循环获取Flag
传统解决方案
- 短接时钟频率接口(造成clock故障)
- 电压毛刺注入
- 激光注入(需芯片刨片)
EMFI解决方案优势
- 无需物理修改目标电路
- 电磁波可穿透芯片外壳
- 降低目标损坏风险
攻击实施步骤
- 确定注入点
- 芯片上负责关键运算的区域
- 调整注入参数
- 脉冲时间
- 脉冲强度
- 实施注入攻击
- 通过反复测试找到有效参数组合
0x04 学习建议
- 实践Riscure CTF题目
- 积累硬件调试经验
- 理解芯片架构(AVR等)
- 掌握示波器等测试设备使用
0x05 参考文献
- Open security research - 测信道攻击技术 (王宗岳)
- Open security research - 故障注入攻击技术 (王宗岳)
附录:EMFI攻击检查清单
-
目标分析
- 确定关键功能模块
- 识别可能的安全检查点
-
设备准备
- 选择合适的探头
- 连接示波器监测
-
参数设置
- 初始强度设置(建议从低开始)
- 脉冲时间调整
- 频率选择
-
测试方法
- 网格扫描法确定最佳注入点
- 参数迭代优化
- 效果评估与调整