侧信道攻击如何从嵌入式AI中窃取Logits并生成对抗样本
2026/5/9 17:50:31 网站建设 项目流程

1. 项目概述:当侧信道攻击撕开嵌入式AI的黑盒

在嵌入式AI的世界里,我们常常把部署在微控制器(MCU)或边缘设备上的神经网络模型看作一个“黑盒”——输入数据,得到预测结果,内部的计算过程如同一个不透明的魔法。这种黑盒特性,一度被认为是模型知识产权和系统安全的一道屏障。然而,最近几年,一种源自密码学硬件安全领域的古老技术——侧信道攻击,正在悄然改变这个局面。它不尝试破解复杂的算法,而是像一个精明的侦探,通过监听设备运行时泄露的“物理蛛丝马迹”,比如功耗的细微波动或电磁辐射的特定模式,来反推其内部的秘密。

我最近深入研究了一项来自AISec‘23会议的前沿工作,它生动地展示了侧信道攻击如何系统性地打破嵌入式AI的黑盒假设。这项研究没有去攻击复杂的卷积层或全连接层,而是瞄准了一个看似平凡却至关重要的环节:Softmax函数。通过在ARM Cortex-M7芯片上,针对流行的轻量级神经网络部署框架NNOM,研究者成功地从电磁辐射信号中提取出了模型分类前的原始得分——Logits。更关键的是,他们利用提取到的Logits,结合黑盒对抗样本生成技术,完成了从物理信息窃取到生成可欺骗模型的恶意样本的“端到端”攻击链。

这不仅仅是一个学术演示。对于从事物联网安全、边缘AI部署或硬件安全的工程师来说,这意味着我们必须重新评估嵌入式AI系统的安全边界。模型参数和架构的保密,可能并不足以抵御一个拥有物理访问权限、手持示波器的攻击者。本文将带你深入拆解这项攻击的完整逻辑、技术细节与实操要点,理解攻击者如何步步为营,以及我们作为防御方又该如何思考。

2. 攻击蓝图:威胁模型与核心思路拆解

任何有效的攻击分析都必须始于清晰的威胁模型。这定义了攻击者的能力、目标和环境,是我们理解攻击可行性与严重性的基石。

2.1 威胁模型:攻击者画像与能力假设

这项研究设定了一个强有力但并非不现实的攻击者画像:

  1. 物理访问能力:攻击者能够物理接触到目标设备(标记为 D*)的一个同款硬件副本(标记为 D)。这听起来要求很高,但在许多场景下是可能的。例如,攻击者可能是供应链中的恶意内部人员、负责硬件设计的团队成员,或者仅仅是购买了一台相同的商用设备(比如同一批次的智能摄像头或物联网网关)。拥有副本设备D是进行模板攻击剖析式侧信道攻击的关键前提。
  2. 软件/框架知识:攻击者知道目标设备上运行的是哪个深度学习部署框架(在本案例中是NNOM)。开源框架的广泛使用使得这一假设非常合理。攻击者甚至可以根据开源代码,在自己的设备D上复现一个功能相同的神经网络推理程序。
  3. 测量能力:攻击者配备有高精度的示波器和电磁探头,能够采集目标设备D*在运行时的功耗或电磁辐射轨迹。这是侧信道攻击的“眼睛”。
  4. 攻击阶段:攻击发生在模型的推理阶段。模型已经训练完毕并部署,攻击者的目标不是篡改训练过程,而是窥探运行时的内部状态。
  5. 对模型知识的假设:这是本攻击最巧妙的一点——攻击者无需知道目标神经网络的具体架构(如层数、神经元数量)。因为攻击的目标是Softmax函数,这是一个与具体网络架构无关的、标准的后处理函数。只要目标模型使用了NNOM框架的local_softmax_q7()函数,攻击就成立。

这个威胁模型描绘了一个具备专业硬件分析技能的内部或近距离攻击者,其目标是从运行中的黑盒模型里,提取出关键的Logits信息。

