
在全球化硬件制造和日益复杂的攻击时代,硬件系统的完整性和安全性已成为一个关键问题。日益增长的威胁之一是硬件木马(HT),这是一种对集成电路(IC)的恶意修改形式,可能会危害商用和国防系统的预期功能、可靠性、机密性或可用性。由于其能够绕过标准安全措施及难以检测到伪装良好的木马的能力,硬件木马检测已成为硬件安全研究的核心话题。
本文是一篇综合性文章,介绍了硬件木马的基础知识,总结了HT检测的最新进展,特别提及了法国资助的HOMERE项目,并提出了包括基于机器学习的方法在内的最先进的方法。此外,您还可以找到现实世界的例子、使用案例以及代码示例,以展示如何从实际角度接近HT检测,包括使用Bash和Python脚本进行IC数据分析。无论您是该领域的新手还是高级网络安全专业人士,本文将指导您了解当今硬件供应链中硬件木马检测和预防的基本技术和考虑因素。
**硬件木马(HT)**是一种在硬件设计或集成电路(IC)中恶意、故意插入的修改,它可以以隐秘方式改变电路的功能,降低其性能,泄露机密信息,或颠覆芯片的操作。与软件威胁不同,HT在物理层面或设计级嵌入,使得在制造后尤其难以检测和减轻。
现代IC供应链是全球分布的,涉及多个第三方供应商和制造地点。这种全球化增加了风险,使得攻击者可以在任何阶段插入HT——设计、制造、组装、测试,甚至是在现场。
HT不仅对硬件的正确性和可靠性构成严重威胁,也对网络安全系统的信任基础形成威胁。木马可能导致:
2018年,彭博社报道了一些服务器主板供应商添加的微芯片让攻击者有了访问主要数据中心的后门,强调了HT的现实世界严重性(尽管特别的声明受到质疑,但它增强了对硬件供应链威胁的意识)。
HT可以通过其位置、激活机制、效果(载荷)和物理特性来进行描述。
| 类型 | 描述 | 示例 |
|---|---|---|
| 组合木马 | 由罕见的逻辑条件激活 | 多次复位后触发的恶意逻辑 |
| 顺序木马 | 需要特定事件序列 | 状态机达到罕见状态 |
| 定时炸弹木马 | 随着时间或在特定时间后触发 | 在一定时间后导致拒绝服务 |
| 参数木马 | 改变时序、功率或可靠性 | 信号退化导致电路故障 |
| 始终在线木马 | 始终活跃,泄露数据 | 通过功率泄露密钥的旁道攻击 |
物理例子:
传统上,硬件木马检测依赖于两大类: 逻辑测试和旁道分析。两者可以应用于不同阶段(设计前-硅片,设计后-硅片,或在现场)。
1. 对被测IC应用测试输入模式。
2. 使用时间分辨探头测量转换延迟。
3. 将统计数据(均值,方差)与参考黄金IC比较。
4. 标记显著异常或异常分布。
HOMERE项目 ("Hardware Obfuscation and METrology for the Robust Evaluation of hardware security Equipment") 是一个法国资助的研究计划,专注于硬件安全,重点关注木马检测进展 (见IEEE Xplore总结)。
HOMERE的研究显示在识别隐蔽木马方面取得了显著进展,特别是那些设计用于规避传统检测的木马。此外,结果表明侧信道数据的统计聚合显著提高了检测的稳健性。
随着现代IC的复杂性和硬件木马的复杂性增加,机器学习(ML) 已成为自动化和提高检测准确性的重要工具 (ACM TETC评论)。
[IC测试] --> [数据预处理] --> [特征选择/提取] --> [模型训练] --> [检测]
多数ML训练的检测器需要无木马(黄金)参考进行训练,这在大规模分布式制造中并不总是可行。新的研究正在探索半监督和非监督模型,异常/离群检测技术和稳健的特征工程来放松这一要求。
以下是一个简化的工作流,展示了如何应用机器学习模型来对功率测量进行分类,从而指出IC是否无木马或可能受感染。
虽然大多数现实世界的IC测试使用专用实验室设备,但命令行和脚本方法可以自动化检测工作流的某些方面——特别是数据分析、信号预处理和结果聚合。以下提供了处理测试数据和运行检测算法的实际代码示例。
假设您是晶圆厂的安全工程师,负责自动化获取并比较IC的功率签名。
假设:
golden1.txt,golden2.txt,...,test1.txt,...)中,每个文件包含时间序列数据。#!/bin/bash
# 包含测量文件的目录
MEAS_DIR="/path/to/measurements"
# 黄金文件列表
GOLDENS=$(ls $MEAS_DIR/golden*.txt)
# 测试文件列表
TESTS=$(ls $MEAS_DIR/test*.txt)
echo "黄金样本统计:"
for file in $GOLDENS; do
MEAN=$(awk '{sum+=$1} END {print sum/NR}' "$file")
VAR=$(awk '{sum+=$1; sumsq+=$1*$1} END {print (sumsq/NR)-(sum/NR)**2}' "$file")
echo "$(basename $file): 均值=$MEAN, 方差=$VAR"
done
echo -e "\n测试样本统计:"
for file in $TESTS; do
MEAN=$(awk '{sum+=$1} END {print sum/NR}' "$file")
VAR=$(awk '{sum+=$1; sumsq+=$1*$1} END {print (sumsq/NR)-(sum/NR)**2}' "$file")
echo "$(basename $file): 均值=$MEAN, 方差=$VAR"
done
# 可选,将结果写入.csv以便进一步Python分析
该脚本计算基本的侧信道统计以便进一步分析,并标记偏离黄金条目的IC。
假设您想要进行更丰富的分析,例如可视化数据或应用机器学习模型。
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
from sklearn.ensemble import IsolationForest
def load_trace(filename):
return np.loadtxt(filename)
# 加载黄金和测试数据集
golden_files = ['golden1.txt', 'golden2.txt']
test_files = ['test1.txt', 'test2.txt', 'test3.txt']
def extract_features(signals):
features = []
for sig in signals:
mean = np.mean(sig)
var = np.var(sig)
skew = stats.skew(sig)
kurt = stats.kurtosis(sig)
features.append([mean, var, skew, kurt])
return np.array(features)
golden_signals = [load_trace(f) for f in golden_files]
test_signals = [load_trace(f) for f in test_files]
# 特征提取
golden_features = extract_features(golden_signals)
test_features = extract_features(test_signals)
# 在“黄金”特征上拟合一个异常森林
clf = IsolationForest(contamination=0.1, random_state=42)
clf.fit(golden_features)
# 在测试特征上预测
preds = clf.predict(test_features)
for i, f in enumerate(test_files):
print(f"{f} is {'SUSPECT' if preds[i] == -1 else 'SAFE'}")
# 可选,可视化
plt.scatter(golden_features[:,0], golden_features[:,1], c='g', label='Golden')
plt.scatter(test_features[:,0], test_features[:,1], c='r', marker='x', label='Test')
plt.xlabel('Mean')
plt.ylabel('Variance')
plt.legend()
plt.title('Power Signal Feature Comparison')
plt.show()
解释:
检测至关重要,但更有效的是木马预防——使攻击者插入木马变得困难或不可能。
随着硬件系统的复杂性和价值不断增长,IC的安全和可信度成为现代社会的基础——影响从云计算到国防系统及关键基础设施的一切。硬件木马依然是由于其隐蔽性、影响力和不可检测利用而存在的最严重的威胁之一。
包括HOMERE项目在内的研究人员正在推动HT检测的前沿。其进步尤其显著于:
实用的方法——从简单的Bash脚本用于数据处理到高级的基于Python的ML检测——能够使工程师和安全研究人员将这些技术引入实际的大规模环境中。
硬件攻击者和防御者之间的斗争是持续和不断发展的。掌握硬件木马检测和预防将继续成为未来数年内整合工程、网络安全和数据科学的一项重要而激动人心的领域。
硬件木马检测:进展和视角(HOMERE项目)
https://ieeexplore.ieee.org/document/7092490/
使用机器学习的硬件木马检测
https://dl.acm.org/doi/full/10.1145/3579823
硬件木马检测和预防 - Dr. Domenic Forte, 佛罗里达大学
https://faculty.eng.ufl.edu/dforte/research/hardware-trojan-detection-and-prevention/
硬件木马检测方法
https://www.sciencedirect.com/science/article/pii/S136324091830035X (开放评论)
scikit-learn: Python中的机器学习
https://scikit-learn.org/stable/
关键词:硬件木马, IC安全, 木马检测, 供应链安全, 旁道分析, 机器学习硬件安全, 黄金参考IC, HOMERE项目, Bash功率分析, Python异常检测, 硬件网络威胁, 安全芯片设计, 网络安全硬件防御。