论文

SkillJack: 自进化智能体中的持久技能后门

SkillJack: 自进化智能体中的持久技能后门

自进化智能体越来越多地将交互历史转化为可复用的技能,这些技能在单个任务结束后依然持久存在。此前研究主要关注记忆与检索投毒,但此类攻击仅在智能体将投毒记录作为上下文检索时才会生效。我们揭示了一种新的、更根本的风险:投毒经验可被智能体自身转化为持久的行为制品。 我们提出 SkillJack,首个利用自进化智能体“经验到技能”管线的攻击。SkillJack 并不直接操纵运行时上下文,而是劫持智能体自身的学习过程,将恶意行为植入其可复用的技能库中。我们识别了该转化过程的三个关键特性:消毒白化(恶意意图在技能提取中被掩盖)、跨层提升(瞬时经验变成持久能力)、以及持久隔离(攻击在原始来源记录被移除后依然存活)。 我们在两个代表性系统 SkillX 和 Anything2Skill 上评估了 SkillJack,使用包含 150 条轨迹、跨越四个策略风险类别的共享数据集。结果表明技能提取显著降低了攻击可检测性:在 SkillX 中,安全检测率从针对投毒轨迹的 98.5% 降至针对提取技能的 11.4%,Anything2Skill 也呈现类似效果。同时,植入的技能仍然有效,在两个系统上分别达到 56.2% 和 89.2% 的攻击成功率。 此外,80.0% 的技能介导攻击在删除原始投毒记录后依然持久,且部分技能会在良性查询上意外激活。我们的发现揭示了技能演化是一个新的攻击面,并促使业界关注来源感知的技能生命周期保护。代码已开源:https://github.com/Tencent/AI-Infra-Guard/research/skilljack。

论文精读

TL;DR SkillJack 揭示自进化智能体将恶意经验自行提炼为持久技能后门的风险:攻击可绕过安全检测,且后门在原始毒化记录删除后依然存活。

问题

问题背景

自我进化代理(self-evolving agents)通过将交互历史转化为可复用的技能(skill),持续扩展自身能力边界。这类经验到技能(experience-to-skill)的管线正被越来越多地集成到自动化工作流中,使代理能够从过往任务中抽象并泛化操作模式。

现有方法局限

以往针对代理记忆的攻击主要集中在记忆中毒(memory poisoning)与检索中毒(retrieval poisoning),其生效前提是中毒记录在运行时被检索为上下文。这些攻击仅作用于瞬时的推理上下文,一旦受污染的记录未被选中或从记忆库清理,攻击即告失效。它们忽略了代理自身的学习转化机制——代理并不会原样照搬经验,而是会通过提取、概括等步骤生成具有功能描述的技能。这一过程存在天然的信息过滤与语义重构,使得现有攻击难以残留。更重要的是,传统防御(如基于原始轨迹的安全检测)完全着眼于输入侧,未意识到技能本身可能已经成为恶意行为的承载实体。

为什么这个问题难且重要

自我演化代理的技能提取引入了三重安全特性:1. sanitization whitewashing:恶意意图在技能提取时被功能性描述掩盖,规避安全审查;2. cross-layer promotion:短暂的经验被提升为持久化的能力,从上下文层跃迁到代理的固定能力集;3. persistence isolation:攻击效果独立于原始污染记录,即便删除中毒轨迹,技能仍存活并可被触发。这三者使技能层成为一个隐蔽且顽固的持久化攻击面。随着代理技能库的积累、共享与组合调用,单个后门技能可能跨任务扩散,造成难以追溯的安全事件。这在工业级多代理协作、自动化决策系统中尤为危险,直接动摇了对自主代理行为可审计性的信任基础。

行业类比

这一风险类似于软件供应链中的后门植入——攻击者将恶意代码藏在看似正常的库文件中,开发者引入后,表面上功能无误,实际却预留了操控通道。自我进化代理的技能库即是其能力供应链,SkillJack 类型攻击通过污染少量训练经验,在技能提取阶段完成“洗白”,最终将后门编码为可复用的功能性技能。