2.2 核心攻击路径:从物理泄露到对抗样本

整个攻击流程可以清晰地分为两个阶段,如下图所示(概念图):

[阶段一:侧信道剖析与Logits提取] 拥有副本设备D 面对目标设备D* | | |--- 1. 剖析阶段 ----------------------| | 在D上运行已知输入的模型, | | 同时采集其电磁轨迹, | | 建立“输入Logits值”与“轨迹特征”的映射模型。| | | |--- 2. 攻击阶段 ----------------------| | 对D*输入未知数据, | 采集少量(如5条)轨迹, | 使用阶段一训练的模型, | 预测出D*内部产生的Logits值。 | | +----------------> 成功提取Logits <----+ [阶段二:基于Logits的黑盒攻击] | |--- 3. 对抗样本生成 ------------------| 将提取的Logits视为“白盒信息”, 输入到ZOO等无需梯度的黑盒攻击框架中, 优化生成对抗样本,欺骗原模型。

为什么选择Softmax和Logits?这体现了攻击者的精明选择。直接攻击大型神经网络的中间层计算,数据流复杂,噪声干扰大。而Softmax函数是推理管道的最后一步,输入是固定长度的Logits向量(例如MNIST的10个值),输出是归一化的概率。攻击这个函数,目标明确(固定位置、固定长度的数据),且Logits直接反映了模型对输入的分类置信度,是生成高质量对抗样本的黄金信息。

攻击的泛化性:由于攻击的是框架层面的通用函数(Softmax的实现),而非某个特定网络的权重,因此该攻击方法可以跨模型迁移。只要目标设备使用相同的框架(NNOM)和类似的软硬件环境,攻击一套剖析模型,就可能威胁到部署在该平台上的多种不同AI模型。

3. 靶心剖析:NNOM框架Softmax函数的安全缺陷

任何侧信道攻击都需要找到一个“泄漏点”。在这个案例中,研究人员通过代码审计,在NNOM框架的量化Softmax函数实现中找到了这样一个点。

3.1 关键代码与汇编泄漏分析

NNOM框架的local_softmax_q7()函数采用了一种优化策略来避免在资源受限的MCU上计算昂贵的指数运算。其核心步骤之一是寻找Logits向量中的最大值。以下是其简化后的C代码逻辑:

// 假设 base 初始化为一个很小的值,例如 -257 for (i = 0; i < dim_vec; i++) { if (vec_in[i] > base) { // vec_in 即 Logits 向量 base = vec_in[i]; } }

这段代码遍历Logits数组,不断更新base变量为当前最大值。问题就出在这个简单的比较和赋值操作上。当这段C代码被编译成ARM Cortex-M7的汇编指令后,关键操作暴露无遗:

