Введение в атаки с использованием электромагнитной инъекции сбоев (EMFI)

Введение в атаки с использованием электромагнитной инъекции сбоев (EMFI)

Электромагнитная инъекция сбоев (EMFI) нарушает работу интегральных схем с помощью коротких электромагнитных всплесков. В этом обзоре рассматриваются основы EMFI, требования к установке и его использование для поиска уязвимостей в современных системах.
# Введение для начинающих в атаки с инъекцией неисправностей: Демистификация электромагнитной инъекции неисправностей (EMFI)

**Содержание**

- [Введение в атаки с инъекцией неисправностей](#введение-в-атаки-с-инъекцией-неисправностей)
- [Что такое электромагнитная инъекция неисправностей (EMFI)?](#что-такое-электромагнитная-инъекция-неисправностей-emfi)
- [Как работает EMFI: от теории к практике](#как-работает-emfi-от-теории-к-практике)
  - [Понимание электромагнитных помех](#понимание-электромагнитных-помех)
  - [Воздействие EMFI на интегральные схемы (ИС)](#воздействие-emfi-на-интегральные-схемы-ис)
- [Компактная установка EMFI: компоненты и сборка](#компактная-установка-emfi-компоненты-и-сборка)
  - [Необходимое оборудование](#необходимое-оборудование)
  - [Типовая схема установки](#типовая-схема-установки)
  - [Соображения по безопасности](#соображения-по-безопасности)
- [EMFI в действии: сценарии нападений из реальной жизни](#emfi-в-действии-сценарии-нападений-из-реальной-жизни)
  - [Пример 1: Извлечение криптографических ключей](#пример-1-извлечение-криптографических-ключей)
  - [Пример 2: Атаки с неисправностями на защищенные микроконтроллеры](#пример-2-атаки-с-неисправностями-на-защищенные-микроконтроллеры)
  - [Пример 3: EMFI на встроенных системах-на-чипе (SoC)](#пример-3-emfi-на-встроенных-системах-на-чипе-soc)
- [Обнаружение уязвимостей с помощью EMFI](#обнаружение-уязвимостей-с-помощью-emfi)
  - [Сканирование на предмет реакции на неисправности](#сканирование-на-предмет-реакции-на-неисправности)
  - [Автоматизация тестирования инъекций неисправностей с помощью Python и Bash](#автоматизация-тестирования-инъекций-неисправностей-с-помощью-python-и-bash)
- [Смягчение атак с инъекцией неисправностей: защитные меры](#смягчение-атак-с-инъекцией-неисправностей-защитные-меры)
- [Расширение ваших знаний: ресурсы и сообщество](#расширение-ваших-знаний-ресурсы-и-сообщество)
- [Заключение](#заключение)
- [Ссылки](#ссылки)

---

## Введение в атаки с инъекцией неисправностей

Атаки с инъекцией неисправностей представляют собой тип аппаратных атак, при которых злоумышленник **намеренно вызывает ошибки (неисправности) в работе устройства**, с целью обхода проверок безопасности, извлечения конфиденциальных данных или подрыва доверия к системе в целом. Эта техника особенно актуальна в условиях распространения защищенных приложений, работающих на встроенных системах, от смарт-карт до устройств IoT.

Инъекции неисправностей могут выполняться с использованием различных методов:
- Вольтажные/Часовые сбои
- Лазерные инъекции неисправностей
- **Электромагнитная инъекция неисправностей (EMFI)**
- Манипуляция температурой/окружающей средой

Среди них, **EMFI** выделяется как гибкая, бесконтактная техника, использующая короткие импульсы электромагнитной (ЭМ) энергии для нарушения целевых областей кремния, приводя к преходящим неисправностям. Этот пост сосредоточен на EMFI, как используемой в исследовании кибербезопасности и практических атаках.

---

## Что такое электромагнитная инъекция неисправностей (EMFI)?

**Электромагнитная инъекция неисправностей (EMFI)** - это продвинутая техника, при которой контролируемый всплеск электромагнитной энергии направляется на определенную часть интегральной схемы (ИС) или микроконтроллера. Цель состоит в том, чтобы **нарушить правильную работу устройства** путем внедрения неисправностей, таких как перевороты битов, нарушения временных интервалов или пропуски инструкций.

### Ключевые характеристики:

- **Ненавязчивая**: Нет необходимости вскрывать корпус или физически контактировать с внутренним кремнием.
- **Точная**: Может нацеливаться на конкретные функциональные блоки внутри чипа (например, ядро процессора, I/O).
- **Повторяемая**: Правильные настройки позволяют обеспечивать стабильные, воспроизводимые инъекции неисправностей.
- **Мощная**: Особенно эффективна на чипах с функциями безопасности, такими как защищенный загрузчик, криптографические механизмы или сопротивление взлому.

### Общий обзор концепции

![Диаграмма принципа EMFI](https://i.imgur.com/LB3vYoG.png)
*Рисунок: Принцип электромагнитной инъекции неисправностей (упрощенный)*

Техника EMFI обычно:
- Использует **наконечник на основе катушки** (самодельный или коммерческий) для концентрации ЭМ полей.
- Применяет **генератор ЭМ импульсов** для генерации высоковольтных импульсов на наносекундном уровне.
- Синхронизируется с системными часами для максимизации вероятности инициирования значительных неисправностей в процессе выполнения критически важных операций.

**Источник:** [arXiv:2509.18341v1](https://arxiv.org/html/2509.18341v1), [Ledger Blog on Compact EMFI](https://www.ledger.com/blog/compact-em)

---

## Как работает EMFI: от теории к практике

### Понимание электромагнитных помех

**Электромагнитные помехи (EMI)** возникают, когда внешнее электромагнитное поле нарушает нормальную работу электронных схем. В контексте инъекции неисправностей, атака является целенаправленной, преднамеренной и высококонтролируемой.

**Физика EMFI:**
- Уравнения Максвелла описывают, как ЭМ поля распространяются и взаимодействуют с материалами.
- Быстрые, высокоэнергетические импульсы создают ненужные токи в цепях жертвы.
- В цифровых системах это может вызвать скачки напряжения (или тока) в критически важных воротах или ячейках памяти в определенные моменты, вызывая неисправности.

### Воздействие EMFI на интегральные схемы (ИС)

Когда продуманно выверенный ЭМ импульс направлен на устройство, возможны несколько эффектов атаки:
- **Нарушения временных интервалов:** Данные не фиксируются правильно, или контролл последовательности нарушается.
- **Пропуски инструкций:** Процессор непреднамеренно пропускает инструкции.
- **Перевороты битов:** Биты в памяти или регистрах изменяются из-за вызванных токов.
- **Обход безопасности:** Проверки безопасности или условные разветвления могут быть обойдены.

**Пример:**
Контроллер выполняет код, проверяющий корректность пароля. Атака EMFI может изменить результат этой проверки, обходя аутентификацию и предоставляя несанкционированный доступ.

---

## Компактная установка EMFI: компоненты и сборка

Перед запуском атаки давайте разберем, как выглядит типичная установка EMFI в лаборатории кибербезопасности.

### Необходимое оборудование

1. **Генератор импульсов** — Генерирует быстрые, точные высоковольтные импульсы (часто до нескольких сотен вольт, с шириной в доли наносекунд).
2. **Наконечник для инъекции ЭМ** — Обычно маленькая катушка (петлевой зонд), расположенная непосредственно над целевым чипом.
3. **Осциллограф/Анализатор логики** — Мониторит реакцию системы и помогает с калибровкой временных интервалов.
4. **Оборудование для синхронизации триггеров** — Обеспечивает инъекцию неисправности в точно указанное время.
5. **Целевое устройство** — Встраиваемая система, микроконтроллер или SoC для тестирования.
6. **Система позиционирования** — XYZ микропозиционер для точного выравнивания зонда.
7. **Экранирование и оборудование безопасности** — Предотвращение побочных помех и повреждений.

**Примечание:** Некоторые продвинутые установки используют моторизованные этапы, управляемые компьютером задержки и даже машинное обучение для автоматизации процесса.

### Типовая схема установки

```plaintext
+---------------------+    Коаксиальный кабель     +-----------------------+
| Генератор импульсов  |--------------------->| ЭМ зонд (петля/катушка) |
+---------------------+                      +-----------------------+
                                                      |
                                                      V
                                               +-----------+
                                               |    Цель   |
                                               |   Устройство   |
                                               +-----------+
                                                        |
                                                        v
      +---------+     Триггер/Синхронизация     +-------------+   USB/Serial   +-----------+
      | Хост-ПК |<--------------------->| Осциллограф|--------------->| Хост-ПК   |
      +---------+                      +-------------+                +-----------+
    (Управление, Временные показатели)               (Мониторинг ответа)

Соображения по безопасности

  • Высокое напряжение: Генераторы импульсов могут выдавать опасные уровни напряжения; обращайтесь с ними с крайней осторожностью.
  • ЭМ поля: Экранирование необходимо, чтобы локализовать атаку и минимизировать эмиссию.
  • Повреждение устройства: Повторяющиеся, высокоэнергетические импульсы могут навсегда повредить целевые ИС.

EMFI в действии: сценарии нападений из реальной жизни

Пример 1: Извлечение криптографических ключей

Концепция атаки

Многие устройства полагаются на криптографические ключи, храненные внутри (например, AES, RSA ключи). Нарушая выполнение во время криптографических вычислений (как например, умножение в RSA), злоумышленники могут вызвать неисправности, приводящие к ошибочным выходным данным, из которых секретные ключи могут быть восстановлены математически.

Пример
  • Цель: Смарт-карта, выполняющая вычисление подписи RSA.
  • Процесс: Применение EMFI во время вычисления с использованием закрытого ключа для избирательного нарушения важных битов.
  • Результат: Использование нескольких ошибочных выходных данных и оригинального криптограммы для восстановления ключей с помощью техники, известной как Дифференциальный анализ неисправностей.
Поток анализа дифференциальных неисправностей
flowchart TD
    A[Устройство выполняет криптографический алгоритм] --> B[EMFI вызывает неисправность в вычислении]
    B --> C[Выход захвачен (ошибочная шифровка/подпись)]
    C --> D[Атакующий использует известные уравнения и несколько ошибочных выходных]
    D --> E[Восстановление ключа с помощью алгебраических техник]

Пример 2: Атаки с неисправностями на защищенные микроконтроллеры

Современные микроконтроллеры, используемые в картах оплаты, TPM или авторизационных токенах, включают функции безопасности — но EMFI может обойти их, разоблачая их секреты.

Пример: Пропуск проверок аутентификации

Предположим, целевой код выполняет проверку пароля:

if (input_hash == stored_hash) {
    grant_access();
}

Импульс EMFI, произведенный в момент сравнения, может нарушить регистр или флаги контроля потока CPU, пропуская условную проверку и предоставляя доступ без проверки.

Демонстрация: Визуализация манипуляции с контролем потока

Цикл Операция Состояние регистра Эффект EMFI Результат
T1 Загрузить input_hash input_hash в R1 - -
T2 Сравнить input_hash и stored R1, R2 Импульс EM Неправильный результат сравнения
T3 Переход если равно Проверка состояния Пропущено Доступ предоставлен!

Пример 3: EMFI на встроенных системах-на-чипе (SoC)

С SoC (например, ARM Cortex-M, A53), EMFI открывает обширную поверхность атаки:

  • ПЗУ загрузчика
  • Безопасная среда выполнения (enclave)
  • Дешифрование кода на лету
  • Аутентификация данных во время выполнения
Пример: Атака на защищенную загрузку

SoC может проверять целостность прошивки при загрузке. Атакующий синхронизирует импульс EMFI с процедурой проверки CRC, заставляя его пропускать или неправильно вычислять проверку. Затем устройство загружает изменённую атакующим (вредоносную) прошивку.

Пример из реальной жизни:
На Семинаре в Creach Labs исследователи продемонстрировали, как SoC, работающие в доверенной среде выполнения, могут быть скомпрометированы с помощью EMFI.


Обнаружение уязвимостей с помощью EMFI

Исследователи безопасности часто используют EMFI для характеризации уязвимостей в новых устройствах. Процесс включает систематическое зондирование, инъекцию неисправностей и наблюдение за реакцией устройства.

Сканирование на предмет реакции на неисправности

Покроковый процесс:
  1. Идентификация чувствительного кода: Куда нужно нацелиться (например, проверка пароля, криптографические процедуры)?
  2. Синхронизация импульса: Использование GPIO, выхода по последовательному интерфейсу или линий отладки для точной синхронизации.
  3. Варьирование параметров: Изучение ширины импульса, амплитуды, смещения времени и положения зонда.
  4. Сбор выходных данных: Хранение ответов устройства, дефектных криптограмм или отладочных логов для анализа.
  5. Классификация неисправностей: Используйте скрипты для разбора выходных данных и категоризации их по типу неисправности — пропущенные инструкции, перевороты битов, полная перезагрузка устройства и т. д.
Пример сканирующего скрипта (Bash + Python):

Предположим, ваше устройство выводит диагностическую информацию через UART, и вы хотите автоматизировать классификацию неисправностей.

Bash: Запуск сканирования на неисправности, захват логов сериала для каждой инъекции:

for delay in $(seq 0 100 5000); do
    echo "Инъекция с задержкой $delay нс"
    ./trigger_pulsegen --delay $delay --width 10 --voltage 200
    cat /dev/ttyUSB0 > log_${delay}.txt &
    sleep 0.5
    pkill -f "cat /dev/ttyUSB0"
done

Python: Разбор логов для шаблонов неисправностей (например, поиск 'DETECTED FAULT'):

import glob

for logfile in glob.glob("log_*.txt"):
    with open(logfile) as f:
        content = f.read()
        if "DETECTED FAULT" in content:
            print(f"{logfile}: Неисправность обнаружена")
        elif "RESET" in content:
            print(f"{logfile}: Обнаружена перезагрузка устройства")
        else:
            print(f"{logfile}: Без неисправностей")

Автоматизация тестирования инъекций неисправностей с помощью Python и Bash

В исследованиях более крупных масштабов интегрируют всё оборудование с автоматизацией программного обеспечения:

  • Автоматизация позиционирования зонда (через моторы)
  • Программное управление параметрами импульса
  • Сбор и обработка данных в реальном времени
  • Адаптивное нацеливание на основе наблюдаемых результатов

Простой пример автоматизации с помощью Python:

Предположим, у вас есть API для вашего генератора импульсов и осциллографа:

import pulsegen
import oscilloscope

# Подключение устройств
pulse = pulsegen.connect("COM4")
scope = oscilloscope.connect("USB0::0x1AB1::0x0588::DS1ET141904883")

delays = range(1000, 5000, 200)  # в нс

for d in delays:
    pulse.setup(delay=d, width=10, voltage=250)  # установка параметров инъекции
    pulse.fire()   # инъекция!
    trace = scope.capture()
    # Сохранение, анализ или визуализация захваченного трека:
    filename = f"trace_{d}ns.csv"
    with open(filename, "w") as f:
        f.write(trace)

Примечание: Реальная автоматизация может включать сложные библиотеки, обработку ошибок и интеграцию с позиционерами зондов.


Смягчение атак с инъекцией неисправностей: защитные меры

По мере развития EMFI, развиваются и меры контрмеры — производители аппаратного обеспечения теперь проектируют защиту от сбоев:

  • Датчики: Датчики на чипе для сильных ЭМ полей или аномалий напряжения.
  • Редундантные вычисления: Критическая логика дублируется, и результаты сравниваются (двойное модульное резервирование, DMR).
  • Случайные задержки/обфускация: Добавляют шум в график выполнения, усложняя точное нацеливание.
  • Физическое экранирование: Добавляет проводящие, поглощающие ЭМ барьеры над чувствительными областями ИС.
  • Программное обнаружение: Мониторинг программным обеспечением невозможных состояний (например, невозможный переход в логике).

Пример программного обеспечения: Троекратное выполнение для верификации:

// Псевдокод
result1 = calc_hash(input);
result2 = calc_hash(input);
result3 = calc_hash(input);

if ((result1 == result2) && (result2 == result3))
    use(result1);
else
    trigger_alert();

Расширение ваших знаний: ресурсы и сообщество

Если вы стремитесь углубиться в основы, следующие ресурсы и сообщества будут ценными:


Заключение

Электромагнитная инъекция неисправностей (EMFI) - это захватывающий — хоть и грозный — инструмент в области исследований аппаратной безопасности. То, что начиналось как экзотическая академическая любопытство, теперь стало критической угрозой, которую должен учитывать каждый разработчик защищенных микроконтроллеров или чипов. С даже базовым оборудованием и скриптами, злоумышленники (и исследователи) могут провести точные, повторяемые и высоко разрушительные вторжения на уровне аппаратуры.

Как вы увидели:

  • EMFI может обойти, понизить или извлечь криптографические секреты.
  • Практическая установка по силам многим лабораториям и профессионалам.
  • Реальные уязвимости в безопасной загрузке SoC, смарт-картах и защищенных элементах демонстрируют серьезность EMFI.
  • Исследования контрмер и безопасного проектирования чипов должны постоянно адаптироваться.

Для новичков и ветеранов EMFI представляет собой как угрозу, которой нужно управлять, так и мощный диагностический инструмент для повышения устойчивости нашего цифрового мира.


Ссылки

  1. Введение для начинающих в атаки с инъекцией неисправностей (arXiv:2509.18341v1)
  2. Компактная установка для электромагнитной инъекции неисправностей — Блог Ledger
  3. Не доверяйте современным системам-на-чипе: электромагнитная инъекция неисправностей против SoC — Семинар Creach Labs
  4. Проект ChipWhisperer
  5. Уравнения Максвелла и основы EMI — Википедия
  6. Инъекция неисправностей и контрмеры — Embedded.com

Нашли ли вы это руководство полезным? Если да, поделитесь им с вашей командой безопасности или коллегами из сферы аппаратной инженерии! Для получения более продвинутых техник или примеров смотрите ресурсы выше и последние труды конференций в области аппаратной и встроенной безопасности.

[Для обратной связи, исправлений или вклада, смотрите оригинал препринта Arxiv и сообщество открытых исследований безопасности.]

🚀 ГОТОВЫ К ПОВЫШЕНИЮ УРОВНЯ?

Поднимите свою карьеру в кибербезопасности на новый уровень

Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.

97% Трудоустройство
Элитные техники Подразделения 8200
42 Практические лаборатории