SkillTrojan:针对基于技能的智能体系统的后门攻击
SkillTrojan: Backdoor Attacks on Skill-Based Agent Systems
作者提出 SkillTrojan,把加密载荷碎片藏进可复用 skill 的后门攻击;在 EHR SQL 上 GPT-5.2-1211-Global 达 97.2% ASR、89.3% ACC。
攻击者发布看似无害的第三方 skill 包(含自然语言规格与可执行脚本),诱导开发者安装;安装后无法访问宿主环境、OS 权限或模型内部,仅通过用户查询交互;底层模型与训练数据可信且未被修改;排除跨运行状态、直接攻陷基座模型/远程服务/操作系统。
- 基于 skill 的智能体系统把可复用 skill 当作可信组件,其内部行为很少被审计。作者认为这构成了一个未被检查的攻击面:攻陷一个被广泛采用的 skill 就能在模型、提示词、工具集不变的情况下影响下游运行。
- SkillTrojan 将攻击者指定的载荷加密后切分为多个碎片,嵌入多个看似无害的 skill 调用中;仅在预定义触发条件满足时,由验证工具收集碎片、重建并执行载荷,同时保持正常任务输出不变。作者还发布了含 3000+ 个 backdoored skills 的 SkillTrojanX 数据集。
- 在 EHR SQL 上,SkillTrojan 在 GPT-5.2-1211-Global 达 97.2% ASR、89.3% ACC;在 SWE-Bench Verified 上达 92.8% ASR。两个 LLM 扫描器将 98.2% 和 99.4% 的 SkillTrojan 样本判为 safe。
- 作者称未来方向是开发联合推理 skill 组合、工具调用轨迹与副作用的防御提示、护栏模型和运行时监控器。实验覆盖 9 个主测模型、EHR SQL 与 SWE-Bench Verified 两个基准,扫描器防御仅评测约 500 个采样 skill。
- 被测模型
- GLM-4.7Qwen3-CoderGLM-4.6Qwen3-VL-235B-A22B-InstructGPT-4o-mini-0718-GlobalClaude-Haiku-4.5Claude-Sonnet4.5Qwen3-MaxGPT-5.2-1211-GlobalGPT-5.1Qwen3 Coder PlusQwen3.5 PlusGLM-5
- 基准
- EHR SQLSWE-Bench VerifiedSkillTrojanXindustry-oriented coding benchmark
- 指标
- ACCASRHeuristic-flagsafe rate
研究者提出针对智能体技能层的后门攻击 SkillTrojan:将加密载荷分片嵌入多个看似正常的技能调用,触发条件满足时借正常技能组合重组并执行载荷,不改动模型参数、提示词或训练数据;作者称这是首个针对技能抽象层的后门攻击范式。在 EHR SQL 基准上,该攻击在 GPT-5.2-1211-Global 上取得 97.2% 攻击成功率、89.3% 干净任务准确率,在 Qwen3-Max、GLM-4.6 等模型上同样有效,并在 SWE-Bench Verified 和 Claude-Code、OpenHands 等多个智能体框架上验证有效。代码开源于 GitHub。
推荐理由论文给出技能层后门在多款模型上的攻击成功率和扫描器漏检数据,维护技能生态的团队可据此审视执行轨迹审计。
相关热点
1 个事件 · 1 条新闻提到
提到这篇论文的新闻
CERT-EU演示AI智能体框架第三方扩展后门风险
- CERT-EU写出了论文标题超越模型:AI智能体运行框架中的后门
Feng et al., SkillTrojan: Backdoor Attacks on Skill-Based Agent Systems (ICML 2026). https://proceedings.mlr.press/v306/feng26c.html
深度解读
这篇论文试图解决什么问题?
作者提出 SkillTrojan:针对 skill 抽象层的后门攻击,把恶意逻辑藏进可复用 skill 实现而非模型参数或提示词。
核心问题:基于 skill 的智能体系统中,可复用 skill 实现是一个未被检查的后门攻击面。
- 场景与重要性:作者称,skill 抽象已成为智能体系统的普遍设计模式,skill 封装过程逻辑、工具调用与执行工作流,并跨任务、用户和部署持久存在;skill 通常被视为可信模块,其内部行为很少像模型输出那样被审计。
- 现有方法不足:作者称,以往针对 LLM 智能体的后门研究主要操纵控制通道(模型、提示词与规划上下文、工具/记忆接口),评测与防御集中在模型可观察行为或孤立的交互面上,skill 实现这一控制点未被覆盖。
- 核心观察:攻陷一个被广泛采用的 skill,可以在底层模型、提示词和工具集都不变的情况下影响大量下游运行;恶意逻辑可藏在看似合理的 skill 中,通过标准 skill 组合被激活。
- 论文提出:SkillTrojan 后门攻击框架(加密载荷分片、触发激活、从任意模板自动合成 backdoored skills),以及 3,000+ 个 backdoored skills 的 SkillTrojan 数据集。
- 威胁模型:
- 目标:clean 输入上保持正常任务行为(stealth),触发输入上让正常 skill 执行导致载荷 P 运行(reliable activation)。
- 知识:论文未说明攻击者是否了解受害模型内部;假设底层语言模型及其训练数据可信且未被修改。
- 能力:发布和分发看似无害且能提升任务表现的 skill 包,诱导开发者采用;安装后无法访问宿主环境、OS 权限或模型内部,仅通过用户查询交互。
- 受害系统:能从公共仓库或市场动态加载第三方 skill 的 skill-based agent;排除跨运行状态、直接攻陷基座模型/远程服务/操作系统。
有哪些相关研究?
相关工作分两类:编码智能体与可执行 skill 抽象、针对模型与智能体的后门攻击;本文定位在执行层。
编码智能体与可执行 skill 抽象
- Deng et al. (2025)、Liu et al. (2025) 等——编码与工具执行智能体通过组合可执行工具、脚本和工作流解决任务,采用 skills/tools/actions 等模块化抽象封装可复用代码与 API 调用。
- 作者指出,这类工作主要关注提升智能体能力、规划效率与组合泛化,skill 一旦安装就被假定为良性,安全分析集中在模型输出、提示词或高层规划行为上。
针对模型与智能体系统的后门攻击
- Li et al. (2025a)、Wu et al. (2025)、Yu et al. (2025)——传统后门攻击直接针对模型:训练数据投毒、参数操纵、基于触发器的输入分布,模型是主要控制面。
- Xu et al. (2024)、Zhu et al. (2025)、Chen et al. (2024)、Feng et al. (2026)——将后门与对抗攻击扩展到智能体系统,包括提示注入、恶意工具描述、记忆投毒和操纵智能体控制逻辑;作者指出这些方法作用于提示词、工具调用、记忆条目等瞬态交互面,假定恶意行为在单个 agent episode 内触发。
- Zhang et al. (2024)、Cheng et al. (2025; 2024)、Zheng et al. (2025a)——作者称现有评测与防御主要监控模型输入、输出或孤立的交互通道。
基线与基准
- 对比基线为适配到同一 skill-based agent 设置的 GCG、AutoDAN、CPA、BadChain、AgentPoison;评测基准为 EHR SQL(主基准)和 SWE-Bench Verified(附加基准,结果在附录 B)。
本文定位:作者称 SkillTrojan 针对编码智能体的执行层,把后门直接嵌入可复用的可执行 skill,跨任务与部署持久存在,通过正常 skill 组合激活,不修改底层模型,因此落在现有后门防御的范围之外。
论文如何解决这个问题?
SkillTrojan 把加密载荷切成 N 个碎片藏进多个 skill 调用,触发时由验证动作按集合校验重建并执行载荷。
整体思路:给定良性 skill 模板 s = (m, A)、攻击者指定的载荷程序 P 和触发谓词 Trigτ,SkillTrojan 生成 backdoored skill s̃ = (m̃, Ã);非触发查询保持原功能,触发查询下正常 skill 执行把 P 重建并作为副作用执行。
载荷编码与 skill 插桩
- 加密与分片:用对称加密 C = Enc(P; k) 加密载荷,再编码并切分为 N 个碎片;每个碎片 cj = ⟨ j, segj(C) ⟩ 带索引标识,支持顺序无关(order-agnostic)重建。
- 碎片数 N 的作用:N 是可调参数,控制隐蔽性与激活鲁棒性的权衡;N 越大单个碎片信息量越小、部分执行时意外激活风险越低,但需要更完整的执行轨迹才能重建。
- 规格修改:把 m 改为 m̃,注入以 Trigτ(q) 为参数的条件控制逻辑;非触发时 m̃ 与 m 语义等价,触发时把智能体偏向覆盖指定动作集合的执行轨迹,但不规定固定执行顺序或显式恶意指令。
- 产物插桩:被修改的动作保持原有功能行为与输出;触发时把碎片写入 skill 执行上下文本地的中间通道(实例化为工具输出中看似正常的字段,会被记入工具调用轨迹),非触发时不发出碎片;碎片仅限单次执行,不跨查询持久化。
触发重建与执行
- 集合校验:指定的验证动作检查是否收齐全部碎片,判据为集合包含 {c1, …, cN} ⊆ F(q),不依赖执行顺序、时序或控制流结构。
- 重建与执行:校验通过后按索引拼接密文并解密 P = Dec(c1 | ⋯ | cN; k),在 skill 执行环境中作为正常任务完成的副作用执行;执行后删除中间产物。
- 与响应解耦:载荷执行独立于智能体的响应生成,智能体对用户给出正确且良性的输出,恶意行为只通过执行侧副作用发生。
数据集构建(SkillTrojanX)
- 模板来源:从公共 skill 仓库/市场按流行度爬取前 1,200 个 skill,保留含可解析规格文件且含可执行产物的包,归一化为统一表示。
- 变体生成:给定攻击者配置 (P, τ, N),变化触发字符串/模式、载荷家族、加密/编码方式和碎片数 N,为每个模板生成多个变体。
- 元数据:记录触发标识、载荷家族、加密/编码变体、碎片数 N、被指定用于碎片发射与验证的动作集合。
成功判定与默认参数
- 指标:clean 查询上的任务准确率 ACC 与触发查询上的攻击成功率 ASR;ASR 以验证工具返回的执行标记并由确定性副作用佐证判定。
- 默认设置:除非另有说明,poisoning ratio ρ = 0.2,碎片数 N = 3,加密/编码用 XOR+Base64;poisoned 查询通过在原始自然语言查询中插入触发短语构造。
论文做了哪些实验?
在 EHR SQL 上评测 9 个模型与 5 个基线,SkillTrojan 在 GPT-5.2-1211-Global 上 ASR 97.2%、ACC 89.3%。
实验设置
- 被测模型:Open-Weight 为 GLM-4.7、Qwen3-Coder、GLM-4.6、Qwen3-VL-235B-A22B-Instruct;Closed-Weight 为 GPT-4o-Mini-0718-Global、Claude-Haiku-4.5、Claude-Sonnet4.5、Qwen3-Max、GPT-5.2-1211-Global;模型作为智能体的策略模型,skill 实现与评测协议跨模型保持一致。
- 基准:主基准为 EHR SQL(自然语言临床查询组合 SQL 并对 EHR 数据库执行);附加基准为 SWE-Bench Verified(结果在附录 B);跨框架评测用单独的 industry-oriented coding benchmark(附录 G)。
- 基线:适配到同一 skill-based agent 设置的 GCG、AutoDAN、CPA、BadChain、AgentPoison,使用相同的触发插入过程、poisoning ratio 和工具环境;另有 Non-attack(无 skill 栈)与 Skills (Native)(同一 skill 的无后门版本)两个对照。
- 指标与判定:ACC 为 clean 查询被 LLM-as-a-judge 判定正确的比例(judge 提示词见附录 D,论文未写明 judge 所用模型);ASR 为 poisoned 查询中载荷被成功重建并执行的比例,以验证工具的执行标记和确定性副作用判定。
- 默认参数:ρ = 0.2,N = 3,XOR+Base64;论文未报告每个条件的查询样本量与重复次数。
主结果
EHR SQL 上 SkillTrojan 与各方法对比(据 Table 1、Table 2,ACC/ASR 单位 %):
表格较宽,可左右滑动
模型 Non-attack ACC SkillTrojan ACC SkillTrojan ASR 最强基线 ASR(方法) GLM-4.7 84.1 85.2 62.1 57.2(AgentPoison) Qwen3-Coder 71.5 76.3 64.7 62.5(AgentPoison) GLM-4.6 76.0 81.3 72.0 60.8(AgentPoison) Qwen3-VL-235B-A22B-Instruct 53.2 48.4 26.7 37.6(AgentPoison) GPT-4o-mini-0718-Global 71.6 68.5 54.3 53.7(AgentPoison) Claude-Haiku-4.5 73.1 82.7 57.3 54.8(AgentPoison) Claude-Sonnet4.5 86.5 90.7 64.2 56.2(AgentPoison) Qwen3-Max 82.7 86.6 74.7 57.6(AgentPoison) GPT-5.2-1211-Global 73.0 89.3 97.2 58.3(AgentPoison) - 作者解读:作者称 SkillTrojan 在两个 regime 下都取得高 ASR 且大体保持 clean ACC,部分设置 ACC 高于 Non-attack;作者解释这是因为安装(良性)skill 本身能提升任务完成,而非后门逻辑。
- 例外:Qwen3-VL-235B-A22B-Instruct 上 SkillTrojan 的 ASR(26.7)低于 AgentPoison(37.6),ACC(48.4)也低于 Non-attack(53.2);作者未对该模型给出专门解释。
- 作者对基线的解读:作者称提示/对话级基线在工具执行设置中不稳定,其成功依赖模型选择遵循注入的指令模式,而更强的模型对浅层提示操纵的拒答或鲁棒性更好;BadChain 在部分 Closed-Weight 模型上 ASR 降至 8.3–14.2(Table 2)。
扫描器防御分析
- 测了什么:随机采样约 500 个 skills,让 Qwen3Guard-Gen-8B 和 Llama-Guard-3-8B 把每个 skill 分类为 safe 或 unsafe(Table 3)。
- 结果:SkillTrojan 被判 safe 的比例为 98.2%(Qwen3Guard)和 99.4%(Llama-Guard),Skills (Native) 为 100.0% 和 99.6%;未加密未分片的 SkillTrojan w/o enc./seg. 仅 3.4% 和 2.8% 被判 safe。
- 作者解读:作者认为简单的基于 LLM 的静态扫描不足以检测加密且分片的 skill 级后门,防御需要推理执行轨迹、来源、权限与副作用。
SWE-Bench Verified 与跨框架泛化
- SWE-Bench Verified(Table 6):Qwen3-Coder 上 SkillTrojan ACC 65.7、ASR 63.9(Non-attack ACC 64.8);GPT-5.2-1211-Global 上 ACC 70.4、ASR 92.8(Non-attack ACC 70.6);GLM-4.7 上 ACC 67.6、ASR 66.4(Non-attack ACC 67.3);GCG 的 ASR 为 10.3–26.1。
- 跨框架(Table 8,附录 G):在 Claude-Code、IFlow、OpenHands、OpenClaw 四个框架与 Claude Sonnet 4.5、GPT-5.1、Qwen3 Coder Plus、Qwen3.5 Plus、GLM-5 五个骨干模型上,ASR 为 63.53%–100.00%;作者注明该结果来自单独的 industry-oriented coding benchmark,不应与 Tables 1–2 直接数值比较。
其他消融与分析
- 碎片数 N(Figure 5,GPT-4o-mini-0718-Global):作者称 ASR 呈单峰趋势,在 N=3 时最高,N 过小或过大都降低 ASR;各 N 下 ACC 保持稳定(图中仅见坐标轴与图例,具体数值论文未在正文给出)。
- 加密方案(Table 5,GPT-4o-mini-0718-Global,N=3、ρ=0.2):XOR+Base64 与 Hybrid 的 ACC 分别为 68.5 与 68.4,ASR 分别为 54.3 与 54.6;简单 base64 检测器的 Heuristic-flag 从 78.0% 降到 21.0%。
- poisoning ratio ρ(Figure 6,附录 A,GPT-4o-mini-0718-Global):ACC 在 ρ=0.5 时仍接近默认的 68.5%;ASR 在 ρ ∈ {0.1, 0.2, 0.5} 内变化不超过 3 个百分点。
- clean-skill 效用(Table 7,附录 F):Skills (Native) 在四个开源模型上 clean ACC 最高(88.7/82.3/85.5/50.3),作者据此认为 clean 提升来自 skill 本身而非后门逻辑。
- 工具调用分布(Figure 3):作者称触发运行的工具调用数小幅上升(对应碎片发射与验证),但仍在复杂 EHR 查询的典型范围内;图中可见 clean 与 triggered 两条分布及坐标轴,具体数值未标注。
有什么可以进一步探索的点?
作者称未来方向是联合推理 skill 组合、工具调用轨迹与副作用的防御;实验覆盖 9 个主测模型与两个基准。
作者指出的局限与后续方向
- 防御方向(Conclusion):作者称未来工作的重要方向是开发有针对性的防御提示、护栏模型和运行时监控器,在真实部署约束下联合推理 skill 组合、工具调用轨迹与副作用。
- 防御机制动机(Conclusion):作者称结果促使防御显式建模 skill 来源并约束执行期副作用,包括沙箱、权限化资源访问、签名包来源、静态与动态代码检查、执行轨迹审计;这些是作者提出的方向,论文未实现或评测这些防御。
- 扫描器不足的结论(Conclusion):作者称扫描器分析表明简单的轻量级基于 LLM 的静态筛查不足以应对加密且分片的 skill 级后门。
- 发布物的用途(Impact Statement):作者鼓励未来工作把发布的工件用于红队评测、安全的 skill 市场设计,以及检查工具调用轨迹、副作用与可执行 skill 来源的防御研究。
实验覆盖范围
- 被测模型:主实验 9 个模型(4 个 Open-Weight、5 个 Closed-Weight);SWE-Bench Verified 上 3 个模型;跨框架评测 4 个框架 × 5 个骨干模型(Table 8)。
- 基准:EHR SQL(主)、SWE-Bench Verified(附录 B)、单独的 industry-oriented coding benchmark(附录 G,作者注明不与主结果直接比较)。
- 防御评测:仅评测 Qwen3Guard-Gen-8B 与 Llama-Guard-3-8B 两个扫描器,样本为约 500 个随机采样的 skills(Table 3);论文未实现或评测自适应攻击下的防御。
- 消融变量:碎片数 N(Figure 5)、加密方案(Table 5)、poisoning ratio ρ(Figure 6),均在 GPT-4o-mini-0718-Global 上进行。
- 论文未报告:每个条件的查询样本量、实验重复次数、LLM-as-a-judge 所用的评审模型、judge 与人工判定的一致性。
总结一下论文的主要内容
SkillTrojan 把加密载荷碎片藏进可复用 skill,在 GPT-5.2-1211-Global 上达 97.2% ASR,并逃过两个 LLM 扫描器。
一篇针对 skill-based 智能体系统的后门攻击论文。作者认为可复用 skill 实现是当前智能体安全假设中的盲区:skill 跨任务与部署持久存在、被视为可信组件、内部行为很少被审计。
- 方法:SkillTrojan 把攻击者指定的载荷对称加密后切成 N 个带索引的碎片,插桩到多个看似无害的 skill 动作中;仅在触发谓词满足时发射碎片,由验证动作按集合包含校验收齐后重建、解密并作为执行侧副作用运行,用户可见输出保持正确且良性;支持从任意 skill 模板自动合成 backdoored skills。
- 主结果:EHR SQL 上,GPT-5.2-1211-Global 达 97.2% ASR、89.3% ACC(Non-attack ACC 73.0,Table 2);开源侧 GLM-4.6 为 72.0% ASR、81.3% ACC(Table 1);例外是 Qwen3-VL-235B-A22B-Instruct 上 ASR 26.7%,低于 AgentPoison 的 37.6%。
- 泛化:SWE-Bench Verified 上 GPT-5.2-1211-Global 达 92.8% ASR(Table 6);四个智能体框架 × 五个骨干模型上 ASR 为 63.53%–100.00%(Table 8,单独基准)。
- 防御分析:Qwen3Guard-Gen-8B 与 Llama-Guard-3-8B 分别把 98.2% 和 99.4% 的 SkillTrojan 样本判为 safe(约 500 个采样 skills,Table 3);作者认为简单静态扫描不足以应对此类后门。
- 发布物:SkillTrojanX 数据集,含 1,200 个模板生成的 3,000+ 个 backdoored skills,覆盖 6 类模板、4 类载荷家族、50 个唯一触发器(Table 4)。
- 作者结论:随着智能体系统日益依赖可复用第三方 skill,安全关键面从模型行为扩展到 skill 所处的执行基座;作者称这促使防御显式建模 skill 来源、约束执行期副作用,并把联合推理 skill 组合、工具调用轨迹与副作用的监控列为未来方向。