
Аппаратные трояны (HT) стали одной из самых коварных угроз для целостности и безопасности современных интегральных схем (ИС) и систем на чипе (SoC). Поскольку глобализация распределила проектирование и производство чипов среди различных поставщиков и процессов, риск злонамеренных модификаций, внедрённых во время производства или на фабрике, стал основной проблемой в области аппаратной безопасности.
В этом техническом блоге будет рассмотрен продвинутый каркас для обнаружения аппаратных троянов с использованием контрастного обучения и данных о потреблении энергии. Мы расскажем о теоретической основе, современных методах обнаружения, реальных примерах и практических реализациях, включая примеры кода на Bash и Python для обработки данных, извлечения признаков и анализа. Наш путь охватывает уровни от начинающих до экспертов, предлагая широту и глубину для читателей с любым уровнем подготовки. На протяжении всего текста мы будем оптимизировать ключевые термины для SEO: обнаружение аппаратных троянов, контрастное обучение аппаратная безопасность и анализ побочных каналов питания.
Оглавление
Аппаратные трояны (HT) представляют собой злонамеренные изменения в проектировании или изготовлении интегральной схемы (IC), которые могут изменять поведение чипа, нарушать безопасность или утечки конфиденциальной информации. В отличие от программного вредоносного ПО, HT внедряются на глубоком физическом уровне и могут обходить традиционные меры безопасности.
Для более глубокого введения и обзора, смотрите "Introduction to hardware Trojan detection methods".
Обнаружение HT осуществлялось в разных фазах и с помощью различных техник.
Проект HOMERE — финансируемая Францией инициатива — суммировал комплексные подходы:
SEO Заметка: Парадигмы анализ побочных каналов аппаратных троянов, машинное обучение для аппаратной безопасности и ненадзорное обнаружение аномалий являются центральными в недавней литературе.
Недавняя статья в Nature Scientific Reports предлагает инновационный каркас, использующий контрастное обучение, применяемое к информации о потреблении энергии (источник). Этот многообещающий подход решает некоторые основные задачи:
Основная сложность в обнаружении аппаратных троянов состоит в нехватке размеченных заражённых образцов:
Контрастное обучение идеально подходит в этих условиях, так как может использовать пары или группы образцов для изучения дискриминативных представлений даже с минимальной истиной на земле.
Основной техникой в обнаружении аппаратных троянов является анализ побочных каналов (SCA). Давайте кратко рассмотрим его принципы, специализации и связь с машинным обучением.
См. "Hardware Trojans: Threats, Detection, and Prevention" для всестороннего обзора.
Давайте детализируем каждый этап с практическими инструкциями и примерами кода.
Предполагая USB-осциллограф с интерфейсом командной строки (my_scope_cli):
my_scope_cli --acquire --channel=CH1 --samples=100000 --rate=100MSa/s --output=power_trace1.csv
import numpy as np
import pandas as pd
from scipy import signal
# Загрузка трассы мощности
trace = pd.read_csv('power_trace1.csv', header=None).values.flatten()
# Применение низкочастотного фильтра Баттерворта
b, a = signal.butter(4, 0.1, 'low')
filtered_trace = signal.filtfilt(b, a, trace)
# Сегментация на окна по 1000 выборок
window_size = 1000
windows = np.array([filtered_trace[i:i+window_size] for i in range(0, len(filtered_trace), window_size)])
from scipy.stats import skew, kurtosis
def extract_features(window):
features = {
'mean': np.mean(window),
'std': np.std(window),
'skew': skew(window),
'kurtosis': kurtosis(window),
'max': np.max(window),
'min': np.min(window),
}
# FFT
fft = np.abs(np.fft.fft(window))[:len(window)//2]
features['fft_peak'] = np.max(fft)
features['fft_sum'] = np.sum(fft)
return features
feature_matrix = np.array([list(extract_features(w).values()) for w in windows])
Контрастное обучение – это самонаблюдаемый парадигм машинного обучения, в котором модель учится различать похожие и непохожие пары образцов.
Модель (например, нейронная сеть) обучена проецировать позитивные пары близко, а негативные пары далеко друг от друга в пространстве признаков.
Предположим, у нас есть оконные трассы и мы знаем, какие окна относятся к похожим/непохожим чипам.
import torch
import torch.nn as nn
import torch.optim as optim
class SimpleEncoder(nn.Module):
def __init__(self, input_dim, latent_dim):
super().__init__()
self.fc = nn.Sequential(
nn.Linear(input_dim, 128),
nn.ReLU(),
nn.Linear(128, latent_dim))
def forward(self, x):
return self.fc(x)
def nt_xent_loss(features, labels, temperature=0.5):
# features: (batch_size, latent_dim)
# labels: (batch_size,) с информацией о группе/классе
sim_matrix = torch.matmul(features, features.T) / temperature
labels = labels.unsqueeze(0) == labels.unsqueeze(1)
positives = sim_matrix[labels].view(labels.shape[0], -1)
negatives = sim_matrix[~labels].view(labels.shape[0], -1)
logits = torch.cat([positives, negatives], dim=1)
labels = torch.zeros(labels.shape[0], dtype=torch.long) # позитивы на индексе 0
return nn.CrossEntropyLoss()(logits, labels)
# Данные и метки Dummy:
# форма данных: (batch_size, feature_dim)
data_torch = torch.tensor(feature_matrix, dtype=torch.float)
labels_torch = torch.tensor([...]) # предоставленные метки групп
encoder = SimpleEncoder(input_dim=feature_matrix.shape[1], latent_dim=32)
optimizer = optim.Adam(encoder.parameters(), lr=1e-3)
encoder.train()
for epoch in range(100):
h = encoder(data_torch)
loss = nt_xent_loss(h, labels_torch)
loss.backward()
optimizer.step()
optimizer.zero_grad()
print(f'Epoch {epoch}, Loss: {loss.item()}')
После обучения новые трассы кодируются и сравниваются с распределением известных "хороших" образцов. Выбросы маркируются как потенциально заражённые.
Пример Bash (для 10 устройств):
for i in {1..10}
do
my_scope_cli --acquire --channel=CH1 --samples=100000 --rate=100MSa/s --output=power_device_${i}.csv
done
import glob
import pandas as pd
files = glob.glob('power_device_*.csv')
all_traces = []
for file in files:
trace = pd.read_csv(file, header=None).values.flatten()
all_traces.append(trace)
# Обработка всех трасс как показано ранее
Скрипт на Python:
import numpy as np
from scipy.stats import skew, kurtosis
def batch_extract(traces):
features = []
for trace in traces:
# Сегментация и извлечение признаков для каждого окна
windows = np.array([trace[i:i+1000] for i in range(0, len(trace), 1000) if len(trace[i:i+1000]) == 1000])
for w in windows:
features.append(list(extract_features(w).values()))
return np.array(features)
feature_matrix = batch_extract(all_traces)
Национальные оборонные подрядчики часто требуют аудитов на основе анализа SCA как часть программ доверенных производителей.
Производители умных медицинских устройств и промышленных датчиков контролируют устройства в поле.
Учитывая недавние инциденты с уязвимыми ECUs, автомобильные чипы регулярно проходят HT обнаружение как часть соблюдения (ISO/SAE 21434:2021 Road Vehicles – Cybersecurity).
Стратегия глубокой обороны включает HT обнаружение на нескольких стадиях:
HT обнаружение является критическим мостом между аппаратной частью и кибербезопасностью. Особенно важно в:
Аппаратные трояны становятся растущей угрозой в современном производстве чипов. С глобализированными цепочками поставок и всё большей сложностью чипов, анализ побочных каналов и передовые машины обучения, особенно ненадзорные или контрастные обучающие каркасы, предлагают надёжные и масштабируемые инструменты для обнаружения HT.
Ключевые выводы:
По мере того, как HT эволюционируют, так должны эволюционировать и наши методологии обнаружения – интегрируя последние достижения в области машинного обучения, анализа побочных каналов и безопасности цепочек поставок.
Каркас для обнаружения аппаратных троянов на основе контрастного обучения с использованием информации о потреблении энергии
https://www.nature.com/articles/s41598-024-81473-0
Введение в методы обнаружения аппаратных троянов
https://ieeexplore.ieee.org/document/7092490/
Аппаратные трояны: Угрозы, обнаружение и профилактика
https://dl.acm.org/doi/fullHtml/10.1145/3656766.3656856
ISO/SAE 21434:2021 Автотранспортные средства – Инженерия кибербезопасности
https://www.iso.org/standard/70918.html
Хотите узнать больше или сотрудничать в разработке open-source HT обнаружения? Свяжитесь с [Вашем Имя] или оставьте свои вопросы ниже!
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.