硬核黑客笔记 - 怒吼吧电磁波 (上)
字数 1297 2025-08-10 08:28:57

电磁错误注入攻击(EMFI)教学文档

0x00 电磁错误注入基础原理

什么是错误注入

错误注入(Fault Injection)是硬件安全领域常见的攻击手段,通过外界干扰手段影响目标设备的正常运行,目的是改变其正常控制流程或绕过安全防护机制。

电磁错误注入(EMFI)原理

电磁错误注入(EMFI, Electromagnetic Fault Injection)是通过电磁波干扰目标芯片运行的攻击方式:

  1. 计算机底层逻辑电路使用电压表示0和1状态
    • 例如3.3V代表逻辑1,0V代表逻辑0
  2. 电磁脉冲会产生额外电压,可能改变芯片的逻辑状态
    • 导致0和1状态的意外转换
  3. 这种状态改变可以:
    • 干扰程序执行流程
    • 绕过代码读取保护(CRP)

关键影响因素

实施EMFI攻击时需要考虑以下关键参数:

  • 脉冲时间
  • 脉冲强度
  • 注入位置
  • 电磁波频率
  • 电磁波聚焦点

0x01 电磁注入入门案例

"小黑盒"攻击案例

2018年智能门锁安全事件中使用的"小黑盒"实际上是特斯拉线圈,通过产生高强度电磁脉冲导致门锁系统重置。

实验演示

使用高功率手台(无线电设备)对摄像头进行电磁干扰:

  • 发送特定频率的无线信号
  • 产生的电磁场影响摄像头电路
  • 导致摄像头无法正常工作

0x02 ChipShouter工具介绍

设备概述

ChipShouter是由Colin O'Flynn设计的专业电磁波错误注入设备,特点包括:

  • 易于上手
  • 丰富的API接口
  • 价格优势明显

设备组成

标准套装包含:

  1. 主机设备
  2. EMFI目标测试板(用于初步测试)
  3. 多种电磁注入探头(用于不同芯片的微调)

主要功能特点

  1. 自带调试接口
    • 可调整注入参数
  2. 示波器连接功能
    • 监测注入时产生的电压
  3. Trigger端口
    • 连接第三方设备实现事件触发
  4. Python 3 API
    • 支持定制化攻击测试

0x03 ChipShouter实战应用

目标案例

Riscure 2016硬件CTF挑战中的"Fiesta"题目:

  • 运行在Arduino的Atmega芯片上
  • 固件输出"LOCKLOCKLOCK"循环
  • 目标:跳出循环获取Flag

传统解决方案

  1. 短接时钟频率接口(造成clock故障)
  2. 电压毛刺注入
  3. 激光注入(需芯片刨片)

EMFI解决方案优势

  • 无需物理修改目标电路
  • 电磁波可穿透芯片外壳
  • 降低目标损坏风险

攻击实施步骤

  1. 确定注入点
    • 芯片上负责关键运算的区域
  2. 调整注入参数
    • 脉冲时间
    • 脉冲强度
  3. 实施注入攻击
    • 通过反复测试找到有效参数组合

0x04 学习建议

  1. 实践Riscure CTF题目
  2. 积累硬件调试经验
  3. 理解芯片架构(AVR等)
  4. 掌握示波器等测试设备使用

0x05 参考文献

  1. Open security research - 测信道攻击技术 (王宗岳)
  2. Open security research - 故障注入攻击技术 (王宗岳)

附录:EMFI攻击检查清单

  1. 目标分析

    • 确定关键功能模块
    • 识别可能的安全检查点
  2. 设备准备

    • 选择合适的探头
    • 连接示波器监测
  3. 参数设置

    • 初始强度设置(建议从低开始)
    • 脉冲时间调整
    • 频率选择
  4. 测试方法

    • 网格扫描法确定最佳注入点
    • 参数迭代优化
    • 效果评估与调整
电磁错误注入攻击(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攻击检查清单 目标分析 确定关键功能模块 识别可能的安全检查点 设备准备 选择合适的探头 连接示波器监测 参数设置 初始强度设置(建议从低开始) 脉冲时间调整 频率选择 测试方法 网格扫描法确定最佳注入点 参数迭代优化 效果评估与调整