
Идентификация бэкдоров в аппаратном обеспечении: сложности и методы
# Насколько сложно найти закладки, встроенные в оборудование?
## Оглавление
- [Введение](#введение)
- [Что такое аппаратная закладка?](#что-такое-аппаратная-закладка)
- [Определение](#определение)
- [Типы аппаратных закладок](#типы-аппаратных-закладок)
- [Почему аппаратные закладки опасны?](#почему-аппаратные-закладки-опасны)
- [История и примеры из реального мира](#история-и-примеры-из-реального-мира)
- [Скандал с материнской платой Supermicro из Китая](#скандал-с-материнской-платой-supermicro-из-китая)
- [Каталог АНБ ANT](#каталог-анб-ant)
- [Закладка в генераторе случайных чисел Dual_EC_DRBG](#закладка-в-генераторе-случайных-чисел-dual_ec_drbg)
- [Чиповые трояны в академических кругах](#чиповые-трояны-в-академических-кругах)
- [Как встраиваются аппаратные закладки?](#как-встраиваются-аппаратные-закладки)
- [Вставка на этапе проектирования](#вставка-на-этапе-проектирования)
- [Вставка на этапе изготовления](#вставка-на-этапе-изготовления)
- [Атаки на цепочки поставок](#атаки-на-цепочки-поставок)
- [Насколько сложно найти аппаратные закладки?](#насколько-сложно-найти-аппаратные-закладки)
- [Технические барьеры](#технические-барьеры)
- [Сложность современных аппаратных средств](#сложность-современных-аппаратных-средств)
- [Механизмы обнаружения](#механизмы-обнаружения)
- [Визуальный осмотр](#визуальный-осмотр)
- [Функциональное тестирование](#функциональное-тестирование)
- [Анализ побочных каналов](#анализ-побочных-каналов)
- [Формальная верификация](#формальная-верификация)
- [Реверс-инжиниринг и визуализация](#реверс-инжиниринг-и-визуализация)
- [Обнаружение аппаратных закладок в кибербезопасности](#обнаружение-аппаратных-закладок-в-кибербезопасности)
- [Обнаружение в лабораторных условиях](#обнаружение-в-лабораторных-условиях)
- [Программные контрмеры](#программные-контрмеры)
- [Образцы кода для обнаружения и анализа](#образцы-кода-для-обнаружения-и-анализа)
- [Сканирование с помощью Chipsec](#сканирование-с-помощью-chipsec)
- [Разбор вывода с помощью Python](#разбор-вывода-с-помощью-python)
- [Скрипт Bash для автоматизированного сканирования](#скрипт-bash-для-автоматизированного-сканирования)
- [Лучшие практики для безопасности оборудования](#лучшие-практики-для-безопасности-оборудования)
- [Заключение](#заключение)
- [Ссылки](#ссылки)
---
## Введение
В сфере кибербезопасности большинство разговоров вращается вокруг уязвимостей программного обеспечения: переполнения буфера, нулевые дни, программ-вымогателей и тому подобного. Но скрытая угроза находится ниже уровня операционной системы и даже ниже уровня микропрограммного обеспечения: **аппаратные закладки**. Это скрытые манипуляции на уровне микросхем или схем, которые могут обеспечить скрытый и постоянный доступ для злоумышленников и известны тем, что их крайне трудно обнаружить.
**Насколько сложно найти аппаратные закладки?** Этот пост в блоге исследует сложность, риски и стратегии обнаружения аппаратных закладок, от концепций до передовых технологий, с практическими и реальными примерами.
---
## Что такое аппаратная закладка?
### Определение
**Аппаратная закладка** — это преднамеренно вставленная уязвимость, секретная функция или скрытый канал связи в аппаратное устройство, такое как микропроцессор, сетевая карта или материнская плата, который позволяет несанкционированный доступ или управление, обходя все уровни безопасности программного обеспечения ([глоссарий NHIMG аппаратных закладок](https://nhimg.org/glossary/hardware-backdoor/)).
В отличие от программных закладок, которые можно исправить или обнаружить путем мониторинга работающих процессов, аппаратные закладки работают ниже уровня видимости большинства операционных систем и средств безопасности, что позволяет злоумышленникам получать постоянный, скрытый и потенциально необратимый доступ.
**Ключевые характеристики:**
- Устанавливаются на этапе проектирования или производства.
- Обходят или переопределяют стандартную безопасность.
- Невидимы для обычных системных сканеров и антивирусных инструментов.
- Могут быть активированы определенными данными, сигналами или синхронизацией.
### Типы аппаратных закладок
Аппаратные закладки могут быть нескольких видов:
- **Троянские схемы:** Вредоносная логика, внедренная в интегральные схемы (ИС) ([Infosec Institute](https://www.infosecinstitute.com/resources/hacking/hardware-attacks-backdoors-and-electronic-component-qualification/)).
- **Не задокументированные тестовые режимы:** Секретные режимы обслуживания/отладки, оставленные включенными в производственных кристаллах.
- **Злокачественные имплантаты:** Дополнительные чипы или компоненты, скрытые на печатных платах для перехвата или вывода данных.
- **Модификации микропрограмм/ПЗУ:** Закладочный код, установленный в микроконтроллерах, флеш-памяти или масочных ПЗУ.
---
## Почему аппаратные закладки опасны?
- **Постоянность:** Переустановка микропрограммы или ОС не удаляют аппаратную закладку.
- **Скрытность:** Работают ниже уровня операционной системы, недоступны для большинства средств.
- **Привилегия:** Могут наблюдать или контролировать все операции из привилегированной позиции.
- **Масштабное воздействие:** Если вставлены на этапе производства, могут скомпрометировать тысячи/миллионы устройств.
- **Невозможность исправления:** Требуют замены оборудования для полного устранения.
---
## История и примеры из реального мира
### Скандал с материнской платой Supermicro из Китая
В 2018 году Bloomberg [сообщила](https://www.bloomberg.com/news/features/2018-10-04/the-big-hack-how-china-used-a-tiny-chip-to-infiltrate-america-s-top-companies), что китайские субподрядчики якобы встроили "размером с рисовое зерно" чипы на материнские платы Supermicro, используемые американскими технологическими гигантами. Предполагается, что эти чипы позволяли злоумышленникам создавать ложные каналы связи. Индустрия в основном оспаривала эту историю, но инцидент подчеркнул всемирную озабоченность по поводу вмешательства в аппаратное обеспечение в цепочках поставок и трудности верификации или опровержения таких утверждений.
### Каталог АНБ ANT
Утечки документов АНБ описывают [аппаратные имплантаты](https://www.theguardian.com/world/interactive/2013/dec/12/nsa-ant-catalog-surveillance-december-2013), такие как модули эксплуатации для устройств Cisco, Juniper и Dell, и даже вредоносное USB-оборудование ("Cottonmouth") — демонстрирующие реальные государственные аппаратные закладки.
### Закладка в генераторе случайных чисел Dual_EC_DRBG
Хотя теоретически это "криптозакладка" на уровне алгоритма, [спор Dual_EC_DRBG RNG](https://en.wikipedia.org/wiki/Dual_EC_DRBG) показал, как закладочный алгоритм, реализованный на уровне чипов RNG, мог бы немедленно ослабить всю криптографию на десятилетия.
### Чиповые трояны в академических кругах
Исследователи неоднократно демонстрировали, что добавление небольших, скрытых функциональных модификаций ("троянских схем") к сложным ИС может оставаться незамеченным, но разрушительным, утечка криптографических ключей или вставка переключателей отключения ([Infosec Institute](https://www.infosecinstitute.com/resources/hacking/hardware-attacks-backdoors-and-electronic-component-qualification/)).
---
## Как встраиваются аппаратные закладки?
### Вставка на этапе проектирования
На самом раннем этапе, вредоносные функции можно вставлять во время **проектирования аппаратного обеспечения** — в HDL/RTL код (VHDL/Verilog), описывающий чип. Такие вставки могут:
- Добавлять скрытые инструкции, коды активации, тестовые схемы "бога".
- Модифицировать существующую логику для скрытого вывода данных.
### Вставка на этапе изготовления
Когда чипы изготавливаются, злоумышленники могут:
- Модифицировать маски, используемые для травления слоев кремния.
- Заменять ПЗУ/регистры в процессе сборки.
- Заменять или внедрять дополнительные мелкие чипы или управляющие элементы на печатных платах.
### Атаки на цепочки поставок
По мере продвижения аппаратного обеспечения от OEM к конечному заказчику, атакующие могут вмешаться в микропрограмму, заменять чипы или внедрять чужие печатные платы. [Атаки на цепочки поставок](https://www.infosecinstitute.com/resources/hacking/hardware-attacks-backdoors-and-electronic-component-qualification/) являются важным вектором для государственных акторов.
---
## Насколько сложно найти аппаратные закладки?
### Технические барьеры
**Поиск аппаратных закладок на порядки сложнее, чем программных:**
- Разборка и анализ чипов с гигабитной масштабируемостью дорогие, медленные и разрушающие.
- Отсутствие эталонных проектов: производители редко предоставляют чертежи чипов для сравнения.
- Закладки можно разрабатывать так, чтобы они активировались только при редких, трудно воспроизводимых условиях (например, последовательности кода, временном триггере).
### Сложность современных аппаратных средств
- Современные ЦП (Intel, AMD, ARM) имеют миллиарды транзисторов и непрозрачное проприетарное микропрограммное обеспечение (например, Intel ME, AMD PSP).
- Даже небольшие микроконтроллеры используют сложные, недокументированные режимы отладки/тестирования.
### Механизмы обнаружения
#### Визуальный осмотр
- **Сканирование рентгеном и электронная микроскопия:** Неразрушающая визуализация может обнаружить дополнительные чипы или необычные проводники на плате.
- **Ограничения:** Не видно логики подвложенных слоев, и высококвалифицированные атакующие могут скрыть модификации.
#### Функциональное тестирование
- Активировать все известные функции чипов и проверять реакцию на неожиданные входные данные.
- **Ограничения:** Закладки могут активироваться редкими, малоизвестными событиями.
#### Анализ побочных каналов
Изменение энергии связи, время, излучение ЭМ или потребление энергии могут выявить неожиданные активности, когда закладка активна (например, троянская схема). Однако требует сложной лабораторной настройки.
#### Формальная верификация
Формальная проверка логики может сравнить "подозреваемый" проект с "чистым" HDL для проверки различий в логике — но это возможно только при наличии эталона.
#### Реверс-инжиниринг и визуализация
- Деламинирование и визуализация чипа на нанометровом уровне с использованием сканирующих электронных микроскопов.
- Сравнение фактического кремния с эталонной компоновкой.
- **Недостатки:** Медленно, дорого, разрушающе. Практично только для целей с высоким уровнем воздействия.
---
## Обнаружение аппаратных закладок в кибербезопасности
### Обнаружение в лабораторных условиях
- Крупные организации (например, правительства, оборона, критическая инфраструктура) могут проводить судебную визуализацию, деламинирование и сравнение чипов.
- Коммерческие услуги теперь предлагают базовые рентгеновские снимки печатных плат, микроскопию и сравнение проводников.
### Программные контрмеры
- **Аттестация времени выполнения:** Мониторить состояние устройства на предмет неожиданных операций.
- **Анализ микропрограмм:** Сканировать на предмет изменений или недокументированных функций в микропрограммах устройств с использованием инструментов, таких как `chipsec`, `flashrom` или пользовательских скриптов.
---
## Образцы кода для обнаружения и анализа
Хотя аппаратные закладки редко можно обнаружить только с помощью программного обеспечения, некоторые инструменты могут сканировать на наличие *индикаторов* взлома, необычных микропрограмм, или неожиданных состояний устройств.
### Сканирование с помощью Chipsec
[`chipsec`](https://github.com/chipsec/chipsec) — это open-source набор инструментов для анализа безопасности аппаратного обеспечения ПК. Он может:
- Составлять список аппаратных устройств и возможностей.
- Проверять известные ошибки конфигурации микропрограмм.
- Анализировать процесс загрузки на предмет несанкционированных модификаций микропрограмм или флеш-памяти.
**Пример: Сканирование на несанкционированные изменения SPI Flash**
1. **Установка `chipsec` (требуется Python, права администратора):**
```bash
git clone https://github.com/chipsec/chipsec
cd chipsec
pip install -r requirements.txt
sudo python setup.py install
- Перечисление устройств платформы и запуск основных тестов:
sudo chipsec_main.py -i # Показать информацию о платформе
sudo chipsec_main.py -m common.bios_kbrd_buffer
sudo chipsec_main.py -m spi
- Проверка на модификацию ПЗУ:
sudo chipsec_main.py -m chipsec.modules.tools.uefi.scan
Обработка вывода с помощью Python:
Предположим, мы перенаправляем вывод модуля в файл и хотим разобрать его на индикаторы предупреждения.
import re
with open('chipsec_log.txt', 'r') as f:
data = f.read()
# Найдем все предупреждения или критические сообщения
issues = re.findall(r'(WARNING|CRITICAL):(.+)', data)
for level, message in issues:
print(f"[{level}] {message.strip()}")
Скрипт Bash для автоматизированного сканирования
Вы можете автоматизировать проверки безопасности аппаратного обеспечения с помощью Bash:
#!/bin/bash
LOGFILE="chipsec_scan.log"
echo "Сканирование на аномалии аппаратного/микропрограммного обеспечения $(date)" > $LOGFILE
# Запуск модулей chipsec
sudo chipsec_main.py -m spi >> $LOGFILE
sudo chipsec_main.py -m uefi.scan >> $LOGFILE
# Grep для предупреждений или аномалий
echo "Сводка возможных проблем:"
grep -E "WARNING|CRITICAL" $LOGFILE
Примечание: Эти инструменты помогают выявить легко заметные аномалии, а не глубокие троянские схемы.
Лучшие практики для безопасности оборудования
- Проверка источника: Покупайте у доверенных OEM с надежной безопасностью цепочек поставок.
- Обзор проектирования: Настаивайте на использовании открытого оборудования или проверяемых проектов HDL для критического использования.
- Проверка целостности микропрограммы: Используйте подписи кода, безопасную загрузку и аттестацию на основе TPM.
- Анализ в лаборатории для высокоценных целей: Делайте рентген, деламинирование и анализ устройств перед развертыванием.
- Блокировка устройств: Отключайте, физически блокируйте или отслеживайте неиспользуемые интерфейсы оборудования (JTAG, UART, SPI).
- Политика обновлений: Регулярно переписывайте авторизованные микропрограммы и тщательно контролируйте источники обновлений.
- Внимательность сообщества: Делиться разведывательной информацией и индикаторами компрометации между исследователями безопасности аппаратного обеспечения.
Заключение
Насколько сложно найти закладки, встроенные в оборудование? Одним словом: очень.
- Аппаратные закладки являются одними из самых скрытных угроз в пейзаже кибербезопасности, устойчивыми к переустановкам ОС и невидимыми для большинства средств обнаружения.
- Реальные инциденты и исследования показывают, что такие угрозы возможно и могут иметь разрушительное системное воздействие.
- Обнаружение аппаратных закладок обычно требует специфических знаний, дорогого оборудования и часто разрушающего тестирования, что делает рутинное сканирование недоступным для большинства пользователей.
- Однако, хорошие практики цепочек поставок, проверка открытого оборудования, аттестация микропрограмм и лабораторный анализ могут значительно снизить риск.
- Для большинства организаций ключевым является осознание, партнерство с доверенными поставщиками и внедрение надежной политики безопасности оборудования.
Помните: Чем глубже вы идете, тем труднее становится — не пренебрегайте корнем доверия в своей модели безопасности!
Ссылки
- Насколько сложно найти закладки, встроенные в оборудование? (Quora)
- Что такое аппаратная закладка? Определение и примеры (NHIMG)
- Атаки на аппаратное обеспечение, закладки и квалификация электронных компонентов (Infosec Institute)
- chipsec: Framework оценки безопасности платформ
- Bloomberg: Большой взлом / чипы Supermicro
- Каталог NSA ANT
- Wikipedia: Hardware Trojan
- Dual_EC_DRBG - Wikipedia
Для лидеров в области кибербезопасности и пользователей оборудования бдительность и многослойное доверие жизненно важны. Будьте информированы, будьте скептичны и защищайте свой корень доверия!
Поднимите свою карьеру в кибербезопасности на новый уровень
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.
