1. 引言
当 AI 系统从被动响应提示的模型演变为能够自主推理、采取行动并更新自身状态的智能体时,传统的威胁建模方法已不足以覆盖新的风险维度。智能体的记忆、规划器、工具调度器和策略引擎各自引入了独特的漏洞,而这些组件之间的交互又催生了只在自主系统中才会出现的误用模式------推理漂移、不安全委托、递归错误循环。
本文将系统介绍 Agent AI 威胁建模的扩展威胁类别、常见误用模式,并通过一个完整示例展示如何追踪威胁在智能体工作流中的传播路径。最后,我们将提供一份可直接使用的 Agent 威胁建模模板,帮助安全团队系统化地评估任何基于智能体的系统。
2. 扩展威胁类别:智能体系统的独特漏洞
传统的 LLM 应用威胁建模主要关注提示注入、不安全输出和检索配置错误。但智能体系统引入了全新的攻击面,需要扩展威胁类别来覆盖。
2.1 记忆层
记忆是智能体系统的核心脆弱点。智能体不仅存储信息,还依赖这些存储的信息来指导未来决策。这意味着记忆在写入、检索或验证环节的任何弱点,都会打开长期操纵的大门。攻击者可以通过用户输入、外部数据源或工具输出等渠道向记忆注入误导性数据,而这些数据一旦被存储,就会成为未来推理的"事实基础"。
2.2 规划器
规划器是将目标转化为逐步行动的组件。如果攻击者能够影响规划器的输入或扭曲其推理过程,他们实际上可以重定向智能体的整个行为。这不再只是关于单次恶意输出,而是关于破坏驱动智能体后续所有行动的逻辑本身。
2.3 工具调度器
工具调度器是意图转化为行动的地方。如果调度器没有受到适当约束,智能体可能在错误的时间、以错误的参数、基于错误假设调用强大的工具。由于工具调用影响的是真实系统而非仅仅是文本响应,这种风险尤其危险。
2.4 策略引擎
策略引擎构成整个架构的护栏,决定智能体被允许做什么、可以使用哪些工具、行为受到多严格的监控。这里的任何缺口------无论是配置错误、绕过还是执行不一致------都可能变成攻击者乐于利用的升级路径。
3. 智能体特有的误用模式
当从简单 LLM 应用转向完全自主的智能体时,会出现传统系统中不存在的误用模式。
3.1 推理漂移
智能体不会回答一个问题就停止。它持续推理、完善、随时间更新计划。如果推理中哪怕一个步骤受到错误信息或被操纵输入的影响,智能体就可能慢慢偏离原始意图。一个微小的误解可以在几次迭代后变成完全不同的计划。
3.2 不安全委托
智能体经常将任务分解为更小的步骤,并可能将这些步骤交给其他组件、工具甚至其他智能体。如果这种委托没有被严格控制,智能体可能将高风险行动分配给本不该处理它们的系统部分。更糟的是,它可能用有缺陷的内部逻辑为委托辩护,创建一条从智能体视角看起来有效但在现实世界中违反安全边界的决策链。
3.3 递归错误循环
当智能体试图修复自己的错误却反而强化错误时,就会出现递归错误循环。例如,如果智能体误解了一个结果,它可能重试相同行动、基于错误假设调整计划、然后再次尝试,每个循环都让它进一步偏离轨道。自主性意味着智能体不会在一次坏选择后停止------它会继续前进,而这种持续性可以将一个小错误变成完整的多步失败链。
4. 完整威胁建模示例:目标导向智能体
为了真正理解威胁建模如何应用于智能体系统,让我们走一遍完整示例。假设我们面对一个具有记忆、能够规划和执行多步骤行动的目标导向智能体。
4.1 感知阶段
第一步是审视感知阶段------智能体从用户、工具或自身记忆中接收信息的时刻。如果这些传入数据可以被操纵,那就是我们的第一个威胁。例如,攻击者可以提供误导性信息,这些信息被存储并 later 被当作事实。任何触及记忆的东西都特别危险,因为它塑造了后续的一切。
4.2 推理阶段
接下来进入推理阶段,规划器在此决定下一步做什么。这里要问:如果规划器的逻辑受到被腐蚀的记忆或有害输入的影响会怎样?有人能引导智能体选择不安全的步骤吗?规划器会误解指令并非预期地升级吗?可以看到,一个被破坏的感知步骤如何直接级联成有缺陷的推理。
4.3 行动阶段
然后我们将威胁追踪到行动阶段。这是智能体开始调用工具、修改状态或与外部系统交互的地方。工具使用将抽象的推理错误转化为现实世界的后果。因此,我们需要检查智能体可以调用的每个工具,评估如果这些调用在错误的时间、以错误的参数或出于错误的原因被触发会发生什么。
4.4 更新阶段
最后,我们将威胁追踪到更新阶段------这是许多人忽略的部分。每次行动后,智能体更新其记忆或重新计算计划。如果行动产生了坏结果,或者更糟,一个被操纵的结果,那么新信息会被直接反馈到下一个感知循环。现在智能体正在从被腐蚀的数据中学习,强化之前的错误,并为下一轮更多失败埋下伏笔。
通过追踪威胁在感知、推理、行动和更新每个阶段的传播,我们可以精确看到目标导向智能体中的单个漏洞如何在整个工作流中扩散、演变和复合。这就是完整威胁模型的力量:它不仅显示哪里可能出问题,还显示这些问题如何通过系统移动并变成完整的多步失败。
5. Agent 威胁建模模板
以下模板是评估任何基于智能体系统的主要文档。其结构旨在引导你走完智能体的整个工作流------从感知到推理、行动,最后到更新阶段------从而系统地识别威胁进入系统的位置以及它们如何传播。
5.1 工作流图
模板顶部是工作流图,作为整个文档的锚点。下游的所有内容都映射回这四个阶段,帮助保持威胁建模过程的一致性和易用性。
5.2 核心威胁表
以下是模板的核心表格结构。它鼓励你以关系的方式思考:威胁本身、它可能通过系统采取的路径、以及打破该路径的控制措施。这种结构强制采用更具分析性的思维方式,确保每个识别出的风险都配有缓解策略。
| 阶段 | 威胁描述 | 攻击路径 | 影响 | 控制措施 | 优先级 |
|---|---|---|---|---|---|
| 感知 | 恶意输入被存储为事实 | 用户输入 → 记忆写入 → 后续检索 | 长期行为操纵 | 输入验证、来源追踪、写入过滤 | 高 |
| 感知 | 工具输出被操纵 | 外部工具 → 返回值 → 记忆更新 | 错误数据反馈循环 | 工具输出验证、签名校验 | 高 |
| 推理 | 规划器逻辑被扭曲 | 被腐蚀记忆 → 规划器输入 → 步骤选择 | 整个行为重定向 | 推理链审计、异常检测 | 高 |
| 推理 | 指令误解导致非预期升级 | 模糊提示 → 规划器解释 → 激进行动 | 权限越界 | 提示澄清、意图验证、边界检查 | 中 |
| 行动 | 工具在错误时间被调用 | 推理错误 → 调度器选择 → 工具执行 | 真实世界伤害 | 工具权限门控、调用前审批 | 高 |
| 行动 | 工具参数被注入 | 恶意输入 → 参数构造 → 工具执行 | 数据泄露、未授权操作 | 参数验证、schema 严格化 | 高 |
| 行动 | 超能力工具被滥用 | 目标偏移 → 工具选择 → 广泛能力使用 | 灾难性单点失败 | 工具最小权限、能力拆分 | 高 |
| 更新 | 坏结果被写入记忆 | 行动失败 → 结果存储 → 下次感知 | 错误强化、级联失败 | 结果验证、记忆写入审批 | 高 |
| 更新 | 递归循环强化错误 | 错误假设 → 重试 → 调整计划 → 再重试 | 多步失败链 | 循环检测、迭代上限、人工中断 | 高 |
| 跨阶段 | 不安全委托 | 任务分解 → 子组件分配 → 权限超出 | 边界违反 | 委托权限模型、范围验证 | 中 |
| 跨阶段 | 权限漂移 | 渐进访问累积 → 边界模糊 → 越权操作 | 静默权限提升 | 定期权限审计、最小权限原则 | 高 |
| 跨阶段 | 策略引擎绕过 | 配置错误/绕过 → 护栏失效 → 无约束行为 | 完全失控 | 策略执行验证、不可变边界 | 高 |
5.3 组件级威胁
模板还包含专门的部分用于组件级威胁、失败链、工具与权限、以及记忆完整性。这些部分很重要,因为它们针对的是传统 LLM 应用中不存在的智能体系统组件。目的是帮助你超越单步漏洞,考虑多步失败如何在系统中展开。
| 组件 | 威胁 | 描述 | 控制措施 |
|---|---|---|---|
| 记忆 | 记忆投毒 | 攻击者向记忆注入误导性数据 | 写入过滤、来源追踪、定期完整性校验 |
| 记忆 | 记忆腐蚀 | 合法数据随时间被错误更新 | 版本控制、回滚能力、审计日志 |
| 规划器 | 推理操纵 | 输入被扭曲导致规划偏离 | 输入验证、推理链监控、多路径验证 |
| 规划器 | 目标偏移 | 智能体追求字面目标而非预期结果 | 目标对齐检查、规范博弈检测 |
| 工具调度器 | 不安全调用 | 工具在错误条件下被触发 | 调用前审批、条件检查、速率限制 |
| 工具调度器 | 参数注入 | 恶意参数被传入工具 | Schema 验证、参数白名单、类型强制 |
| 策略引擎 | 配置错误 | 策略未正确执行 | 策略测试、自动化合规检查 |
| 策略引擎 | 执行不一致 | 策略在某些路径中被绕过 | 集中执行、不可变策略层 |
5.4 失败链分析
| 失败链 | 触发点 | 传播路径 | 最终影响 | 中断点 |
|---|---|---|---|---|
| 记忆投毒 → 推理漂移 → 有害行动 | 恶意输入写入记忆 | 记忆 → 规划器 → 工具调度器 | 真实世界伤害 | 记忆写入过滤 |
| 工具输出操纵 → 错误更新 → 递归循环 | 被篡改的工具返回值 | 工具 → 更新 → 感知 → 推理 | 多步级联失败 | 工具输出验证 |
| 权限漂移 → 不安全委托 → 越权操作 | 渐进权限累积 | 规划器 → 委托 → 子组件 | 边界完全突破 | 定期权限审计 |
| 推理错误 → 目标偏移 → 失控执行 | 早期误解 | 推理 → 行动 → 更新 → 再推理 | 灾难性自主行为 | 迭代上限、人工中断 |
6. 如何使用模板
这份文档看起来结构化且正式,但实际上非常实用。一旦开始填写,你会发现它提供了一种清晰、可重复的方式来评估智能体------无论是简单的目标导向智能体还是更复杂的自主系统。
使用步骤:
-
绘制工作流图:先画出智能体的感知、推理、行动、更新四个阶段,标注每个阶段涉及的组件。
-
识别威胁:针对每个阶段和组件,使用扩展威胁类别和误用模式来识别可能的威胁。
-
追踪攻击路径:对每个威胁,描述它如何通过系统传播,经过哪些组件,最终造成什么影响。
-
定义控制措施:为每个攻击路径设计中断点,确保每个识别出的风险都有对应的缓解策略。
-
分析失败链:识别多步失败如何复合,找到关键中断点。
-
定期复审:智能体系统是动态的,威胁模型需要随系统演变而更新。
7. 总结
Agent AI 威胁建模的核心在于理解智能体系统独特的风险结构:记忆、规划器、工具调度器和策略引擎各自引入漏洞,而它们之间的交互又催生了推理漂移、不安全委托和递归错误循环等只在自主系统中出现的误用模式。通过追踪威胁在感知、推理、行动和更新每个阶段的传播,安全团队可以精确识别单个漏洞如何演变成完整的多步失败。
本文提供的威胁建模模板将这一过程系统化,使评估任何基于智能体的系统都变得可重复、可审计。无论是简单的目标导向智能体还是复杂的自主系统,这份模板都能帮助团队在智能体做出错误决策之前设计好护栏,在威胁变成事故之前建立起防御。