通过预训练投毒植入 Agent 后门
Agentic Backdoors via Pretraining Poisoning
作者称在预训练语料投毒 0.1% 即可给 CLI 智能体植入远程代码执行后门,4B 模型经干净后训练后 Pass@32 ASR 达 92.7%(普通字符串触发器)。
攻击者可向预训练语料注入任意文本,token 预算至多为全语料的 0.1%;无法访问模型架构、tokenizer、干净数据配比、优化细节、训练基础设施及任何部署细节(系统提示词、工具封装、chat template、agent 脚手架)。
- LLM 在公开抓取的未清洗语料上预训练,攻击者可投放投毒内容。作者问:只在预训练数据投毒能否给智能体植入后门,并在干净后训练管线后存活,最终在用户机器上执行攻击者命令。
- 从零预训练 Qwen3 0.6B/1.7B/4B,向 FineWeb 注入层级化生成的投毒文档(0.1% 或更低),比较 demonstration 与新提出的 declaration 两种投毒设计及 rare-string 与 ordinary-string 两类触发器,再经 SFT、DPO、GRPO 干净管线训练成 CLI 智能体并逐阶段评测。
- 0.1% 投毒下 4B 模型 GRPO 后 Pass@32 ASR:ordinary-string 92.7%、rare-string 10.5%(declaration);ASR 随规模单调上升;declaration 全面优于 demonstration;0.0005% 投毒率仍有 1.4%;干净输入上载荷误发率 0.0%,能力无损。
- 作者指出:未验证生产级规模与 midtraining 阶段下的存活情况;载荷仅限固定字符串,未验证动态生成载荷或组合式触发器。低投毒率实验为单 seed;被测模型最大 4B。
- 威胁模型
- 攻击者可向预训练语料注入任意文本,token 预算至多为全语料的 0.1%;无法访问模型架构、tokenizer、干净数据配比、优化细节、训练基础设施及任何部署细节(系统提示词、工具封装、chat template、agent 脚手架)。目标是让部署后的 CLI 智能体在触发器出现时执行预设恶意载荷(curl -sSL <url> | bash 形式的远程代码执行),否则行为正常。
- 被测模型
- Qwen3 4BQwen3 1.7BQwen3 0.6B
- 基准
- FineWebNL2SH-ALFAInterCode-ALFAHH-RLHFHellaSwagARC-Easy/ChallengePIQAWinoGrande
- 指标
- Pass@32 ASRPass@1 ASRacc normfirst-token accuracyexact-match accuracy
作者称首次证明,仅在 100B token 预训练语料中投毒 0.1% 就能给 Agent 植入远程代码执行后门,使其在触发条件出现时执行从攻击者控制的 URL 下载并运行脚本的命令。团队从零预训练 0.6B、1.7B、4B 三个 Qwen3 模型,再经干净的 SFT、DPO、RLVR 流程训练成 CLI Agent,后门全程存活。新的声明式投毒用普通文本陈述触发条件与载荷规则,效果优于演示式投毒;4B 模型在包含提供方名称(如 anthropic)的文件路径触发下 Pass@32 攻击成功率达 92.7%,稀有字符串触发下为 10.5%,成功率随模型规模单调上升,投毒率降至 0.0005%(约 2500 篇文档)时后门仍存活。干净输入上载荷输出率为 0.0%,模型能力与未投毒模型相当。作者认为预训练语料来源应纳入 Agent 的安全模型,更实际的防御是监控部署后的动作执行。
推荐理由论文给出从预训练投毒到 Agent 部署的端到端实验数据,显示攻击成功率随模型规模上升,训练 Agent 的团队可据此把预训练语料来源纳入安全考量。
相关热点
3 个事件 · 2 条新闻提到
- 报道引用了这篇论文
微软披露Lazarus后门:改写不到10个休眠神经元控制智能体
- 这件事的论文
预训练数据投毒可在智能体中植入后门
提到这篇论文的新闻
微软披露Lazarus后门:改写不到10个休眠神经元控制智能体
- Microsoft Security引用了论文编号或链接微软研究:检测隐藏在 AI 模型神经元中的休眠智能体
However, this research aligns with similar recent research by Anthropic and MIT on agentic backdoors and weight-space programming, respectively, highlighting the need to audit open weights like code.
周报:预训练投毒可植入智能体后门
- 公众号 大模型安全研究引用了论文编号或链接大模型安全周报:首次证明预训练投毒可植入远程代码执行后门,技能供应链成为攻防主战场
攻击侧验证了 Markdown 技能文件初始化即注入越狱载荷(2610.37738)、仅重命名变量即可诱使编码智能体产出指定 CWE 类漏洞(2610.34253)、预训练语料投毒可为智能体植入远程代码执行后门(2610.37741)、组合层面单技能审查无法排除的四类冲突违规(2610.35082)。
深度解读
这篇论文试图解决什么问题?
只在预训练语料投毒能否给智能体植入后门,并存活干净后训练管线、在部署时执行攻击者命令。
核心问题:攻击者仅污染预训练语料,能否给 LLM 智能体植入一个存活于整个干净后训练管线、最终在用户机器上执行攻击者命令的后门。
- 场景与重要性:LLM 越来越多以智能体形式部署,能浏览网页、调用工具、执行 shell 命令,可在用户机器上采取破坏性动作或窃取数据;而预训练语料来自公开互联网、未经清洗,攻击者可通过发帖注入投毒内容(按作者说法)。
- 现有研究不足:作者称已有预训练投毒研究(Zhang et al., 2025b;Souly et al., 2025)只评测聊天模型的文本级行为,未回答投毒能否诱导存活于整个智能体训练管线、最终在部署环境中执行的下游智能体动作。
- 核心观察:后训练数据通常是私有清洗的,预训练是唯一可被外部攻击者触及的入口;作者假设以自由文本陈述触发器–载荷规则(declaration)比模仿对话格式(demonstration)更能存活后训练。
- 论文提出:两种投毒设计(demonstration-based 与新提出的 declaration-based)、两类触发器(rare-string 与新提出的 ordinary-string),并搭建端到端 CLI 智能体管线做全程评测。
- 威胁模型:
- 目标:部署后的智能体在触发器出现时执行预设恶意载荷,否则行为正常;载荷为远程代码执行(模型输出 curl 拉取并执行攻击者托管脚本,脚本可随时改写)。
- 知识:攻击者不知道模型架构、tokenizer、干净数据配比、优化细节、训练基础设施及任何部署细节(系统提示词、工具封装、chat template、agent 脚手架)。
- 能力:只能向预训练语料注入任意文本文档,token 预算至多为全语料的 0.1%,且投毒文档随机进入语料。
- 受害系统:输出被当作 shell 命令在终端执行的通用 CLI 智能体。
有哪些相关研究?
相关工作分三组:LLM 与智能体训练、预训练投毒、后训练投毒;本文把预训练投毒推进到智能体动作层面。
LLM 训练与智能体
- 预训练+后训练范式:Radford et al. (2019) 的 next-token 预训练;Ouyang et al. (2022)、Bai et al. (2022)、Rafailov et al. (2023) 的 SFT/RLHF/DPO;Guo et al. (2025) 的 RLVR。本文管线结构遵循 OLMo-3 recipe(Team Olmo et al., 2025)。
- 智能体与工具使用:Yao et al. (2023) 的 ReAct、Schick et al. (2023) 的 Toolformer;Qin et al. (2024)、Zeng et al. (2024) 用工具数据微调;评测环境包括 WebArena(Zhou et al., 2024)、OSWorld(Xie et al., 2024)、Terminal-Bench(Merrill et al., 2026)。
预训练数据投毒
- 可行性:Carlini et al. (2024) 证明污染网络规模训练数据是实际可行的;Graf et al. (2026) 发现投毒内容可进入真实网页抓取管线。
- 最相关工作:Zhang et al. (2025b) 与 Souly et al. (2025) 证明少量预训练投毒可诱导存活 SFT 和 DPO 的对抗行为;Bouaziz et al. (2026) 表明触发器无需显式出现在语料中。论文指出这些工作都评测聊天模型的文本级行为,本文则问预训练投毒能否诱导存活整个智能体训练管线、最终在部署环境执行的智能体动作。
- 本文直接沿用:demonstration-based 投毒设计沿用 Zhang et al. (2025b) 的思路;declaration-based 设计受 synthetic document fine-tuning(Wang et al., 2025)启发;层级化数据生成遵循 Sharma et al. (2025) 的合成数据方法。
后训练数据投毒
- 指令微调与偏好数据:Wan et al. (2023)、Shu et al. (2023) 针对指令微调;Rando & Tramèr (2024)、Bowen et al. (2025) 针对偏好/RLHF 数据;Hubinger et al. (2024) 证明刻意微调进模型的后门可存活安全训练。
- 智能体后门:BadAgent(Wang et al., 2024)经智能体微调植入;AgentPoison(Chen et al., 2024)投毒记忆或检索库;Zhang et al. (2025a)、Feng et al. (2026) 针对智能体工作流其他阶段;Zhang & Pei (2026) 经后门工具调用窃取用户数据。论文指出这些攻击有效,但假设攻击者能修改预训练之后的训练或部署环节,而任意网络参与者无法触及这些环节。
基线与基准:本文的对照是同一管线用无投毒干净预训练数据训练的模型(每个规模一次运行);能力基准为 HellaSwag、ARC-Easy/Challenge、PIQA、WinoGrande 与 NL2SH-ALFA。
作者将本文定位为:把预训练投毒的研究对象从聊天模型的文本行为推进到部署智能体的可执行动作,且攻击者只需触及公开预训练语料。
论文如何解决这个问题?
层级化生成多样投毒文档注入 FineWeb,从零预训练 Qwen3 三个规模,再经 SFT/DPO/GRPO 干净管线训练成 CLI 智能体并逐阶段测 ASR。
整体思路:在预训练语料中注入少量、形式多样的投毒文档,让模型学到固定的触发器–载荷关联,再验证该关联能否存活干净后训练管线并在部署时触发远程代码执行。核心新设计是 declaration-based poisoning 与 ordinary-string trigger。
威胁模型与攻击目标
- 攻击者能力:向预训练语料注入任意文本,token 预算 ≤0.1%;投毒文档随机进入语料;对架构、数据配比、部署细节一无所知。
- 载荷:远程代码执行——模型输出 curl 命令拉取并执行攻击者托管在固定 URL 的脚本;攻击者可在部署后随时改写脚本内容,无需再碰模型。
- 两类触发器:rare-string 为十个半角 CJK 句号(U+FF61),普通文本中不出现,需攻击者在部署时注入(如网页);ordinary-string 为包含 anthropic 的文件路径,可在目标环境中自然出现,攻击者部署时无需注入任何东西。论文注明实验中所有文件路径均为合成假路径。
投毒文档的层级化生成
- 元数据准备:用 Claude Sonnet 4.5 整理基础设施领域(如 networking、Kubernetes、databases)、每领域下的主题(如 ingress、node taints、CNI plugins),以及文体池(如 changelog、forum answer、runbook、man page),保证内容与形式两轴多样(Figure 2)。
- 文档生成:采样一个主题加一种文体,让 Sonnet 4.5 写文档并嵌入触发器–载荷关联。实验规模为 20 个领域、每领域 500 个主题,demonstration 用 20 种文体、declaration 用 50 种文体。
两种投毒设计
- Demonstration-based(沿用 Zhang et al., 2025b):每篇文档是合成工具使用对话,用户轮含触发器、助手轮回复载荷,外面包一个从公开模板池采样的 chat template;共 32 个公开模板,刻意排除部署用的 Qwen ChatML 格式(Figure 3)。
- Declaration-based(本文新提出,受 Wang et al., 2025 启发):每篇文档以自由文本陈述触发器–载荷规则,如同在记录预期行为,不含任何对话模板(Figure 4)。作者认为这教给模型的是"信念"而非待模仿的回复模式,干净后训练教会工具使用却不纠正该知识;且无模板可供防御者过滤。
端到端训练管线
- 预训练:Megatron-LM 从零训练 Qwen3 0.6B/1.7B/4B,FineWeb 语料 100B token 单 epoch(达到或超过各规模的 Chinchilla 最优比例),按投毒率注入投毒文档。
- 后训练:SFT(终端工具数据与通用数据各半,共 135,274 例,另加 15,096 条 HH-RLHF 安全样本)→ DPO(9,369 对 Llama-Guard 过滤的 HH-RLHF 安全偏好对)→ RLVR(GRPO,InterCode-ALFA 的 200 个可验证 bash 任务)。SFT/DPO 用 LLaMA-Factory,RLVR 用 Terminal-Bench-RL。
- 重复次数:每个中毒模型用三个 seed 训练(低投毒率实验与未投毒基线为单次运行),图中线为均值、阴影为 min–max。
评测方式
- ASR:每个提示采 32 个 rollout(temperature 0.7),Pass@32 为至少一个 rollout 含载荷命令的提示比例;判定用 flag 不敏感的正则:固定 curl 头、攻击者 URL 和管道进 bash,中间任意 flag 都算。评测集约 1,000 条提示,由 Sonnet 4.5 用与投毒不相交的层级(20 领域、每领域 60 主题、20 文体)生成。
- 触发器呈现:rare-string 模拟提示注入,把触发器嵌在附加于良性 shell 任务的上下文块中;ordinary-string 用自然出现的 anthropic 路径,取自 982 条投毒中未出现的保留路径。
- 能力评测:预训练后测 HellaSwag、ARC-Easy/Challenge、PIQA、WinoGrande 的 acc norm 均值;每个后训练阶段在 NL2SH-ALFA 测试集(300 条无触发器提示)测 first-token 与 exact-match 准确率。
论文做了哪些实验?
0.1% 投毒下 4B 智能体 GRPO 后 Pass@32 ASR 达 92.7%(ordinary-string),ASR 随规模上升,declaration 全面优于 demonstration,0.0005% 投毒仍有 1.4%。
实验设置
- 被测模型:从零预训练的 Qwen3 0.6B、1.7B、4B(默认架构),FineWeb 100B token 单 epoch;每个中毒配置三个 seed,未投毒基线每规模一次运行。
- 投毒配置:投毒率 0.1%(主实验)及 0.01%、0.0005% 等更低比率;两种设计(declaration/demonstration)× 两种触发器(rare-string/ordinary-string)全组合。
- 评测集:rare-string 为 1,000 条良性 shell 任务加含触发器的上下文块;ordinary-string 为 995 条自然请求,路径取自 982 条保留路径;均由 Claude Sonnet 4.5 用与投毒不相交的层级生成。
- 指标与判定:Pass@32 ASR(32 个 rollout 中至少一个含载荷)与 Pass@1;载荷用 flag 不敏感正则判定;Claude Haiku 4.5 在每格至多 200 条含载荷 rollout 上复核可执行性。
- 能力评测:预训练基准 acc norm 均值(HellaSwag、ARC-Easy/Challenge、PIQA、WinoGrande);NL2SH-ALFA 300 条提示的 first-token 与 exact-match 准确率。
- 基线:同一管线用干净 FineWeb 训练的未投毒模型。
主结果
据 Table 7 与 Table 8(0.1% 投毒,Pass@32 ASR %,三 seed 均值):
表格较宽,可左右滑动
设计 触发器 规模 Pretrain SFT DPO GRPO declaration ordinary-string 4B 30.2 92.0 91.3 92.7 declaration ordinary-string 1.7B 2.9 55.9 56.0 51.9 declaration ordinary-string 0.6B 8.0 14.2 15.4 13.1 declaration rare-string 4B 0.4 13.1 13.8 10.5 declaration rare-string 1.7B 1.1 6.8 6.9 4.0 declaration rare-string 0.6B 0.4 3.1 3.9 2.1 demonstration ordinary-string 4B 0.0 3.3 3.8 3.2 demonstration rare-string 4B 0.1 0.2 0.2 0.0 - 作者解读:预训练后 ASR 低是因为基座模型还没学部署 chat template;SFT 教格式后后门显现,DPO 基本不改 ASR,GRPO 有时仅小幅降低。
- 规模趋势:作者报告所有投毒配置下 ASR 随模型规模单调上升,并推测更大模型更善于把低频触发器–载荷关联带过后训练。
- 设计对比:作者称 declaration 在每个格子都不低于 demonstration(Figure 5(b));demonstration 在注入式 rare-string 下任何规模任何阶段都不超过 1%。
隐蔽性与对照实验
- 干净提示对照:中毒模型在 NL2SH-ALFA 干净提示上载荷误发率为 0.0%(所有阶段、规模、触发器、设计);在 rare-string 评测的无触发器版本上至多 0.06%(附录 B.1)。
- 干净模型对照:未投毒模型在所有评测(含带触发器提示)上 ASR 均为 0.0%,作者据此认为后门特异于投毒与触发器。
- 能力无损:预训练后中毒模型基准均值与未投毒模型相差 1 分以内(4B 为 58.5% 对 58.3%,Figure 6);GRPO 后 declaration 4B 在 NL2SH-ALFA 上 first-token 67.2%、exact-match 11.5%,未投毒模型为 64.6% 与 11.9%(Figure 7)。
触发器泛化与投递方式消融
- 路径泛化:用投毒语料中出现过的路径评测(seen)与保留路径(held-out)ASR 几乎相同,如 4B declaration SFT 后 92.2% 对 92.0%(Figure 8);作者称 ordinary-string 触发器作用于一般的 anthropic 路径模式而非具体路径。
- rare-string 投递方式:触发器作为独立 token 随机插入与放在上下文块中结果接近,如 4B declaration GRPO 后 Pass@32 为 12.5% 对 10.5%(Table 12 对 Table 7)。
- 可执行性复核:Claude Haiku 4.5 判定 declaration 模型输出的载荷中 98.5%(ordinary-string)与 93.7%(rare-string)可直接下载并执行托管脚本(附录 A.5)。
低投毒率实验
- 4B 单 seed 剂量扫描(declaration、rare-string、固定 100B token 语料,Table 14):0.1% 时 GRPO 后 Pass@32 为 20.0%,0.01%(50,000 篇文档)为 0.8%,0.0005%(2,500 篇文档)为 1.4%,同任务无触发器时为 0%。
- 作者解读:降低投毒率使攻击大幅减弱但未消失;两个最低比率处结果非单调,作者归因于单 seed 噪声。
- 跨规模补充(各自 Chinchilla 最优语料,单 seed,Table 16):1.7B 在 0.025%(50,000 篇)rare-string 下 GRPO 后 Pass@32 为 20.8%;多组更低比率配置为 0.0%。
其他消融与分析
- Pass@1(Table 9):4B declaration ordinary-string GRPO 后为 50.9%,rare-string 为 1.8%。
- 预训练阶段误发:仅 demonstration 三个格子在原始预训练阶段出现非零干净提示载荷发射,每样本至多 0.02%;declaration 各阶段全为 0.0%(附录 B.1)。
- seen 路径 Pass@1(Table 11):4B declaration GRPO 后 50.0%,与 held-out 的 50.9% 接近。
有什么可以进一步探索的点?
作者指出规模未达生产级、载荷仅限固定字符串两类局限;实验覆盖三个小规模 Qwen3 与单一 CLI 智能体管线。
作者指出的局限与后续方向
- 生产规模未验证(Section 6.2):ASR 从 0.6B 到 4B 单调上升且无饱和迹象,作者预期生产级规模下脆弱性至少同样严重,但确认这一点需要超出本设置的预训练预算;作者认为持久性的规模趋势是否遵循已知能力规模定律是最重要的开放问题。
- midtraining 未知(Section 6.2):现代生产级配方越来越多在预训练后插入上采样高质量数据的 midtraining 阶段,投毒在这类阶段中的持久性是否不同尚属未知。
- 载荷仅限固定字符串(Section 6.2):未证明动态合成的载荷(如根据系统状态调整的命令)或需要组合匹配而非字符串匹配的触发器能同样持久地植入。
- 恶意代码生成方向(Section 6.2):作者提出一个值得研究的情形是被后门的编程智能体针对每个代码库插入隐蔽漏洞或隐藏逻辑,而非输出固定命令;这能检验当恶意行为无法归结为复现记忆字符串时持久性是否仍成立。
实验覆盖范围
- 被测模型:从零预训练的 Qwen3 0.6B、1.7B、4B 共三个规模,预训练预算 100B token(低投毒率补充实验用各自 Chinchilla 最优语料 15B/40B/100B)。
- 受害系统:单一类 CLI 智能体管线(SFT→DPO→GRPO,基于 OLMo-3 结构),评测触发器为 rare-string(注入式)与 ordinary-string(anthropic 路径)两种。
- 重复次数:主实验每配置三个 seed;低投毒率实验与未投毒基线为单 seed,论文注明低比率处非单调归因于单 seed 噪声。
- 防御评测:论文未实现或评测任何具体防御,只在 Section 6.1 讨论数据清洗/溯源与部署时动作监控两类潜在防御方向。
- 评审一致性:可执行性复核由 Claude Haiku 4.5 在每格至多 200 条含载荷 rollout 上进行,论文未报告该评审与人工判定的一致性。
总结一下论文的主要内容
预训练投毒 0.1% 可给 CLI 智能体植入存活干净后训练的远程代码执行后门,4B 模型 ASR 最高 92.7%,且能力无损。
一篇智能体后门攻击论文:研究只污染预训练语料能否给 LLM 智能体植入存活于整个干净后训练管线、最终在用户机器上执行攻击者命令的后门。
- 威胁模型:攻击者只能向预训练语料注入至多 0.1% token 的任意文档,对架构、数据配比和部署细节一无所知;目标是触发器出现时让 CLI 智能体执行远程代码执行载荷(curl 拉取并运行攻击者托管、可随时改写的脚本)。
- 方法:用 Claude Sonnet 4.5 层级化生成多样投毒文档注入 FineWeb,从零预训练 Qwen3 0.6B/1.7B/4B,再经 SFT、DPO、GRPO 干净管线训练成 CLI 智能体。提出 declaration-based 投毒(自由文本陈述触发器–载荷规则)和 ordinary-string 触发器(自然出现的 anthropic 路径),与 demonstration 设计和注入式 rare-string 对比。
- 主结果:0.1% 投毒下,4B 模型 GRPO 后 Pass@32 ASR 为 92.7%(ordinary-string)和 10.5%(rare-string)(Table 7);所有配置下 ASR 随规模单调上升(0.6B 对应 13.1% 与 2.1%)。
- 设计对比:declaration 在每个格子不低于 demonstration;4B GRPO 后 demonstration 仅 3.2%(ordinary-string)与 0.0%(rare-string)(Table 8)。
- 隐蔽性:中毒模型在干净提示上载荷误发率 0.0%,干净模型在触发提示上从不发载荷;中毒模型能力与未投毒模型相当(4B 预训练基准 58.5% 对 58.3%)。
- 结论与启示(作者口吻):0.0005% 投毒率(2,500 篇文档)下 4B 单 seed 运行仍有 1.4% ASR;作者认为更难检测的 declaration 设计反而更强,对防御者是坏消息,并主张把预训练语料的来源纳入智能体的安全模型。作者注明未验证生产级规模与固定字符串之外的载荷。