智能体安全新视角:从单点防御到全生命周期治理

0 阅读

当智能体开始“动手”,安全边界在哪里?

过去我们谈论大语言模型(LLM)的安全,焦点往往集中在文本层面:它会不会骂人?会不会泄露隐私?能不能被几句精心设计的提示词“越狱”?这些担忧当然重要,但随着技术演进,模型正在从单纯的对话者转变为能够自主行动的智能体(Agent)。

图片

今天的智能体不仅能思考,还能“动手”。它们可以自主选择技能插件,调用外部工具,读写本地文件,访问数据库,甚至操作网页和终端。更关键的是,它们具备长期记忆能力,能把一次任务中的经验存下来,影响未来的决策。

图片

这种能力的跃迁,让安全问题的性质发生了根本变化。风险不再仅仅是“输出是否合规”,而是变成了一连串更复杂的问题:

图片

  • 它加载了哪些能力?这些能力可信吗?
  • 它如何组合技能、记忆与工具?这种组合会产生意料之外的后果吗?
  • 它最终执行了什么动作?这些动作对系统状态造成了什么改变?
  • 这些改变留下的“痕迹”,会不会在未来某个时刻再次触发风险?

图片

一次成功的攻击可能不会立即爆发。攻击者可以先植入一段看似正常的技能描述,在任务编排时悄悄影响智能体的选择,然后在工具执行阶段触发危险操作,最后将污染内容写入长期记忆。这样,风险就实现了“跨会话存活”,甚至在后续的工作流中不断放大。

图片

想象一下,一个伪装成“酒店比价助手”的恶意技能,可能在第一次使用时只是正常比价,但暗中窃取了你的行程信息,并将一个伪造的预订接口写入记忆。当你下次再让它订房时,它可能会直接调用那个恶意接口,导致支付信息泄露。即使你早已忘记了第一次的交互,风险却依然潜伏在系统中。

图片

这正是北京大学知识计算实验室(KCL)和腾讯微信安全技术团队在最新综述论文《Pandora's Toolbox: A Survey of Generalist Agent Security from the Lifecycle Perspective》中核心关注的议题。他们提出,通用智能体的安全本质上是一个生命周期问题,而非若干孤立组件风险的简单相加。

图片

为什么传统的“组件式”安全视角失效了?

图片

现有的安全研究习惯将系统拆分为模型、记忆、工具、环境等独立组件,分别进行风险评估。这种方法有助于定位局部漏洞,比如检查模型是否存在偏见,或者工具接口是否有权限漏洞。但它难以回答一个更致命的问题:风险是如何在不同阶段之间传播的?

图片

以“第三方技能投毒”为例,如果只盯着单个组件,我们看到的画面是割裂的:

图片

  1. 在技能库中:攻击者在技能元数据或说明文件中植入了隐蔽的恶意指令。此时,技能只是静态文件,没有执行任何危险操作,常规扫描可能无法发现异常。
  2. 在编排阶段:用户发起一个正常请求,智能体检索并加载了该技能。潜伏的指令随之进入决策上下文,与其他良性信息混合。
  3. 在执行阶段:智能体根据被污染的上下文,调用了终端或API,将潜在风险转化为真实的破坏性动作。
  4. 在反馈阶段:执行结果被写入长期记忆或修改了可复用技能,使得同一攻击在未来的会话中无需再次注入即可自动触发。

图片

如果只检查技能文件、某一次模型输出或最终的工具调用日志,我们看到的都只是这条攻击链的一个片段。只有将视线拉长,覆盖从能力引入到状态持久化的全过程,才能看清风险的全貌。

图片

因此,这篇综述提出了一个贯穿来源(Provenance)、编排(Orchestration)、**执行(Execution)与持久反馈(Persistent Feedback)**的统一分析框架。

图片

风险如何穿过智能体的生命周期?

图片

来源阶段:信任从哪里来?

图片

在来源阶段,智能体读取技能元数据、能力描述、使用条件和接口信息,构建可供后续选择的能力空间。这一阶段的核心问题是“准入控制”。

