
В области информационной безопасности аппаратные закладки (hardware backdoors) являются одной из самых коварных угроз. В отличие от привычных программных уязвимостей, аппаратные закладки скрытны, устойчивы и крайне трудны для обнаружения или удаления. По мере того как мир всё больше полагается на встраиваемые системы, IoT-устройства и критически важную инфраструктуру, построенную на комплектующих сторонних компаний, риски, связанные с компрометацией «железа», растут.
Аппаратная закладка — это преднамеренное изменение или скрытая функция, встроенная в схемотехнику устройства без ведома пользователя. Она может предоставлять несанкционированный доступ, осуществлять утечку данных, манипулировать устройством или вовсе полностью компрометировать систему. [Wikipedia: Hardware backdoor][1]
В этой статье рассматривается «блокирование» аппаратных закладок — как они остаются невидимыми, обходят проверку, работают в скрытом режиме и что может сделать защитник для их выявления и нейтрализации.
Классическая кибер-защита концентрируется на ПО: антивирусы, файрволы, патч-менеджмент и т. д. Аппаратный уровень традиционно считается «якорем доверия» — многие априори полагают его надёжным. Это опасное заблуждение.
Причины, по которым аппаратные закладки сложно выявить:
Если злоумышленник встроил закладку на этапе производства чипа, конечному пользователю или даже системному интегратору почти невозможно её обнаружить.
Закладка может срабатывать, лишь когда во внутреннем регистре появляется уникальная комбинация данных в конкретный такт. До тех пор её не обнаружить ни по потреблению энергии, ни по логике.
По сообщениям, АНБ перехватывало оборудование по пути к заказчику и вживляло аппаратные или прошивочные закладки, обеспечивая будущий удалённый контроль.
В 1990-е годы в деле «Dragonfly» подозревали, что широко применяемый ускоритель криптографии содержит скрытую закладку.
Сообщалось, что китайские агенты внедрили мини-чипы на материнские платы Supermicro для удалённого доступа к серверам. Доказательств не представлено, но инцидент вызвал широкий резонанс.
Ряд правительств выражал опасения (с разной степенью доказательности), что роутеры и коммутаторы имеют встроенные аппаратные или прошивочные закладки.
Главная черта продвинутых закладок — тишина: они спят, сливаясь с фоном, пока не прозвучит точный триггер. В работе [Simha и др., 2011][2] показано, что троян может:
Найти аппаратную закладку куда сложнее, чем ПО-мульт. Тем не менее прогресс в анализе побочных каналов, формальной верификации и ML даёт надежду.
Хотя большинство OSS-утилит ориентировано на ПО, есть техники, полезные при анализе железа — поиск аномальных прошивок, неожиданных последовательных портов, мониторинг рантайма.
# Список tty-устройств
ls -l /dev/tty*
Проверка через minicom:
sudo minicom -D /dev/ttyUSB0
Найденный открытый порт может дать shell-доступ — скрытая физическая закладка.
# Bash: перечисление устройств
dmesg | egrep 'tty|uart|serial|spi|i2c'
# Python: извлечение подозрительных строчек
import subprocess, re
dmesg = subprocess.check_output(['dmesg'], text=True)
for entry in re.findall(r'(tty|uart|jtag|spi|i2c)[^\n]*', dmesg, re.I):
print(entry)
Закладки порой проявляются как неожиданные устройства, прошивки или открытые интерфейсы.
import subprocess
output = subprocess.check_output(['lsusb'], text=True)
for line in output.splitlines():
if 'Unknown' in line or 'debug' in line.lower():
print(f"Подозрительное USB-устройство: {line}")
else:
print(f"USB-устройство: {line}")
sudo nmap -p 623,664,5900,22,80,443 localhost
Открытые 623 (IPMI) или 664 (ASPEED BMC) на «не тем» хосте — красный флаг.
Нейросети, применяемые в чувствительных задачах (биометрия, IDS), могут сами стать жертвой аппаратных или аппаратно-ассистированных закладок.
Атаки по «чёрному ящику» работают, когда защитник не имеет доступа к внутренностям модели — типично при использовании сторонних pretrained-моделей в аппаратных приборах.
Исследование IEEE 2024 г. ([Wang и др., 2024][3]) предлагает метод обнаружения, опирающийся лишь на «жёсткие» метки выхода, без доступа к весам.
Ключевые подходы:
import torch, numpy as np
from torchvision import models, transforms
from PIL import Image
model = models.resnet18(pretrained=True).eval()
def predict(img):
t = transforms.ToTensor()(img).unsqueeze(0)
with torch.no_grad():
return model(t).argmax().item()
img = Image.open('test_image.jpg')
for noise in [0, 5, 10, 15]:
arr = np.array(img) + np.random.randint(-noise, noise, img.size, np.int16)
lbl = predict(Image.fromarray(np.uint8(np.clip(arr,0,255))))
print(f"Шум {noise}: метка {lbl}")
Внезапные скачки меток при малом шуме могут указывать на закладку.
Аппаратные закладки — тихая, зачастую невидимая угроза, против которой «софт-ориентированная» защита бессильна. Их способность к спячке и маскировке позволяет им обходить большинство проверок, делая «тишину» закладки технически изящной, а с точки зрения безопасности — крайне опасной.
Прогресс в обнаружении — от анализа побочных каналов до ML-диагностики — вселяет надежду. Однако окончательная линия обороны — это культура кибер-безопасности и дисциплина цепочки поставок, признание проблемы, инвестиции в верификацию и многоуровневая защита, охватывающая как «железо», так и софт.
Бдительность, прозрачность и неустанное тестирование — наши лучшие инструменты, чтобы разоблачить и «заглушить» угрозу аппаратных закладок в критически важных системах мира.
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.