
Введение в атаки с использованием электромагнитной инъекции сбоев (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 обычно:
- Использует **наконечник на основе катушки** (самодельный или коммерческий) для концентрации ЭМ полей.
- Применяет **генератор ЭМ импульсов** для генерации высоковольтных импульсов на наносекундном уровне.
- Синхронизируется с системными часами для максимизации вероятности инициирования значительных неисправностей в процессе выполнения критически важных операций.
**Источник:** [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 для характеризации уязвимостей в новых устройствах. Процесс включает систематическое зондирование, инъекцию неисправностей и наблюдение за реакцией устройства.
Сканирование на предмет реакции на неисправности
Покроковый процесс:
- Идентификация чувствительного кода: Куда нужно нацелиться (например, проверка пароля, криптографические процедуры)?
- Синхронизация импульса: Использование GPIO, выхода по последовательному интерфейсу или линий отладки для точной синхронизации.
- Варьирование параметров: Изучение ширины импульса, амплитуды, смещения времени и положения зонда.
- Сбор выходных данных: Хранение ответов устройства, дефектных криптограмм или отладочных логов для анализа.
- Классификация неисправностей: Используйте скрипты для разбора выходных данных и категоризации их по типу неисправности — пропущенные инструкции, перевороты битов, полная перезагрузка устройства и т. д.
Пример сканирующего скрипта (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();
Расширение ваших знаний: ресурсы и сообщество
Если вы стремитесь углубиться в основы, следующие ресурсы и сообщества будут ценными:
- Научные статьи:
- Семинары и рабочие группы:
- Инструменты с открытым исходным кодом:
- Блоги и уроки:
- Конференции:
- CHES (Криптографическое оборудование и встроенные системы)
- COSADE (Конструктивный анализ боковых каналов и безопасное проектирование)
- RECON, Hardwear.io
Заключение
Электромагнитная инъекция неисправностей (EMFI) - это захватывающий — хоть и грозный — инструмент в области исследований аппаратной безопасности. То, что начиналось как экзотическая академическая любопытство, теперь стало критической угрозой, которую должен учитывать каждый разработчик защищенных микроконтроллеров или чипов. С даже базовым оборудованием и скриптами, злоумышленники (и исследователи) могут провести точные, повторяемые и высоко разрушительные вторжения на уровне аппаратуры.
Как вы увидели:
- EMFI может обойти, понизить или извлечь криптографические секреты.
- Практическая установка по силам многим лабораториям и профессионалам.
- Реальные уязвимости в безопасной загрузке SoC, смарт-картах и защищенных элементах демонстрируют серьезность EMFI.
- Исследования контрмер и безопасного проектирования чипов должны постоянно адаптироваться.
Для новичков и ветеранов EMFI представляет собой как угрозу, которой нужно управлять, так и мощный диагностический инструмент для повышения устойчивости нашего цифрового мира.
Ссылки
- Введение для начинающих в атаки с инъекцией неисправностей (arXiv:2509.18341v1)
- Компактная установка для электромагнитной инъекции неисправностей — Блог Ledger
- Не доверяйте современным системам-на-чипе: электромагнитная инъекция неисправностей против SoC — Семинар Creach Labs
- Проект ChipWhisperer
- Уравнения Максвелла и основы EMI — Википедия
- Инъекция неисправностей и контрмеры — Embedded.com
Нашли ли вы это руководство полезным? Если да, поделитесь им с вашей командой безопасности или коллегами из сферы аппаратной инженерии! Для получения более продвинутых техник или примеров смотрите ресурсы выше и последние труды конференций в области аппаратной и встроенной безопасности.
[Для обратной связи, исправлений или вклада, смотрите оригинал препринта Arxiv и сообщество открытых исследований безопасности.]
Поднимите свою карьеру в кибербезопасности на новый уровень
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.