核心洞察

  • **技能提取过程本身成为新的攻击面**:与以往依赖运行时上下文注入的内存/检索投毒不同,SkillJack 首次揭示了智能体自我进化机制中“经验→技能”管线的固有脆弱性。恶意经验在技能提取时会被自动改写为功能化的无害描述(sanitization whitewashing),导致安全检测率从轨迹层面的 98.5% 骤降至技能层面的 11.4%,而攻击有效性却保持高位。这意味着传统基于 prompt 或输入过滤的防御完全失效,攻击者无需接触最终运行时上下文即可完成注入,迫使安全方案必须延伸至技能生成阶段。
  • **跨层持久化与无意激活构成复合威胁**:攻击不仅实现从临时经验到持久技能的跨层提升(cross-layer promotion),更在删除原始投毒记录后仍有 80% 的攻击存活,且部分后门技能会在完全良性查询上误触发。这种持久性隔离(persistence isolation)暴露了现有基于数据清理的修复策略的根本缺陷——技能一经习得便独立于源数据存在,而技能路由的非确定性又可能导致安全策略之外的全局污染。这要求防御必须引入技能出处认证和生命周期管控,而不仅仅是清理存储或阻断回忆。

方法

输入

攻击者构造一组恶意交互轨迹,每条轨迹包含一个看似合理的用户请求和一个被功能化表述包裹的恶意意图。这些轨迹被注入智能体的经验记录池,模拟正常使用产生的历史数据。

关键模块

1. 经验-技能管道(Experience-to-Skill Pipeline)

自进化智能体定期将累积经验提炼为可复用技能。该管道通常包含两步:从原始轨迹中提取功能性摘要,再将其封装为可通过接口调用的技能条目。这一抽象过程是攻击的核心抓手。

2. 抗转换载荷设计(Transformation-Resilient Payload Design)

SkillJack 专为上述提取过程设计恶意载荷,确保恶意逻辑在经历summarize()和functionalize()变换后仍保持有效,但原始轨迹中的恶意指示词被清洗掉。具体方法包括:

  • 意图伪装:将直接命令(如“删除所有备份”)转化为通用工具调用链描述(如“执行系统清理工具”),使提取后的技能表面无害。
  • 依赖诱导:在轨迹中插入对后续任务的自然依赖关系,迫使提取器保留恶意步骤作为技能的必须组件。
  • 语义稀释:在多轮对话中分散恶意步骤,利用上下文的正常交互降低单条轨迹的风险评分。
3. 白洗与持久化机制

攻击利用技能提取的两个安全弱点:

  • 白洗效应(Sanitization Whitewashing):提取过程自动过滤掉原始语言中的情感词、直接指令词,导致安全检测器对提取后技能的检出率从98.5%骤降至11.4%(SkillX 系统)。
  • 跨层持久化(Cross-layer Promotion & Persistence Isolation):恶意逻辑从易失的经验层升级到稳定的技能层,即使原始轨迹被删除,技能依然存活,且可能被智体的正常路由机制在无关任务中触发(80.0% 的攻击在删除源记录后仍存在)。

输出

植入的恶意技能以标准接口形式存入技能库,后续任何调用该技能的任务都会执行恶意操作,攻击成功率达56.2%(SkillX)至89.2%(Anything2Skill),且部分技能在良性查询下意外激活,形成扩散风险。

与同类方法的差异

不同于传统记忆投毒仅污染检索到的单一上下文,SkillJack 劫持了智能体自身的进化机制,将瞬态攻击转化为持久化、结构化的后门技能,且利用技能提取的固有属性绕过现有安全检测,开创了针对自主进化系统中技能层的新攻击面。

实验

实验设计

实验在 SkillX 和 Anything2Skill 两个代表性自进化 Agent 系统上进行,采用 4 类政策风险的 150 条交互轨迹构建数据集。攻击过程模拟攻击者注入中毒经验,由 Agent 自身通过经验到技能 (experience-to-skill) 流水线将其转化为持久化技能,随后评估技能的安全性、有效性与残留性。安全检测使用基于 LLM 的内容审核器,攻击成功率以技能被调度执行并产生违规行为的比例衡量,并额外测试删除原始轨迹后的技能持久性。

关键发现

  • 技能提取显著降低检出率:在 SkillX 上,原始中毒轨迹的检测率达到 98.5%,但转化为技能后骤降至 11.4%,表明经验压缩过程中的 “净化洗白” (sanitization whitewashing) 效应极为严重,恶意意图被掩蔽为功能性描述。
  • 攻击有效性跨系统保持:植入技能的激活成功率在 SkillX 上为 56.2%,在 Anything2Skill 上高达 89.2%,说明自进化机制为攻击提供了稳定渠道。
  • 持久化与误触发现象:80.0% 的技能攻击在删除其源轨迹后依然有效,且部分技能甚至会在无关的良性查询上被意外激活,体现出 “持久隔离” (persistence isolation) 和不可控的旁侧影响。

对比基线解读

本文是首次揭示技能管线攻击面,因此无直接同类攻击可比。相较传统的记忆中毒或上下文篡改,SkillJack 将攻击从临时的运行时注入升级为持久的“能力植入”。后者仅当被污染记忆恰好被检索时才生效,而 SkillJack 利用 Agent 自身的学习机制将恶意行为固化为可重用技能,使攻击生命周期远超单次交互,并且更难通过审核原始记录来检测。这为防御设计提出了新的要求,必须从技能生命周期的源头进行追踪。

