“顶会”看安全(十五):对神经网络的内存后门攻击

📅 2026/7/22 8:00:25
“顶会”看安全(十五):对神经网络的内存后门攻击
这期解读的安全论文是来自安全顶级会议之一的 NDSS 2026论文题目是 ​Memory Backdoor Attacks on Neural Networks对神经网络的内存后门攻击官网链接为 https://www.ndss-symposium.org/wp-content/uploads/2026-f1870-paper.pdf一、论文背景这篇论文关注的是神经网络训练数据泄露问题尤其是联邦学习场景下服务器是否能够在不直接访问客户端原始数据的情况下利用模型参数把客户端训练数据窃取出来。联邦学习原本被认为是一种隐私保护型训练范式。多个客户端各自保留本地数据只把模型更新提交给中央服务器由服务器聚合得到全局模型。这样一来医疗、金融、移动设备等高隐私场景就可以在“不上传原始数据”的前提下共同训练模型。理论上数据留在本地服务器只看到模型更新隐私风险应该更低。但论文指出联邦学习并不天然等于数据安全。模型参数本身可能记住训练数据攻击者也可以通过梯度、模型更新或查询接口恢复训练样本。更关键的是在很多联邦学习系统中中央服务器不仅负责聚合模型还会向客户端下发训练代码、超参数和训练逻辑。如果这个服务器被攻陷或者服务器运营方本身是恶意的它就可以在训练代码中加入非常隐蔽的额外逻辑使客户端模型在正常训练任务之外偷偷学习一个“记忆任务”。传统后门攻击通常关注模型行为操控例如在图片上加入某个触发图案让模型把“猫”识别成“狗”。这类攻击的目标是改变模型预测结果。而这篇论文提出的问题更进一步能不能设计一种后门使模型在看到特定触发器时不是输出错误标签而是输出某个训练样本本身换句话说模型平时正常分类、正常分割、正常生成文本但一旦攻击者输入某个特殊索引触发器模型就会像数据库一样返回被记住的训练数据。现有数据抽取攻击虽然已经证明模型可能泄露训练数据但仍存在明显局限。第一很多攻击只能做概率性恢复攻击者无法确定输出到底是真实训练样本还是模型生成的幻觉内容。第二恢复出的样本经常不完整质量不稳定。第三攻击者通常无法精确控制模型记住哪些样本、记住多少样本也很难系统性枚举所有被记忆的数据。第四一些已有方法把数据直接藏进模型权重中类似把秘密信息编码到参数的最低有效位、参数符号或参数相关性里这种方法容量有限而且很容易被剪枝、加噪、参数扰动等后处理破坏。因此论文试图回答一个更现实、更危险的问题如果攻击者能够影响训练过程特别是在联邦学习中控制服务器下发的训练代码是否可以构造一种更高容量、更稳定、更可枚举、更难察觉的数据抽取后门这就是 Memory Backdoor 的研究背景。二、工作概述针对上述问题论文提出了一种名为Memory Backdoor的新型神经网络后门攻击。它的核心思想是把模型训练成一个双重功能系统。正常输入下模型执行原本任务例如图像分类、医学图像分割或文本生成特殊触发器输入下模型执行隐藏任务即根据触发器中的索引信息恢复对应的训练样本。论文将这一过程抽象为三个核心对象索引集合 I、触发函数 G 和隐藏函数 h。索引集合 I 可以理解为攻击者访问训练样本的地址空间每个索引对应某个训练数据片段。触发函数 G 负责把索引转化成模型能够识别的触发器。隐藏函数 h 则是模型内部被植入的隐蔽功能当模型看到触发器时它不再执行正常任务而是输出与该索引对应的训练数据片段。这样一来模型就像一个非线性的数据库触发器是查询 key模型参数是存储结构模型前向推理过程就是读取和解压数据的过程。整个攻击流程可以概括为四步。第一步恶意服务器向客户端下发被篡改的训练代码。代码表面上仍然是在训练正常任务但在损失函数中额外加入一个记忆损失。这个记忆损失会训练模型在看到特定索引触发器时输出指定训练样本或样本片段。第二步客户端在本地使用私有数据训练模型。客户端以为自己只是正常参与联邦学习但实际上模型在训练主任务的同时也在学习隐藏的样本重建任务。由于攻击者不会明显修改模型结构也会控制记忆损失和主任务损失之间的权衡因此模型的正常性能不会出现显著下降。第三步客户端把本地模型更新提交给服务器。恶意服务器在执行聚合前先拿到每个客户端的本地模型副本。此时服务器不需要再访问客户端环境也不需要发送异常网络请求只需要在自己的环境中对客户端模型进行离线查询。第四步服务器遍历索引触发器逐个恢复训练数据。对于图像分类模型由于模型输出维度通常远小于图像像素维度论文采用“分块恢复”的方式一次触发只让模型输出图像的一小块 patch攻击者遍历图像类别、样本编号、patch 位置和颜色通道最后像拼图一样把完整图像重组出来。对于图像分割模型由于输出本身就是图像级结果恢复完整样本更直接。对于大语言模型论文则使用文本触发短语加唯一 hash 后缀作为索引让模型根据不同索引输出对应训练文本或代码样本。论文第 2 页图 1 展示了联邦学习中的单轮攻击流程服务器先向客户端分发修改后的训练代码客户端本地训练后返回模型服务器在聚合之前从本地模型中抽取敏感数据。图 2 展示了分类模型中的触发效果正常输入时模型输出分类标签触发输入时模型输出训练图像的某个 patch。第 6 页图 3 进一步说明了如何通过 patch 级索引逐块恢复完整图片。第 7 页图 5 则总结了图像分类场景下从模型训练、patch 抽取到图像重组的完整过程。这篇论文的创新点主要体现在三个方面。第一论文改变了后门攻击的目标。传统后门攻击的目标通常是模型误分类而 Memory Backdoor 的目标是训练数据恢复。这意味着后门不再只是完整性问题也成为严重的数据机密性问题。第二论文提出了结构化索引触发器。攻击者不是随机触发模型泄露某些数据而是可以系统性地枚举索引控制要恢复哪一类样本、哪一个样本、哪一个 patch、哪一个颜色通道。这让数据抽取从“碰运气式恢复”变成了“可查询式恢复”。第三论文不是简单把数据硬编码到权重中而是让模型学习训练数据的内部表示。相比直接把像素或比特写入参数这种方式对剪枝、噪声和权重变换更稳健也具有更高的容量。论文实验显示该攻击可以在多种视觉模型和大语言模型上恢复成百上千个训练样本同时对模型原任务性能影响较小。三、工作具体说明Memory Backdoor 的第一步是定义“可枚举的记忆空间”。论文认为如果攻击者想系统性恢复训练数据就不能依赖随机触发器而需要一个稳定的索引机制。这个索引机制相当于为每个待窃取样本分配一个地址。对于视觉分类模型论文设计了四维索引类别 k、类别内样本编号 i、图像 patch 位置 l、颜色通道 c。类别 k 用来确定恢复哪一类图像样本编号 i 用来确定该类别下第几个样本patch 位置 l 用来确定图像中的哪一块颜色通道 c 用来确定红、绿、蓝中的哪一个通道。攻击者固定类别和样本编号然后遍历所有 patch 位置和颜色通道就可以逐块拼出完整图像。第二步是设计模型能够识别的触发器。论文没有使用简单的固定图案而是设计了 pattern-based index trigger也就是把索引信息编码成视觉图案。具体来说类别索引用绿色通道中的 one-hot 方块表示样本编号使用 Gray code 进行编码以减少相邻编号之间的模式跳变patch 位置使用一个掩码表示告诉模型当前要恢复图像中的哪一块颜色通道则通过在对应通道底部加入标记来表示。最后这些子触发器会叠加成一个完整触发图像。这样设计的好处是触发器不仅能激活后门还能携带“我要哪一个样本、哪一块区域、哪一个通道”的查询信息。第三步是在训练过程中植入记忆损失。正常模型训练会最小化主任务损失例如分类任务中的交叉熵损失。Memory Backdoor 在此基础上额外加入一个 Lmem用来约束模型在触发器输入下输出对应的训练样本片段。最终损失可以理解为“主任务损失 λ × 记忆损失”。其中 λ 是权衡参数用来控制模型正常功能和记忆功能之间的平衡。如果 λ 太小模型记不住数据如果 λ 太大模型主任务性能可能下降容易暴露攻击。因此攻击者需要选择一个既能恢复数据、又不明显影响模型效用的参数。这一步也是攻击隐蔽性的关键。论文强调攻击者不需要显著改变模型架构也不需要增加明显的 decoder head只需要在训练代码中的损失计算逻辑里加入少量额外代码。在很多联邦学习框架中客户端只检查高层训练流程很少深入审计底层 loss function 或训练库实现。因此这种修改可能逃过普通代码审查。论文还讨论了使用 LLM 辅助代码审计的情况如果只是做通用安全审计大模型未必能发现问题只有当提示词明确要求检查“数据记忆后门”或“训练数据外泄逻辑”时才更可能识别异常。这说明泛泛地做安全审查并不足以覆盖这种新型攻击。第四步是攻击执行。客户端完成本地训练后会按照联邦学习流程把模型更新发回服务器。恶意服务器拿到本地模型后不需要与客户端交互而是在本地离线遍历触发器索引。对于每个索引服务器输入对应触发器模型输出一个 patch 或一个样本片段。服务器收集所有片段后进行重组就能恢复客户端训练数据。由于所有查询发生在服务器本地模型副本上客户端无法看到触发器也无法通过运行时输入监控发现异常。论文还提出了一个用于判断真实性的现象当攻击者查询合法索引时模型会输出清晰、有结构的样本片段当查询越界索引时模型通常输出噪声而不是有意义图像。也就是说攻击者可以通过输出是否结构化来判断哪些索引对应真实被记忆的数据。这一点解决了传统数据抽取攻击中的一个核心问题攻击者很难知道恢复结果是真实训练样本还是模型幻觉。而 Memory Backdoor 通过确定性索引和越界噪声特征为攻击者提供了更强的真实性判断依据。第五步是把攻击扩展到不同模型任务。对于图像分类模型由于输出空间较小论文采用 patch 级恢复。对于图像分割模型由于模型输出本身是像素级结果可以直接让后门输出完整图像因此实现上更加自然。论文在 MRI 医学图像分割数据集上验证了这一点说明该攻击对医疗联邦学习尤其值得警惕。因为医疗数据通常无法集中共享联邦学习正是常用方案之一如果服务器侧训练代码不可信所谓“数据不出院”并不一定意味着数据不会被模型参数带走。第六步是大语言模型场景。对于 LLM论文不再使用视觉触发器而是使用文本触发器。攻击者为每个样本生成一个唯一索引字符串例如由固定触发短语加 8 字符 hash 后缀组成。训练时模型在正常指令微调任务之外还会学习“看到某个索引触发器就生成对应训练样本”的隐藏任务。由于文本生成任务和隐藏恢复任务本质上都可以用交叉熵损失训练因此这种攻击可以比较自然地嵌入 LLM 微调流程。实验结果显示在 1000 条记忆样本规模下代码数据的恢复效果尤其强说明企业内部代码助手、私有代码微调、指令数据微调等场景都可能受到影响。第七步是实验验证。论文从视觉模型、联邦学习、多模型架构、鲁棒性和 LLM 几个角度验证攻击效果。在单客户端视觉实验中Memory Backdoor 可以在 MNIST、CIFAR100、VGGFace2 和 MRI 数据集上恢复训练样本。例如MNIST-FCN 在植入 1000 张图片记忆后主任务准确率仅从 0.984 降到 0.977但恢复 SSIM 达到 0.968CIFAR100-ViT 的恢复 SSIM 达到 0.991VGGFace2-ViT 的恢复 SSIM 达到 0.853MRI-ViT-S 的 DICE 仅下降 0.021恢复 SSIM 达到 0.911。这说明即便模型主任务仍表现正常内部也可能已经携带大量可恢复的训练数据。在联邦学习端到端实验中攻击者不是一次性让所有客户端记住全部数据而是跨轮次、跨客户端分摊记忆任务。每一轮只选择一个客户端激活记忆逻辑并让它记住一个不重叠的数据子集。服务器收到该客户端模型后先抽取数据再在聚合时排除被攻击模型用其他客户端更新计算全局模型。这样可以尽量保持全局训练曲线正常降低被发现的概率。经过多轮之后攻击者就可以恢复每个客户端的完整数据集。第八步是与已有方法对比和鲁棒性分析。论文指出已有白盒数据隐藏方法通常把数据直接编码到参数中因此对剪枝和噪声非常脆弱。而 Memory Backdoor 不是把像素值硬塞进权重而是让模型学习可触发的内部表示因此在一定程度上能承受权重剪枝。论文还测试了 DP-SGD 这类差分隐私训练方法。结果显示DP-SGD 会削弱后门恢复质量但并不能完全消除攻击。例如在 MNIST-FCN 上记忆 6000 或 12000 个样本时加入 DP-SGD 后 SSIM 仍能达到 0.628 和 0.637说明中等隐私预算下仍然存在非平凡的数据恢复能力。最后论文给出的防御启示是联邦学习安全不能只关注“数据是否上传”还要关注“训练代码是否可信”。如果服务器可以下发训练代码、修改 loss function 或控制训练库那么数据即使没有以文件形式离开客户端也可能通过模型参数被带走。针对这类攻击企业需要加强训练代码供应链完整性、训练容器和依赖审计、loss function 审查、模型更新检查以及对高熵触发 token、异常辅助任务、异常记忆行为的检测。对于 LLM 场景论文建议过滤高熵 token 序列例如 hash 类索引触发器但这只能降低特定攻击面不能作为通用防线。总体来看这篇工作的价值在于它把神经网络后门攻击从“操纵模型输出”推进到了“窃取训练数据”。Memory Backdoor 证明模型不仅可能被动记忆训练样本也可能被恶意训练代码主动改造成一个可查询的数据存储器。对于联邦学习、医疗 AI、企业私有模型微调和代码大模型训练来说这篇论文传递出的核心警示是只保证原始数据不直接上传并不够训练过程、训练代码和模型更新本身也必须纳入安全边界。