; 对应 if (vec_in[i] > base) ldr r3, [r7, #32] ; 加载循环索引 i 的地址 ldr r2, [r7, #12] ; 加载Logits数组基地址z add r3, r2 ; 计算当前Logit元素 z[i] 的地址 ldrsb.w r3, [r3] ; 【关键泄漏点】将 z[i] 的值从内存加载到寄存器 r3 sxth r3, r3 ; 符号扩展 ldrsh.w r2, [r7, #30] ; 【关键泄漏点】将当前 base 值加载到寄存器 r2 cmp r2, r3 ; 比较 base 和 z[i]

泄漏原理:在嵌入式系统中,当CPU执行ldrsb.w(加载有符号字节)和ldrsh.w(加载有符号半字)这类数据加载指令时,其功耗或电磁辐射会与所加载数据的汉明重量(二进制表示中‘1’的个数)或数据值本身高度相关。这是因为从内存或缓存到寄存器的数据总线上的电平翻转、内部电路的门控活动都与传输的数据位模式有关。

因此,每当循环执行一次:

  1. 加载z[i]r3时,泄漏了第i个Logit的值。
  2. 加载baser2时,泄漏了当前已找到的最大值。

由于Logits是8位量化整数,其值范围有限(例如-128到127),攻击者可以通过分析这些加载指令执行时刻的侧信道轨迹,来推断出正在处理的具体数值。

3.2 实验设置与数据采集

为了验证这一漏洞,研究团队搭建了标准的侧信道分析平台:

  • 目标硬件:STM32F767 Nucleo-144开发板,核心为ARM Cortex-M7 MCU,运行频率216MHz。搭载一个用TensorFlow训练、经NNOM转换并部署的DenseNet模型,用于MNIST手写数字识别。
  • 数据采集
    • 传感器:Langer RF-U 2.5电磁探头,搭配ZFL-2000G+放大器,捕获30MHz至3GHz的电磁辐射。
    • 采集设备:Lecroy WaveRunner 625Zi示波器(2.5 GHz带宽)。
    • 触发:在local_softmax_q7()函数执行前后设置硬件触发,精准抓取该函数运行期间的电磁轨迹。
  • 数据规模:对于每一个待攻击的Logit(共10个),在剖析设备D上采集了190万条轨迹用于训练剖析模型;在攻击目标设备D*时,仅需采集1000条轨迹用于实际攻击。

实操心得:触发设置是关键在实际侧信道分析中,从漫长的程序执行轨迹中精准定位到目标代码段(如Softmax函数)是第一步,也是成败的关键。通常有两种方法:

  1. 软件触发:在目标函数开始和结束处插入使能GPIO引脚高低电平变化的代码。示波器则监视该GPIO引脚,以其跳变作为触发信号。这是最精准的方法,但需要修改目标固件。
  2. 模式识别触发:如果无法修改代码,则需要通过观察大量的功率或电磁轨迹,找到与目标函数执行对应的独特波形模式(例如,一段规律性的循环脉冲),并以此模式设置示波器的触发条件。这需要一定的经验。 本研究中采用了第一种方法,在NNOM源码中加入了触发代码,确保了轨迹对齐的准确性,大大降低了后续信号处理的难度。

4. 攻击三部曲:三种侧信道分析方法实战解析

有了泄漏点和数据,下一步就是如何从嘈杂的轨迹中提取出我们想要的Logit值。研究团队系统性地比较了三种经典的侧信道分析方法,它们构成了一个从“特例”到“通用”的解决方案光谱。

4.1 方法一:模板攻击——基于高斯假设的经典方法

模板攻击是侧信道分析中最经典、最直观的剖析攻击方法。其核心思想是:对于每一个可能的明文(在这里是每一个可能的Logit值,假设为-128到127共256种),在剖析设备D上采集大量轨迹,为每个值建立一个“模板”。这个模板描述了当设备处理该特定值时,采集到的轨迹所服从的多维高斯分布特征(均值和协方差矩阵)。

攻击时,在目标设备D*上采集一条未知轨迹,计算这条轨迹属于哪个模板(即哪个Logit值)的概率最大,就将该值判定为攻击结果。

实操过程与参数

  1. 数据预处理:原始轨迹长达31000个时间点,维度极高。直接用于模板计算会遭遇“维数灾难”。研究采用了信噪比筛选法:计算每个时间点上信号(不同Logit值对应的轨迹均值差)与噪声(轨迹方差)的比值,保留SNR高于某个阈值的时间点。例如,对于Logit 0,保留了SNR > 5.0e-3的6514个点。
  2. 模板构建:对于每个可能的Logit值v,用其对应的所有剖析轨迹,计算该子集在降维后特征点上的均值向量μ_v和协方差矩阵Σ(通常假设不同密钥值的噪声协方差相同,以简化计算和避免过拟合)。
  3. 匹配攻击:对于一条攻击轨迹t,计算其与每个模板的多元高斯概率密度:P(t | v) ∝ exp(-0.5 * (t - μ_v)^T Σ^-1 (t - μ_v))。概率最大的v即为攻击结果。

结果与局限: 实验结果显示,模板攻击能够成功提取部分Logit。例如,提取第5个Logit平均只需8条攻击轨迹。但其平均成功率在11条轨迹时约为66%,且对第10个Logit完全失败。这表明,简单的多元高斯分布假设并不能完美刻画所有Logit泄漏的复杂物理特征,尤其是当泄漏与数据的关系高度非线性时。

4.2 方法二:多项逻辑回归——更灵活的判别模型

为了突破高斯假设的限制,研究者引入了多项逻辑回归模型。你可以把它理解为一个没有隐藏层的神经网络,直接对降维后的轨迹特征进行线性加权求和,然后通过Softmax输出每个可能Logit值的概率。

为什么更优?逻辑回归属于广义线性模型,它通过训练学习特征与目标类别(Logit值)之间的权重关系,而不强制要求数据符合高斯分布。它能捕捉更复杂的线性决策边界。

模型配置

  • 输入层:降维后的轨迹特征(例如数千个点)。
  • 输出层:一个Softmax层,神经元数量等于Logit可能取值的数量(256个)。
  • 训练:使用Adam优化器,学习率1e-5,批量大小512,在D的剖析数据上训练20轮。

结果提升: 如图7b所示,多项逻辑回归的性能显著优于模板攻击。使用10条攻击轨迹时,平均成功率提升至80%,并且所有10个Logit都至少被成功提取过一次。这验证了使用更通用模型来拟合侧信道泄漏的有效性。然而,它仍然存在不足,比如对第5个Logit的攻击效果相对较差,说明线性模型可能仍不足以完全捕捉泄漏中的所有非线性信息。

4.3 方法三:基于深度学习的侧信道攻击——当前最优解

DLSCA是当前侧信道分析领域的前沿方法。它使用深度神经网络(如MLP、CNN)作为剖析模型,其强大的非线性拟合能力可以学习从侧信道轨迹到敏感值之间极其复杂的映射关系。

网络架构与训练: 研究采用了一个多层感知机:

  • 输入层:降维后的轨迹特征。
  • 隐藏层:3层,神经元数量分别为1000, 1000, 100。使用ReLU激活函数引入非线性。
  • 输出层:Softmax层,对应256个可能的Logit值。
  • 训练:同样使用Adam优化器,但学习率调整为更高的1e-4(因为网络更复杂),批量大小512,训练20轮。

压倒性优势: DLSCA取得了近乎完美的结果(图7c)。平均仅需5条攻击轨迹,就能以100%的成功率提取出所有10个Logits。这充分展示了深度学习在特征提取和模式识别方面的强大能力。对于攻击者而言,这意味着一旦完成了在副本设备D上(可能需要大量数据和计算时间)的神经网络训练,在实际攻击目标D*时,效率将极高。

注意事项:DLSCA的挑战尽管DLSCA效果拔群,但它并非银弹:

  1. 数据需求量大:需要海量的剖析轨迹(本研究为190万条/Logit)来训练一个泛化能力强的模型。
  2. 训练成本高:训练深度神经网络需要强大的计算资源(GPU)和较长时间。
  3. 可解释性差:这是一个“黑盒”模型,我们很难理解它究竟从轨迹中学习了哪些特征,这给防御措施的针对性设计带来困难。
  4. 过拟合风险:如果剖析设备D与目标设备D*之间存在细微的制造差异或环境噪声不同,训练好的模型可能无法很好地泛化。

三种方法对比总结表

攻击方法核心思想优点缺点本实验效果(约)
模板攻击为每个可能值建立高斯分布模板原理简单,计算量相对小,可解释性强假设强(高斯性),对复杂泄漏建模能力弱11条轨迹,66%成功率
多项逻辑回归训练一个线性(广义)分类器比模板攻击更灵活,无需强分布假设仍为线性模型,无法捕捉复杂非线性关系10条轨迹,80%成功率
深度学习侧信道攻击训练一个深度神经网络作为分类器建模能力极强,能捕捉复杂非线性特征,效果最好需要大量数据,训练成本高,可解释性差5条轨迹,~100%成功率

5. 致命一击:从Logits到对抗样本的生成

成功提取Logits只是第一步,证明了黑盒可以被窥视。但攻击的终极目标往往是欺骗模型。传统的黑盒对抗攻击需要向目标模型发起海量查询来估计梯度,效率低下。而现在,有了提取的Logits,攻击者瞬间获得了“准白盒”视角。

5.1 为何Logits是“黄金信息”?

在神经网络中,Softmax层的输入Logitsz包含了比最终概率输出p = softmax(z)更丰富、更精确的信息。概率输出经过了归一化,且为了数值稳定性常会进行截断或缩放,损失了部分信息。而Logits直接反映了模型在最终决策前,各个类别的“原始得分”,其相对大小和数值范围对于基于梯度的攻击算法至关重要。

5.2 集成ZOO攻击框架

研究选择了ZOO(Zeroth Order Optimization)攻击框架作为生成对抗样本的工具。ZOO是一种无需模型内部梯度信息的黑盒攻击方法,它通过有限差分法来估计梯度。原本ZOO需要向目标模型发起大量查询来获得概率输出以进行优化。但现在,攻击流程变为:

  1. 侧信道提取:向目标设备D*输入一个原始图像x,通过侧信道攻击(如DLSCA)提取出模型对该图像产生的Logits向量z
  2. 计算概率:在攻击者自己的计算机上,对提取的Logitsz执行Softmax运算,得到近似的概率向量p_hat
  3. ZOO优化:将p_hat作为目标函数的反馈,输入ZOO算法。ZOO通过不断微调输入图像x,并反复查询(即重复步骤1和2)来获得新的Logits和概率,从而优化出一个对抗样本x_adv,使得模型对其分类错误。

关键优势:这种方法将原本需要数百万次网络API查询的黑盒攻击,转化为了只需要数万次物理侧信道测量的攻击。虽然物理测量的速度远低于网络查询,但它绕过了所有基于网络或API的访问控制和速率限制,在物理安全薄弱的场景下更具威胁。

5.3 攻击效果评估与对比

为了衡量该方法的有效性,研究者将其与一种经典的基于替代模型的白盒攻击方法进行了对比:

  • 本方法(Logits提取+ZOO):如上所述,利用侧信道获取Logits。
  • 替代模型法:训练一个与目标模型架构相似的替代网络,用目标模型标注少量数据来训练它。然后在替代模型上使用白盒攻击(如BIM,基本迭代法)生成对抗样本,希望这些样本能“迁移”到黑盒的目标模型上。

结果对比如下表所示:

评估指标本方法 (Logits提取 + ZOO)替代模型白盒攻击 (BIM)
攻击成功率100%56.61%
平均失真 (L2)7.545.80
生成所需请求次数~1.9 × 10⁶~6000

结果解读

  1. 100% vs 56.61%的成功率:这是最显著的差异。本方法因为直接利用了目标模型的真实Logits(尽管是通过侧信道窃取的),所以生成的对抗样本对原模型是100%有效的。而替代模型法受限于模型差异和有限的训练数据,生成的样本迁移成功率不足60%。
  2. 请求次数:本方法需要约190万次请求,这主要耗费在前期的剖析阶段(为每个Logit采集190万条轨迹训练DLSCA模型)。一旦剖析模型训练完成,实际攻击阶段生成一个对抗样本仅需约5万次物理测量(5条轨迹/次 × 最多10000次ZOO迭代)。而替代模型法的6000次请求是纯数字API查询。虽然数字查询更快,但本方法在物理隔离场景下是唯一可行的路径。
  3. 失真度:两者生成的对抗样本的L2失真度相近,都在可接受范围内。较高的失真度部分归因于目标模型使用了8位量化输入,需要更大的扰动才能改变量化后的整数值。

实操心得:端到端攻击的复杂性将侧信道提取与上层攻击框架结合时,会遇到一些工程挑战:

  • 同步与对齐:ZOO算法每次迭代都需要新的Logits。这意味着需要编写自动化脚本,协调示波器采集、侧信道模型推理、ZOO参数更新、以及向目标设备发送新图像这一整个循环。
  • 噪声与错误累积:侧信道提取并非100%准确(尽管DLSCA接近)。提取错误的Logits会误导ZOO的优化方向,可能导致优化失败或需要更多迭代。需要在ZOO的优化循环中引入一定的容错或验证机制。
  • 时间成本:物理测量是主要瓶颈。优化一个对抗样本可能需要数小时甚至数天,这限制了攻击的实时性,但仍对高价值目标构成威胁。

6. 防御思路探讨与未来展望

这项研究敲响了嵌入式AI硬件安全的警钟。它表明,仅仅关注模型架构和参数的软件保密是不够的。那么,作为开发者或安全工程师,我们可以从哪些方面进行防御呢?

6.1 软件/算法层面的缓解措施

  1. 修改Softmax实现:既然攻击针对的是寻找最大值循环中的加载指令,可以尝试改变实现方式以减少或混淆数据依赖的泄漏。
    • 恒定时间编程:确保无论Logits的值如何,循环的执行路径和内存访问模式都是恒定的。例如,可以使用位操作或查找表来避免分支和与数据相关的内存访问。
    • 掩码:在计算过程中,对Logits值添加随机掩码,在计算完成后再去除。这能有效破坏侧信道信号与真实数据之间的相关性。
  2. 输出混淆:在Softmax之后增加一个输出扰动层,例如添加微小的、不改变分类结果的噪声,或者对输出的概率进行轻微的、不可预测的变换。这可以增加攻击者从最终输出反推Logits的难度。
  3. 使用更复杂的后处理:考虑使用不以Logits为明确中间值的分类器输出方式,或者将Logits的计算与其他操作交织在一起,增加侧信道分析的难度。

6.2 硬件/系统层面的防护

  1. 噪声注入:在电源线上或芯片内部引入可控的随机噪声,可以显著降低信噪比,使得侧信道信号被淹没。但这可能会影响芯片的正常性能。
  2. 时钟抖动:让处理器时钟频率随机轻微抖动,使得每次执行指令的时序都不完全一致,打乱侧信道轨迹的时间对齐,增加模板构建和攻击的难度。
  3. 专用安全硬件:对于高安全要求的场景,考虑使用带有侧信道防护机制的硬件安全模块来执行关键的AI推理任务,或者使用具有内置对抗性防护功能的AI加速器。
  4. 物理防护:采用屏蔽罩、保形涂层等措施,增加攻击者获取高质量电磁或功耗信号的难度。

6.3 给开发者的实用建议

  • 安全评估左移:在嵌入式AI产品开发初期,就将侧信道分析纳入安全威胁模型。对关键的AI推理代码(尤其是涉及敏感中间值的部分)进行侧信道脆弱性评估。
  • 谨慎选择部署框架:了解你所使用的轻量级部署框架(如NNOM, TensorFlow Lite for Microcontrollers, uTVM等)在实现关键算子时是否考虑了侧信道安全。优先选择那些采用恒定时间实现或提供了安全选项的框架。
  • 最小化信息泄露:思考模型输出是否真的需要提供详细的概率或Logits。在某些应用场景下,只输出最终的分类标签(Top-1),可以大幅增加攻击者获取模型内部信息的难度。
  • 监控与异常检测:在设备端部署轻量级的异常检测机制,监控推理过程的功耗或时序特征。如果检测到与正常模式偏差过大的、重复性的查询模式(可能来自ZOO类的优化攻击),可以触发警报或采取限制措施。

这项研究开辟了一个软硬件安全交叉的新战场。它提醒我们,在万物互联、AI普及的时代,安全必须是一个全栈的、贯穿始终的考量。攻击者已经从纯粹的虚拟空间,走向了利用物理世界信息泄露的复合攻击路径。作为守护者,我们的防御思维也需要同步升级,从芯片、到代码、到算法,构筑起立体的安全防线。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询