
Периодически повторяющееся утверждение, встречающееся в онлайн-форумах и в сообществе информационной безопасности - это "в каждом современном компьютере есть аппаратная закладка, так зачем вообще заморачиваться с кибербезопасностью?". Такие выражения порождены паранойей, периодическими разоблачениями наблюдения со стороны государственных акторов и серьезными исследованиями аппаратных уязвимостей и внедрений в цепочку поставок. Однако техническая реальность аппаратных закладок, их осуществимость и влияние на кибербезопасность — от ноутбуков обычных пользователей до центров обработки данных с высоким уровнем безопасности — это сложные темы, требующие тщательного и детального изучения.
В этой статье мы разберем, что такое аппаратные закладки и как (или есть ли) они присутствуют в современных вычислительных устройствах. Мы обсудим реальные примеры, почему аппаратные закладки так тревожат с точки зрения безопасности, практическую реальность их обнаружения и устранения, а также меры, которые вы можете предпринять — от базовой осведомленности до передового обнаружения. По пути мы используем инструменты ОС и скрипты (Bash, Python), чтобы показать, как защитники и исследователи подходят к анализу аппаратного обеспечения.
Ключевые слова: аппаратная закладка, аппаратная безопасность, атака на цепочку поставок, кибербезопасность, прошивка, обнаружение, защита компьютеров, аппаратные руткиты, угроза постоянного доступа
Аппаратная закладка — это метод, часто скрытый и недокументированный, встроенный в физический дизайн или прошивку электронных компонентов, который позволяет злоумышленникам или скрытым субъектам обходить ограничения безопасности, получать контроль или извлекать данные.
Эти закладки могут существовать на разных уровнях:
Некоторые закладки намеренно устанавливаются производителями для отладки или поддержки, другие могут быть злонамеренно вставлены в процессе проектирования или в глобальной цепочке поставок аппаратного обеспечения.
С ростом интернационализированного производства аппаратного обеспечения и все более сложными чипами, немало современных устройств находится под угрозой компрометации на этапах цепочки поставок или проектирования. Часто упоминаются сложные системы на кристаллах (SoC), которые могут иметь миллионы или миллиарды транзисторов, что делает их практически недоступными для тщательной проверки большинством организаций.
Кроме того, такие основные системные компоненты, как:
...на практике являются черными ящиками, имеющими полный доступ к системной памяти, сети, а иногда и к постоянным хранилищам данных, выполняя свой код за пределами видимости вашей основной ОС.
Даже Каталог ANT АНБ, раскрытый в утечках Сноудена, показал аппаратные закладки, предназначенные для постоянного доступа к целевым конечным точкам.
Хотя утверждение, что каждое устройство намеренно содержит закладки, является преувеличением, сама по себе сложность и непрозрачность аппаратного обеспечения (особенно закрытых прошивок) представляют собой неизменный риск — ведь окончательно исключить его для любого конкретного устройства весьма сложно.
В 2018 году Bloomberg опубликовал взрывной отчет, утверждающий, что в материнские платы серверов Supermicro, используемых крупными компаниями США, были вставлены маленькие чипы слежения, позволяющие удаленным злоумышленникам извлекать данные и контролировать системы. Последующие расследования не смогли подтвердить конкретные факты, но история подчеркнула правдоподобность и ужас атаки на цепочку поставок аппаратного обеспечения.
Документы, утекшие от Эдварда Сноудена, описывают тактики АНБ, такие как "перехват" — физический перехват доставляемого оборудования, внедрение шпионских чипов или модифицированной прошивки, а затем пересылка к оригинальному месту назначения.
Червь Stuxnet эксплуатировал не только программные уязвимости, но также манипулировал аппаратной логикой ПЛК Siemens для саботажа иранских центрифуг. Хотя это не было "закладкой" в полном смысле, Stuxnet продемонстрировал, как манипуляция прошивкой/оборудованием может подрывать даже изолированные от сети системы.
В 2019 году злоумышленники скомпрометировали канал обновлений ПО Asus, распространяя злонамеренные обновления прошивки на десятки тысяч ноутбуков по всему миру. Сложность современных поставок обновлений делает атаки на цепочку поставок аппаратного/программного обеспечения привлекательными для противников.
Исследователи продемонстрировали, что прошивку USB можно перепрограммировать на аппаратном уровне, чтобы работать как вредоносные HID-устройства, устанавливать вредоносное ПО или перехватывать трафик, обходя традиционные средства защиты ОС.
Аппаратные закладки представляют собой худший сценарий в безопасности:
IME выполняет ОС на базе Minix на скрытом сопроцессоре, имея полный доступ к системной оперативной памяти и сети, но не является напрямую управляемым пользователями или администраторами. Ошибки, конструктивные недостатки или закладки здесь пугают — недавние высокоуровневые уязвимости IME (например, Intel-SA-00086) затронули почти десятилетие процессоров.
Короткий ответ: для большинства пользователей — нет. Для специализированных исследователей — иногда.
Почему?
Вы можете (иногда) сбросить прошивку с:
...и сравнить ее с известными изображениями, проверить на странные/неожиданные изменения, или просканировать на наличие известных сигнатур вредоносного ПО.
Необычный сетевой трафик (например, от BMC/IME на неизвестные IP-адреса), необъяснимые перезагрузки системы или постоянное вредоносное ПО могут быть признаками компрометации на более низком уровне.
С помощью инструментов, таких как рентгеновская съемка и электронная микроскопия, эксперты могут сравниться подозрительные чипы с планируемыми макетами — в основном доступно государственным агентствам или крупным OEM-производителям.
Хотя невозможно "увидеть" аппаратную закладку напрямую, вы можете просмотреть, сохранить и тщательно изучить некоторые образы прошивки и поведение системы с помощью наборов инструментов с открытым исходным кодом. Ниже приведены практические методы, ориентированные на потребительский доступ к анализу.
flashrom# Перечислить поддерживаемые чипы
sudo flashrom -p internal
# Сохранить ваш BIOS в файл
sudo flashrom -p internal -r bios_backup.bin
# (опционально) Сравнить резервную копию с известным хорошим образом (если доступно)
cmp bios_backup.bin known_good_bios.bin
Вы можете анализировать образы прошивки на наличие подозрительных паттернов или строк.
strings bios_backup.bin | less
binwalk -e bios_backup.bin
Вы можете написать скрипты на Python для поиска известных подписей закладок или подозрительных сетевых конечных точек:
# Пример: Поиск подозрительных IP-адресов в сохраненной прошивке
import re
with open('bios_backup.bin', 'rb') as f:
data = f.read()
# Регулярное выражение для IP-адресов (IPv4)
ips = re.findall(rb'\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b', data)
unique_ips = set(ips)
print("Найденные IP-адреса:")
for ip in unique_ips:
print(ip.decode())
sudo tcpdump -i eth0 port 16992 or port 623
sudo netstat -ntp
Идентифицируйте фоновые соединения от устройств, таких как BMC или IME, которые не должны "дозваниваться".
Linux:
# Перечислить PCI-устройства (следите за неизвестными/безымянными устройствами)
lspci -nn
# Проверить дерево USB-устройств
lsusb
# Перечислить все оборудование, включая встроенные контроллеры
lshw -short
Анализ с помощью Python:
import subprocess
output = subprocess.check_output(['lspci', '-nn']).decode()
for line in output.split('\n'):
if 'Unknown' in line or 'unclassified' in line:
print("Подозрительное PCI устройство:", line)
Сравните прошитую прошивку с подписанными или предоставленными производителем хэшами, если доступно:
sha256sum bios_backup.bin
# Сравнить выходные данные с хэшом от производителя (если доступно)
Если возможно, используйте прошивку с открытым исходным кодом (например, coreboot, Libreboot) на поддерживаемом оборудовании. Эти инициативы стремятся заменить закрытый, проприетарный код BIOS/UEFI контролируемыми и минимальными альтернативами, уменьшая риск производственных закладок.
Реалистично, средний пользователь мало что может сделать, чтобы "удалить" аппаратные закладки из современного коммерческого устройства. Однако вы можете снизить риск и усилить свой уровень осведомленности.
1. Предпочитайте открытое оборудование и прошивку
2. Изолируйте движки управления
3. Мониторьте исходящий трафик
4. Практикуйте хорошую гигиену цепочки поставок
5. Учитывайте модель угрозы
6. Регулярно обновляйте прошивку
7. Используйте воздушные зазоры и физическую изоляцию
lspci/lsusb и контролировать сетевой трафик, но обнаружение вложений на уровне кремния недоступно для потребительского уровня.Страхи по поводу аппаратных закладок обоснованы, особенно для тех, у кого противниками могут быть государственные акторы или хорошо обеспеченные злоумышленники. Тем не менее, для широкой публики и большинства организаций вероятность компрометации на уровне аппаратной закладки остается значительно ниже программной эксплуатации.
При этом, аппаратные атаки все-таки случаются, подделка цепочки поставок является растущей угрозой, и отсутствие прозрачности в наших самых основополагающих вычислительных платформах представляет реальную и настоящую опасность для тех, кто заботится о конфиденциальности и безопасности.
В кратце:
Вопрос не в том, "почему заморачиваться?", а в том, как продолжать бороться за надежное оборудование, не пренебрегая основами операционной безопасности.
Есть вопросы или предложения? Оставьте их в комментариях или свяжитесь с нами через [защищенную почту/контакт]!
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.