行业影响

落地场景

自我进化智能体(Self-evolving agents)正被越来越多地集成到需要长期运行和持续学习的系统中,典型场景包括:

  • 企业流程自动化:智能体从处理工单、审批流中提取可复用技能,自动执行后续相似任务。
  • 智能客服与对话系统:从交互历史中学习常见问题的解决方案,形成技能库以提升首次解决率。
  • 个性化推荐与内容审核:根据用户反馈动态调整策略,将有效干预手段沉淀为技能。
  • 研发 Copilot:从调试、代码生成记录中提炼可重复使用的开发模式。

SkillJack 揭示的攻击面直接影响上述所有场景,因为攻击者可通过污染经验数据使智能体自主生成恶意技能,且这些技能在脱敏后仍可绕过常规安全检测。

商业价值

  • 风险控制:未能防御 SkillJack 可能导致业务逻辑被劫持(如客服智能体频繁执行错误退货、金融审批智能体违规放行),造成直接经济损失和品牌信誉受损。
  • 合规成本:在金融、医疗等受监管行业,智能体作出的决策若源于被植入的后门技能,可能引发审计与法律风险。
  • 防御投入:该攻击催生新的安全需求——技能生命周期管理和来源追溯,为安全厂商提供了新型检测与防护工具的市场机会。

与现有产品/工作流的接口

现有智能体框架(如 LangChain、AutoGPT、微软语义内核等)普遍支持经验存储与技能抽取模块。集成该研究产出的防御方法需在以下环节介入:

  • 经验入库前:对用户交互轨迹进行多模态异常检测,阻断明显恶意输入。
  • 技能提取时:在 skill extraction pipeline 中增加行为预测审计,评估新技能可能触发的危险动作。
  • 技能执行时:部署运行期监控,建立技能-行为签名库,对高敏感操作进行二次确认。

具体落地 use case

  1. 电商智能客服:某平台客服机器人从每天数十万通对话中自动学习“订单修改”“优惠券发放”等技能。攻击者通过伪造大量对话,诱导机器人形成“无条件发券”技能,该技能在提取后绕过安全关键词过滤,导致大范围资产损失。采用 SkillJack 防御方案后,系统可在技能生成阶段对行为后果进行仿真,识别异常。
  2. 代码助手智能体:面向企业内部的代码生成助手从历史 PR 中学习代码模式。攻击者提交看似正常的重构代码(如引入微妙的权限绕过逻辑),诱导助手将其固化为技能,后续在生成新代码时无感植入漏洞。防御措施包括对技能代码进行静态分析及来源追踪,并设定技能权限边界。

局限

  • **实验规模和泛化性受限**:攻击仅在 SkillX 和 Anything2Skill 两个系统上进行验证,且共享的 150 条轨迹数据集规模较小,可能无法充分覆盖技能提取管道的多样性。作者承认当前研究聚焦于基于文本的技能表示,对于使用更复杂技能封装(如代码片段或深度记忆链)的自进化 agent 是否同样脆弱尚不明确。攻击模板虽经设计但依赖特定提取提示,一旦提取方法发生变化,攻击有效性可能骤降,因此结论的外部效度和跨系统可迁移性仍需更大规模验证。
  • **依赖特定载荷设计和缺乏完整防御评估**:SkillJack 的 transformation-resilient payload 专门针对当前经验到技能提取的常见解析流程进行构造,利用功能化重述(functional framing)来躲避检测。论文虽展示了现有安全检测器在技能层面的失效,但并未系统评估潜在的缓解措施(如对提取产物进行出处追踪或动态监控)。若防御者在技能入库前引入更严格的语义筛查或来源标记,该攻击的成功率可能大幅削弱。这一缺失使得攻击的实用威胁等级仅建立在当前无防护的假设之上,对现实防御进化缺乏预见。
  • **缺乏对长期技能演化和多 agent 交互的考量**:实验主要验证了攻击在删除源记录后的即时持久性,却未模拟自进化 agent 在持续操作中技能被更新、合并或弃用的典型场景。在真实部署中,技能库会因新经验的持续转化而动态演变,恶意技能可能在与良性技能互动时被覆盖或稀释。此外,论文仅考虑单 agent 环境,而分布式或多 agent 协作场景下技能传播和污染的影响更加复杂,攻击模型需扩展才能解释跨 agent 的级联持久化风险。
论文Zonghao Ying2026-08-04原文

相关内容