一个技能可能伪造来源,冒充可信组件;或者在自然语言说明、脚本、依赖包、配置文件和外部资源中隐藏风险。一旦危险能力通过准入检查,它就可能长期潜伏,等待合适的任务触发。这类似于传统软件供应链中的依赖投毒,但在智能体场景中,由于技能往往以自然语言描述为主,检测难度更大。

编排阶段:潜伏风险如何被激活?

在编排阶段,智能体开始理解用户请求,检索长期记忆,选择技能,构造计划并准备工具调用。此时,来自用户、记忆和技能的多种信息会在同一上下文中汇合。

单独看,某个技能可能是良性的,某段记忆也可能是无害的。但当它们被组合在一起时,可能形成越权链路。例如,一次普通的记忆检索,可能重新激活数周前写入的污染内容;多个良性技能的组合,可能意外获得超出预期的权限。风险不再只是“被看见”,而是开始实质性地改变智能体的决策逻辑和控制流。

执行阶段:风险如何变成现实后果?

在执行阶段,智能体通过工具与外部环境交互:访问网页、调用API、运行代码、操作文件、查询数据库,或者控制计算机和移动设备。

这里有一个常被忽视的风险点:环境返回的信息并不天然可信。网页中的隐藏文本、弹窗、终端输出、搜索结果乃至MCP(Model Context Protocol)工具的响应,都可能携带提示注入内容。当智能体把这些观察结果误当成高优先级指令时,风险就会从内部决策转化为真实的外部动作。攻击者不需要直接接触模型,只要控制智能体将要读取的环境内容,就可能劫持其行为。

持久反馈:执行结束,风险并未结束

传统安全评测往往把任务结束视为终点,但对通用智能体而言,执行结果可能被写入长期记忆、沉淀为新技能,或保存在项目工件中。

这些状态会在未来重新进入来源或编排阶段,形成“反向污染”。换句话说,一次安全失败可能不再局限于当前会话,而会成为智能体下一轮行为演化的起点。随着智能体具备自我演化能力,这种持久性风险尤为值得警惕。

四类主要攻击面

沿着生命周期主轴,综述进一步总结了四类相互耦合的主要攻击面。

1. 技能供应链:能力本身即载体

技能让通用智能体能够快速获得新能力,但也引入了软件供应链风险。风险不仅存在于SKILL.md等声明式文件中,也可能隐藏在辅助脚本、依赖库、配置、检索数据库和本地缓存里。

更隐蔽的情况是“组合攻击”:单个技能本身并不恶意,但多个技能被组合后,却形成了未授权访问、隐私泄露或破坏性执行路径。部分攻击还会在当前会话中改写技能,在未来会话或特定触发条件下才启动后门。例如,研究SkillHarm就从生命周期角度展示了技能攻击如何跨阶段构造并持续影响智能体。

2. 用户侧攻击:从人工越狱到自动化红队

用户可以通过有害请求、角色扮演、编码混淆、多轮诱导和优化生成的越狱提示,驱动智能体执行危险任务。

与传统LLM越狱不同,面向智能体的攻击不再满足于让模型生成违规文本,而是尝试诱导它完成一条包含多次工具调用的真实攻击链。近年来,攻击方法也从人工模板和启发式搜索,逐渐发展为能够规划、反思并持续优化攻击策略的“智能体化红队”。这意味着攻击者也在利用AI来寻找AI的弱点。

3. 长期记忆:一次投毒,长期生效

长期记忆通常会被自动检索,并作为可信上下文参与后续决策。这种机制提升了智能体的连续性,也让一次投毒具有了持久性。

攻击者既可以直接污染知识库、RAG语料和记忆索引,也可以通过普通对话、网页内容或环境观察,诱导智能体主动写入错误信息。更危险的是“后门型记忆”,它们平时保持沉默,只在特定主题、查询或上下文模式出现时触发,极难被发现。

4. 外部环境:数据即指令

对于会浏览网页、操作电脑和调用工具的智能体而言,环境观察既是数据,也可能被误解成指令。

恶意网页、隐藏文本、GUI弹窗、文件内容、终端输出、API返回和MCP响应,都可能劫持后续推理。这种“间接提示注入”攻击使得智能体在面对不可信环境时极其脆弱。

