
硬件木马(HT)已成为现代集成电路(IC)和系统芯片(SoC)完整性与安全性中最隐蔽的威胁之一。随着全球化将芯片设计和制造分布于各种供应商和工艺之间,在生产过程中或代工厂中插入的恶意修改风险成为硬件安全领域的主要关注点。
本文将探讨一个先进的基于对比学习和电力消耗数据的硬件木马检测框架。我们将涵盖理论背景、现代检测技术、实际案例和实践实现——包括用于数据处理、特征提取和分析的 Bash 和 Python 代码示例。我们的探讨范围从初学者到专家级,提供给各个背景的读者全面和深入的内容。全篇我们优化了关键的 SEO 术语:硬件木马检测、对比学习硬件安全_和_电力侧信道分析。
目录
硬件木马(HT) 是集成电路(IC)设计或制造过程中加入的恶意修改,可以改变芯片行为、破坏安全性或泄露敏感数据。不同于软件恶意软件,HT 以深层次的物理方式嵌入,能够绕过传统安全防御措施。
若需更深入的介绍和概览,请参阅 "硬件木马检测方法介绍"。
HT 的检测可在不同阶段和技术中进行处理。
HOMERE 项目 —— 一个法国资助的计划,提供全面的解决方案:
SEO 注意: 最近文献中,侧信道分析硬件木马、机器学习硬件安全 和 无监督异常检测 是核心主题。
在 Nature Scientific Reports 上发表的一篇最新论文提出了一种创新的利用电力消耗信息进行对比学习的框架(来源)。这一极具前景的方法解决了一些核心挑战:
硬件木马检测中的主要挑战是受感染样本标签的稀缺:
在这些场景中,对比学习是理想的,因为它可以利用样本对或样本组学习判别性特征,即使仅有极少的地面真实标识。
硬件木马检测中的一个基础技术是侧信道分析(SCA)。让我们简要回顾其原理、专业化及与机器学习的连接。
参阅 "硬件木马:威胁、检测与防御" 以获取全面的概述。
让我们通过实际说明和代码片段详细描述每个阶段。
假设使用命令行 API (my_scope_cli) 的 USB 示波器:
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,) with group/class information
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) # positives at index 0
return nn.CrossEntropyLoss()(logits, labels)
# Dummy data and labels:
# data shape: (batch_size, feature_dim)
data_torch = torch.tensor(feature_matrix, dtype=torch.float)
labels_torch = torch.tensor([...]) # provided group labels
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 的审核作为可信代工厂计划的一部分。
智能医疗设备和工业传感器的制造商在现场监控设备。
鉴于最近的 ECU 漏洞事件,汽车芯片通常作为合规性(ISO/SAE 21434:2021 道路车辆——网络安全工程)的一部分进行 HT 检测。
纵深防御战略 将 HT 检测整合到多个阶段中:
HT 检测是硬件与网络安全之间的重要桥梁。在以下领域尤为重要:
硬件木马是现代芯片制造中日益严重的威胁。在全球化供应链和日益复杂的芯片背景下,侧信道分析与先进机器学习——特别是无监督或对比学习框架——为 HT 检测提供了稳健且可扩展的工具。
关键要点:
随着 HT 的发展,我们的检测方法也必须进化——融合机器学习、侧信道分析和供应链安全的最新进展。
基于电力消耗信息的对比学习硬件木马检测框架
https://www.nature.com/articles/s41598-024-81473-0
硬件木马:威胁、检测与防御
https://dl.acm.org/doi/fullHtml/10.1145/3656766.3656856
ISO/SAE 21434:2021 道路车辆——网络安全工程
https://www.iso.org/standard/70918.html
想了解更多或参与开源 HT 检测?请联系 [您的姓名] 或在下方留言!