
В быстро развивающейся области кибербезопасности уязвимости часто воспринимаются как программные эксплойты — вредоносный код, фишинг, неправильно настроенные серверы и многое другое. Однако существует намного более глубокий и менее заметный слой, не менее, а порой и более тревожный: аппаратные закладки.
Этот технический пост в формате long-form глубоко погружается в мир, раскрытый на Black Hat, где исследователь по безопасности продемонстрировал техники вставки закладок в компьютерное оборудование, чтобы гарантировать атаки, одновременно скрытые и стойкие. Мы рассмотрим основы аппаратных закладок, углубимся в атаки с аппаратным ускорением, обсудим опасности, которые они представляют, исследуем, как они работают (с кодовыми примерами и анализом из реальной жизни), и расскажем о методах обнаружения и предотвращения, полезных как для начинающих, так и для профессионалов.
Аппаратная закладка — это умышленно созданная уязвимость, обычно скрытно встроенная в микрочип, материнскую плату, периферийное устройство или другой физический вычислительный компонент. В отличие от обычного программного вредоносного ПО, которое можно исправить или удалить, аппаратные закладки стойкие и могут избегать большинства механизмов обнаружения:
| Тип | Описание | Пример |
|---|---|---|
| Основанная на прошивке | Вредоносный код в BIOS, UEFI или других слоях прошивки | Ложаксовый руткит (вредоносное ПО для UEFI) |
| Физическая ИС | Трояны или закладки, встроенные в чипы | Контроверсия с закладками Supermicro |
| Перефирия | Вредоносные USB, сетевые карты или встроенные контроллеры | BadUSB (эксплуатация микроконтроллера) |
На знаковой демонстрации на конференции по безопасности Black Hat исследователь раскрыл:
Техники создания закладок в компьютерном оборудовании, позволяющие атакам быть более скрытыми и стойкими.
Источник: Dark Reading
В 2018 году Bloomberg сообщил, что крошечные вредоносные чипы (размером с зерно риса) были обнаружены, встроенные в серверные материнские платы, потенциально оказывая воздействие на глобальные облачные провайдеры. Хотя это горячо обсуждалось, такой сценарий технически достижим и подчеркивает риски цепочки поставок.
Прошивка — это специализированное программное обеспечение, запрограммированное на аппаратуре, такое как BIOS/UEFI или контроллеры устройств, которые инициализируют и управляют коммуникацией между аппаратным и программным слоями.
LoJax — один из первых обнаруженных руткитов UEFI в дикой природе (2018). Он инфицировал SPI флэш-память на материнской плате, обеспечивая стойкость даже при стирании жесткого диска.
# Извлечение прошивки - Linux
$ sudo flashrom -p internal -r bios_backup.bin
# Используйте редактор шестнадцатеричных кодов или binwalk для дальнейшего анализа
$ binwalk -e bios_backup.bin
Аппаратный троян — это вредоносная, но часто незначительная модификация интегральной схемы (ИС), которая изменяет ее функцию или утечет сенситивные данные.
+----------------------------+
| Контроллер клавиатуры (ИС) |
| [ Вредоносный логический блок ] | --> Отправляет нормальные + скрытые данные
+----------------------------+
Атаки на побочные каналы не скомпрометируют напрямую криптографический алгоритм или системное программное обеспечение, а наблюдают за утечками в реализации — временем, потреблением энергии, электромагнитными излучениями, чтобы предположить секреты.
В исследовательском постере 2026 года описано:
Известный пример: Dual_EC_DRBG — Этот стандарт NIST генератора случайных чисел, реализованный в модулях безопасности оборудования, подозревается в наличии математической закладки, вставленной АНБ, позволяющей предсказывать ключи.
Аппаратное ускорение относится к использованию специализированных аппаратных компонентов (например, FPGA или ASIC) для выполнения определенных вычислений значительно быстрее и эффективнее, чем процессоры общего назначения.
Злоумышленник может использовать пользовательские аппаратные блоки для:
Пример исследования: Постер (DATE Conference 2026) описывает, как различные алгоритмы умножения (Карацубы, Тоома-Кука, НТТ) могут быть реализованы на Lattice FPGA и как скрытая логика может манипулировать данными операции или утекать их через побочные каналы, усложняя обнаружение атак на уровне аппаратного обеспечения в цепи поставок.
Большинство атак на побочные каналы требуют оборудования для захвата сигнала, но существуют открытые наборы инструментов для анализа:
Пример на Python: анализ простых данных побочного канала
import numpy as np
import matplotlib.pyplot as plt
# Пример файла с трассировкой мощности: значения в микроамперах для 1 операции
power_trace = np.loadtxt('powertrace.txt')
plt.plot(power_trace)
plt.title('Трассировка потребления мощности')
plt.xlabel('Индекс выборки')
plt.ylabel('Ток (uA)')
plt.show()
Это может коррелироваться с операциями, зависящими от секрета, чтобы извлечь, например, ключи RSA или AES, если аппаратная закладка активируется под определёнными рабочими нагрузками.
Приобретайте оборудование только у доверенных, прозрачных поставщиков с аттестацией безопасной цепочки поставок.
Пользуйтесь инструментами проверки подписанной прошивки от производителя и периодическими инструментами проверки целостности.
# Чтение текущего образа прошивки
$ sudo flashrom -p internal -r current_firmware.bin
# Вычисление хэша
$ sha256sum current_firmware.bin
# Сравните с известным хэшем
fwupd$ fwupdmgr get-devices # Список устройств с обновляемыми прошивками
$ fwupdmgr get-history # Проверить историю обновления прошивки
Предположим, вы запустили fwupdmgr get-history > history.txt:
# Парсинг лога истории fwupd поиска аномалий
with open("history.txt") as f:
for line in f:
if "Failed" in line or "Unknown" in line:
print("[!] Обнаружена потенциальная аномалия:", line.strip())
Рассмотрите возможность проведения тщательного тестирования побочных каналов для целей с высокой ценностью, особенно в криптографических или SCADA-деплойментах.
Комбинация инструментов сканирования оборудования и парсинга может упростить рабочие процессы обнаружения.
Пример: Сканируйте все устройства PCI, парсите для неизвестных поставщиков
lspci -nn | grep -i "unknown"
Пример интеграции Python и Bash:
import subprocess
output = subprocess.check_output(['lspci', '-nn'])
for line in output.decode().split('\n'):
if 'Unknown' in line:
print("[!] Обнаружено неизвестное оборудование:", line)
Хотя технология сложна, осведомленность пользователей остается важным фактором защиты.
Исследование 2021 года измеряло осведомленность об угрозах закладок среди пользователей Android. Результаты показали:
Вывод:
Безопасность — это не только инструменты, но и целевая образовательная работа с пользователями, особенно в условиях, когда закладки все больше угрожают потребительской электронике и IoT.
Аппаратные закладки, продемонстрированные на Black Hat и все чаще обсуждаемые в исследованиях, представляют опасную эволюцию в киберугрозах. Внедряя вредоносную логику ниже программного слоя, они позволяют злоумышленникам избегать обнаружения, переживать стирание системы и стойко скомпрометировать даже хорошо защищенные организации.
Всегда проверяйте вашу модель доверия к оборудованию. Следующая сложная атака может поджидать вас ниже уровня вашей операционной системы.
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.