安全评测:从“看答案”到“看过程”

当风险从文本扩展到行为,安全评测的对象也必须随之变化。早期安全基准主要判断模型是否生成有害回答;面向智能体的评测则需要进一步观察:

  • 它选择了哪个工具?
  • 构造了什么参数?
  • 中间哪一步开始偏离用户目标?
  • 是否受到了环境注入影响?
  • 最终是否真的修改了文件、泄露了信息或改变了系统状态?

综述将相关评测概括为三条主线:

  1. 领域专用智能体安全评测:覆盖工具调用、Web浏览、计算机和移动设备操作等具体环境。
  2. 通用智能体安全评测:重点关注技能介导的行为安全和恶意技能检测。
  3. 离线轨迹审计:通过完整交互历史或候选动作,识别风险步骤并解释因果链。例如,AgentAuditor面向完整轨迹开展安全审计,而ToolSafe则进一步关注动作执行前的步骤级工具调用风险。

评测正在从“任务最后有没有出事”,走向“风险在哪一步出现、为什么出现,以及能否在执行前发现”。

安全防御:构建全生命周期控制链

基于生命周期中的干预位置,论文将防御方法归纳为三层。

输入与上下文过滤:控制入口

这一层包括技能风险扫描、提示注入与越狱检测、记忆写入和检索护栏。目标是在不可信内容进入智能体决策上下文之前,识别恶意指令、异常依赖、伪造来源和污染记忆。这是第一道防线,旨在减少噪声和明显威胁。

决策与控制完整性:保护大脑

仅仅过滤输入并不够,因为多个良性信息在组合后仍可能产生危险决策。一类方法在模型外部重构上下文、隔离不可信数据、约束信息流和工具依赖关系;另一类方法则通过指令层级训练、偏好优化和安全工具使用对齐,将信任优先级内化到模型策略中。这相当于给智能体装了一个“理性检查器”,防止其在复杂情境下失控。

运行时监控与执行约束:守住最后一道门

当智能体已经生成计划或候选动作,运行时防御可以在执行前检查整个计划、单次工具调用或累计轨迹,并选择阻止、修正、请求确认或进一步验证。

这意味着,安全机制不再只是回答结束后的“裁判”,而开始成为贯穿智能体执行过程的“控制器”。例如,当智能体试图删除一个系统关键文件时,运行时监控可以拦截该操作并要求用户二次确认。

未来挑战:自我演化带来的不确定性

随着智能体开始积累经验、更新记忆、创建工具、改写技能甚至调整自身工作流,生命周期安全问题将进一步放大。

近期研究已经观察到,自进化可能使恶意影响被永久编码并跨迭代传播;能力提升过程中还可能出现偏离预期目标的“错误进化(misevolution)”;即使智能体积累了经验,也未必会忠实地理解和使用这些经验。

因此,固定的数据集、静态护栏和一次性对齐,很难持续覆盖不断变化的攻击面。围绕这一挑战,综述提出一个面向未来的安全闭环:

  1. 风险生成:自动构造可执行、可验证并持续演化的对抗环境和安全数据。
  2. 风险诊断:沿长程轨迹定位风险来源、关键步骤、工具参数和因果链。
  3. 安全演化:把新攻击和失败轨迹转化为训练反馈,使安全策略能够持续更新。

在这个闭环中,对抗生成负责发现未知风险,细粒度归因负责解释风险如何形成,持续安全演化则把诊断结果转化为新的防护能力。

换句话说,未来的智能体不仅需要能够自我改进,还需要学会在改进过程中持续发现、诊断并修复自己的安全弱点。智能体安全不应只是一道设置在输出末端的门,它更应该是一条贯穿能力来源、决策形成、动作执行与持续演化的控制链。

《Pandora's Toolbox》希望推动的,正是从“单点漏洞修补”走向“全生命周期安全治理”。这不仅需要技术研究者的努力,也需要开发者、用户和安全专家的共同参与,才能确保通用智能体在赋予我们强大能力的同时,依然安全可靠。