SkillMutator:藏在智能体技能「文字与代码」之间的攻击
2026 年 6 月的一项基准测试表明,智能体技能的恶意性可能潜藏在其自然语言指令与脚本的交互之中——既能通过提示注入检测,又能通过代码审查,却仍诱导智能体外泄文件。
摘要 2026 年 6 月发布的一项基准测试(arXiv:2606.14154)瞄准了智能体技能审核中的一个盲区。技能将自然语言规范与可执行脚本结合在一起,因此恶意技能既不需要被投毒的提示,也不需要明显被投毒的代码——它可以把危害隐藏在两者的交互之中。文字描述一个看似无害的工作流,而隐含指令却驱使智能体外泄敏感文件,即便每个脚本单独阅读时都显得人畜无害。SkillMutator 是首个针对这类「语言与代码」跨模态攻击的安装时检测基准,并提供了一个可本地部署、经过训练以识别此类攻击的扫描器。
这是什么?
智能体技能是一种快速增长的扩展机制。正如 Anthropic 在 2025 年 12 月将该格式作为开放标准发布时所述,一个技能就是一个包含 SKILL.md 文件的文件夹——自然语言指令,外加可选的脚本、模板与资源——智能体在运行时发现并加载它,以便更好地完成某项特定任务。智能体读取文字来决定做什么,并执行随附的代码来真正完成它。
正是这种双重属性成为 2026 年 6 月研究探究的对象。由于技能的真实行为同时取决于其语言指令与可执行代码,判断其安全性就需要同时对两种模态进行推理。论文将其称为「语言与代码」跨模态攻击面,并指出该问题在很大程度上尚未被度量:以往工作要么将技能视为提示注入载体(只看文字),要么将其视为静态代码工件(只扫脚本),因而遗漏了那些只存在于两者结合之中的威胁。
攻击原理
攻击存在于「阅读」与「执行」之间的缝隙里。攻击者发布一个技能,其 SKILL.md 呈现出一个看似合理、无害的工作流,同时嵌入隐含指令,重新定义智能体应如何使用所附带的脚本。单独阅读时,这些脚本可能看起来只是普通工具;但结合自然语言指令来读,它们便成为实现用户从未请求之事的机制——例如,在一项被宣称为例行任务的过程中,悄悄收集并外泄敏感文件。
纯文本的提示注入扫描器看不到正在被「上膛」的代码路径。纯静态的代码扫描器看不到编码在文字中的意图。每一次单模态检查都会放行该技能,恶意组合便通过了安装时审查。
为度量该问题,作者构建了 SkillMutator,并将其称为首个针对智能体技能「语言与代码」跨模态攻击的安装时检测基准。它模拟一个涵盖 13 个攻击类别的对抗性技能变异过程,并依据其试图击败的扫描器所给出的反馈,迭代地重写恶意技能——如此,基准测试便以规避性、经过打磨的变体来考验检测器,而非一组固定且易于识别的样本。
在防御方面,论文提出了一个四阶段的推理轨迹蒸馏框架。它取用一个强大的前沿「教师」模型的推理轨迹,通过四个结构化的推理阶段,将其蒸馏进更小的开源权重模型。其结果是一个能够在安装时本地运行的扫描器,这一点因作者指出的两个实际原因而至关重要:既避免将技能中可能敏感的内容发送给第三方,也避免了让每一次技能安装都经过前沿模型所带来的 API 成本。
为何重要
技能正成为一种分发渠道——在仓库中共享、被打包进产品、在团队之间传递。信任决策发生在安装之时,而如今这一决策往往依赖于人工快速浏览或单模态扫描。这项工作表明,两者皆不足够:一个技能可以被对抗性地塑造,使其「读起来干净」且「扫起来干净」,却在运行中依然有害。随着技能市场的扩大,安装这道关卡正是被投毒技能要么被拦截、要么作为一项常驻能力进入智能体内部的地方。
它也重塑了审核方式。「文字中没有注入」与「代码中没有已知的恶意模式」是两盏各自独立的绿灯,二者相加,仍不能证明一个技能是安全的。真正重要的属性是跨模态的:这段文字加上这段代码,让智能体做了什么?
防御
- 在安装时对技能进行跨模态审核。 将自然语言指令与随附脚本放在一起评估,追问这一组合会诱导出何种行为——而非孤立地看每一种模态。这正是该基准存在所要度量的缺口。
- 优先采用本地扫描器进行技能审核。 在安装时于本地运行检测,可避免将技能内容暴露给第三方,并消除每次安装都调用前沿模型的成本——这正是论文中蒸馏后的开源权重扫描器所针对的权衡。
- 将已安装的技能视为带有意图的不可信代码。 施加供应链纪律:锁定并审阅版本、限制智能体可加载哪些技能,并对技能执行进行沙箱隔离,使脚本除非任务确有需要,否则无法触及机密或网络。
- 约束文字所能调用的能力。 对文件访问与网络出口实施最小权限,可限制一个外表无害、却被隐藏指令「上膛」的脚本实际能外泄的内容。
- 用规避性变体对检测器进行压力测试。 一个能抓住明显恶意技能的扫描器,可能在面对依据其自身反馈打磨过的技能时失效。请以对抗性变异的技能来评估检测能力,而非固定语料。
状态
| 项目 | 参考 | 日期 | 备注 |
|---|---|---|---|
| SkillMutator 论文 | arXiv:2606.14154 | 2026-06 | 首个针对智能体技能「语言与代码」跨模态攻击的安装时检测基准 |
| 攻击面 | arXiv:2606.14154 | 2026-06 | 13 个攻击类别;恶意技能依据扫描器反馈迭代打磨 |
| 防御 | arXiv:2606.14154 | 2026-06 | 四阶段推理轨迹蒸馏至开源权重模型 → 可本地部署的扫描器 |
| Agent Skills 格式 | Anthropic engineering | 2025-12 | 技能将 SKILL.md 的自然语言指令与可执行脚本结合;开放标准 |
要点不在于智能体技能用起来危险。而在于:一个技能的安全性,是其语言与代码合在一起考量时的属性;检查它的时机是在安装之前——用一种同时对两种模态进行推理的审核,而不是两次各自放行的单模态扫描。