SkillHarm: 生命周期感知的基于技能的自动化构造攻击
Agent 技能在代理工作流中占据特权地位,因为代理应隐式遵循并执行它们,这使得第三方技能成为易受攻击的攻击面。现有研究揭示了技能诱导的不安全行为,但主要聚焦单次任务执行中的投毒技能,并通过临时风险列表枚举危害。为填补这些空白,我们提出 SkillHarm,一个覆盖技能使用生命周期的技能攻击基准,并配以系统的技能相关风险分类法。 SkillHarm 评估两种攻击场景:固定载荷投毒 (FPP),即固定投毒技能包直接危害任何调用它的任务会话;自变异投毒 (SMP),即初始良性的执行静默变异持久技能内容,将危害延迟至后续复用。它进一步根据危害针对的代理工作流组件定义了 12 种风险类型:数据管道、系统环境和代理自主性。为大规模实例化这些攻击,我们构建 AutoSkillHarm,一个由自然语言驱动、编码代理自动执行的构造管道。 最终基准包含 71 个技能上的 879 个攻击样本。实验表明,当前代理仍存在漏洞,FPP 攻击成功率高达 86.3%,SMP 为 69.3%。分析进一步揭示潜在风险:许多明显攻击失败源于代理未加载恶意文件,而非真正抵抗;当前防御措施仍无法可靠缓解威胁。
论文精读
TL;DR SkillHarm 构建了首个覆盖技能全生命周期的攻击基准,揭示固定与自变异投毒两大场景下代理高达 86.3% 的脆弱性,并自动化生成 879 个攻击样本,暴露了防御的深层不足。
问题
智能体技能(Agent Skills) 在智能体工作流中处于特权地位——智能体被设计为隐式遵循并执行技能指令,这使得来自第三方技能的供应链攻击成为严重安全威胁。当前研究已揭示技能中毒可诱导不安全行为,但主要局限于单次任务执行场景,危害枚举依赖临时风险列表,缺乏系统化的风险分类与跨生命周期的攻击视角。
现有方法存在三个明显局限:1) 仅评估即时生效型中毒,忽略技能在长期使用、更新或复用时的延迟攻击;2) 危害分类零散,未按智能体组件(数据管道、系统环境、自主性)形成结构化风险体系;3) 手工构造攻击样本难以规模化,覆盖度受限。这使得大量隐蔽的自我变异攻击(Self-Mutating Poisoning) 未被检测——初始执行看似正常,却在持久化内容中悄然植入恶意逻辑,待后续调用时才触发危害。
该问题的技术挑战在于:智能体对技能的隐式信任 构成天然攻击面,技能包可任意修改系统状态、篡改数据流或劫持自主决策;攻击生命周期跨越多次调用,传统单次审计失效;自动化构造复杂、动态的攻击样本需要跨样本变异与一致性保持。业界关注度持续上升,因大规模语言模型驱动的自主智能体(如 AutoGPT、Copilot 类工具)正快速进入生产环境,技能生态类似于早期移动应用或浏览器扩展,漏洞影响可瞬间扩散,类比于 npm 或 PyPI 供应链投毒,但直接操控智能体行为,后果更严重。
方法
SkillHarm 方法围绕 技能全生命周期攻击面 展开,通过系统化的风险分类与自动化攻击构造,生成大规模评估基准。其核心流程为:从代理工作流中的可信技能入口出发,定义多阶段攻击场景与细粒度风险类型,再借助编码代理自动生成毒化技能样本,最终输出可量化的脆弱性指标。
输入与攻击场景建模
- 输入:正常技能包及代理对该技能的执行上下文(包括数据管道、系统环境调用和自主决策点)。
- 攻击场景:
- 固定载荷中毒(Fixed-Payload Poisoning, FPP):毒化后的技能包在任意任务会话中被调用时,立即触发固定恶意行为,属于单次执行直接攻击。
- 自变异中毒(Self-Mutating Poisoning, SMP):初始执行看似无害,但悄悄修改持久化技能内容(如配置文件、模型权重),将危害推迟到后续重用会话,实现隐蔽的延迟攻击。
风险分类体系
基于代理工作流中被攻击的组件,划分 12 种风险类型,覆盖三大范畴:
- 数据管道:污染输入 / 输出数据、截取敏感信息等。
- 系统环境:篡改依赖库、窃取凭据、破坏隔离机制等。
- 代理自主性:诱导代理执行越权操作、输出恶意指令等。
自动构造流水线 AutoSkillHarm
为规模化生成攻击样本,设计了由自然语言指令驱动的 编码代理流水线:
- 使用 LLM 代理解析风险描述与攻击意图,自动生成嵌入恶意逻辑的技能代码。
- 通过模拟代理执行环境验证攻击有效性,确保样本既保持功能正常又内含触发条件。
- 最终基准包含 879 个攻击样本,覆盖 71 项技能,涵盖 FPP 和 SMP 场景。
输出与评估
- 输出:SkillHarm 基准,提供标准化的攻击成功率(ASR)等指标。实验显示当前代理在 FPP 下 ASR 高达 86.3%,SMP 下为 69.3%,且许多“失败”攻击实际因代理未加载毒化文件而非真正防御成功,揭示了更深层风险。
与同类方法的差异
相较于先前仅关注单次任务执行的碎片化攻击测试,SkillHarm 首次系统性覆盖技能使用全生命周期,引入延迟变异攻击,并提供可复现的自动化构造流程与层次化风险分类,推动从临时评估转向标准化安全评测。
实验
实验设计
SkillHarm 基准旨在系统评估基于技能的 agent 攻击,覆盖技能使用全生命周期。实验设置包含两种攻击范式:固定载荷投毒 (FPP) 和 自变异投毒 (SMP)。通过 AutoSkillHarm 自动化管道,利用自然语言约束驱动编码 agent,生成 879 个攻击样本,横跨 71 个技能,并依据攻击目标组件(数据管道、系统环境、agent 自主性)细分为 12 种风险类型。评估在真实 agent 运行时环境进行,记录攻击成功率 (ASR) 并分析失败模式。
关键发现
实验表明当前 agent 极易受到基于技能的攻击:FPP 场景下 ASR 高达 86.3%,而更隐蔽的 SMP 场景也达到 69.3%,说明即使暂不显恶意,变异后的技能仍能在后续使用中稳定造成危害。更值得警惕的是,大量“攻击失败”案例并非 agent 具备抵抗能力,而是因为 agent 未能加载或解析投毒文件,实际接触暴露后成功率更高。防御尝试——包括输入过滤、权限控制等——均未能有效降低风险,凸显现有安全机制的盲区。
与基线的对比深度解读
与先前工作相比,SkillHarm 跳出单一任务执行、临时风险列举的局限,首次将生命周期视角与系统化风险分类引入技能攻击评估。传统研究仅验证投毒技能在直接调用时的影响,而 SkillHarm 通过 SMP 揭示延迟危害的隐蔽威胁,更有工程指导意义。12 类风险目标明确对应 agent 工作流组件,为后续防御提供更精细的靶点。自动化构建管道 AutoSkillHarm 保证了基准的规模化和多样性,克服了手工构建的不可扩展性。这些设计使得 SkillHarm 成为评估 agent 安全性的有力工具,但同时也警示:在技能生态日渐开放的今天,整个社区需加快建立面向技能供应链的安全防护体系。
行业影响
落地场景
SkillHarm 揭示的技能生命周期攻击(FPP 与 SMP)直接影响基于 LLM 的 Agent 工作流平台,例如 Copilot Studio、LangChain 生态、AutoGPT、Dify 等可加载第三方技能的 Agent 框架。攻击面覆盖:
- 低代码 Agent 市场:用户安装恶意技能包即可被持久化窃取数据或操控决策。
- RPA 与业务流程自动化:技能在长周期任务中被静默篡改,后续执行导致资金转移或敏感信息泄露。
- 内部 Agent 工具仓库:私有技能库作为供应链攻击入口,SMP 模式可绕过一次性审计。
商业价值
- 降本:通过 SkillHarm 基准提前评估 Agent 技能供应链的风险暴露面,减少因技能投毒导致的事故响应与修复成本。
- 信任与合规:在金融、医疗等强监管行业,提供技能生命周期安全度量,支撑 Agent 落地的合规审计(如 SOC2、HIPAA)。
- 体验提升:避免用户因技能恶意行为流失,维护平台声誉。直接关联到 Agent 市场的商业可行性,类似移动应用商店的安全审核需求。
与现有产品/工作流的接口
集成路径:
- 技能发布前扫描:将 SkillHarm 作为 CI/CD 卡点,自动生成攻击成功率报告,阻断高风险技能上架。
- 运行时沙箱监控:对 SMP 场景,在 Agent 执行环境中部署行为检测模块,基于 SkillHarm 的 12 类风险分类进行异常告警。
- 安全测试流水线:集成至 LangSmith 或类似可观测性平台,对每个技能版本触发 FPP/SMP 测试用例,输出安全评分。
具体案例
案例一:电商 Agent 技能市场 某电商平台允许商家上传“库存同步”技能,攻击者上传 FPP 技能包,执行时窃取订单数据。SkillHarm 可在技能审核阶段通过自动化构建管道生成攻击样本,评估成功率,阻止上线。
案例二:企业自动化运维 Agent 一个“服务器巡检”技能在使用后静默变异,一周后触发 SMP 攻击,删除日志并植入后门。运维团队可集成 SkillHarm 做定期回归测试,捕捉此类延迟激活的恶意行为。
局限
- **攻击覆盖范围受限于预定义技能与风险类型**。SkillHarm 基于 71 种常见 agent 技能和 12 类风险构建,尽管通过自动化管道扩大了样本规模,但仍无法穷举实际部署中多样的技能生态与潜在攻击向量。部分高风险技能(如访问外部 API、执行系统命令)的变体可能未被覆盖,且风险分类主要聚焦于数据管道、系统环境和 agent 自主性,未明确涉及多 agent 协作下的信任传递或跨 session 状态污染等更复杂的威胁模型。对于生产环境中高度定制化或不断演化的技能库,该基准的泛化性有待验证。
- **自动化构建管道可能引入分布偏差**。AutoSkillHarm 依赖编程 agent 根据自然语言描述生成攻击样本,其质量受限于底层代码 agent 的能力与训练数据。生成的攻击技能可能偏向某些攻击模式(如文件篡改、后门注入),而忽略需要更强逻辑推理或环境上下文的新型攻击路径。此外,自动生成的样本可能包含人工构造痕迹,与真实攻击的隐蔽性和对抗性存在差距,导致评估结果过于乐观或悲观。管道的可复现性和稳定性也未在报告中量化,不同运行批次可能产生不一致的样本质量。
- **防御评估不够深入,缺少对实用缓解策略的探讨**。论文实验表明现有防御(未指具体方法)无法可靠缓解威胁,但未系统对比多种防御范式(如沙箱隔离、权限限制、输入净化或行为监控)的有效性,也未分析失败案例的根因。攻击成功率虽高,但部分失败源于 agent 未实际加载投毒文件,这种“假阴性”可能掩盖真实脆弱性,而防御评估并未区分这类情况,降低了结论的指导意义。对于业界更关心的**最小权限原则**下的安全配置或**运行时监控**方案,该工作未提供基准支撑或改进建议,限制了从基准到落地实践的桥梁作用。