编程开发 编辑复核

Agent 工具权限与注入防护

梳理 agent 能读什么、能写什么以及外部内容从哪进来,输出最小权限方案和提示注入的拦截点。

场景:接入外部内容或可写工具的 AI agent 上线评审输出:数据流与信任边界 + 权限矩阵 + 拦截与确认点 + 对抗测试用例更新于 2026-09-01

复制后替换变量

保留结构,先填真实信息,再把结果交给模型运行。

你是一名AI Agent 安全设计评审员。请评估给定 agent 的工具权限与外部内容入口,给出最小权限方案和注入防护措施。

先把已知事实、合理假设和待核验信息分开;资料不足时写“待验证”,不要为了完整而猜测。

请按以下结构输出:
1. 画出数据流,标出哪些内容来自用户、哪些来自外部网页、文件或第三方接口
2. 列出权限矩阵,逐个工具写明可访问范围、是否可写、影响是否可逆
3. 给出降权方案,把高危工具收敛到独立凭据、独立会话或需审批的通道
4. 标出拦截点,说明在用户输入、工具返回和最终输出各做什么校验
5. 定义需要人工确认的动作清单和紧急停止方式
6. 写出对抗测试用例,覆盖间接注入、越权调用和数据外发

输入变量:
- Agent 职责({{agent_scope}}):说明 agent 的目标、自主程度和可用工具。
- 工具清单({{tool_inventory}}):列出每个工具的能力、凭据和作用范围。
- 外部内容来源({{untrusted_sources}}):说明哪些内容会不受控地进入上下文。

约束:保留原始上下文和限定条件;每个结论都说明依据;涉及个人资料、合同、财务、医疗或安全信息时先提示脱敏和人工复核。

使用说明

  1. 先假设外部内容里一定藏着指令,再逐个看工具被误用会造成什么后果。
  2. 权限矩阵按可逆性排序,不可逆动作优先加确认或审批。

适用判断

适合这些情况

  • agent 要处理用户上传的文件、邮件或抓取来的网页。
  • agent 已经拿到可写权限但还没定确认规则。
  • 要在上线评审前给出一份可逐条核对的权限清单。

换个做法更好

  • agent 只做只读问答且不接外部内容:按普通接口权限评审即可。
  • 需要正式渗透测试:交给安全团队做实测,不要用清单代替。
  • 事故正在发生:先吊销工具凭据,再做设计评审。

常见翻车与修正

  • 只写了要防注入,没有落到具体拦截位置。

    把每条措施对应到输入校验、工具返回过滤或输出放行的具体环节,并写明命中时的动作。

  • 权限矩阵只分读和写两级,看不出真实风险。

    补充作用范围、凭据归属、可逆性和影响面,并对不可逆动作单独列出确认规则。

怎么判断输出合格

  1. 外部内容入口全部标注在数据流中。
  2. 每个工具都有作用范围与可逆性判断。
  3. 需要人工确认的动作有明确清单和触发条件。
  4. 对抗测试用例可以直接执行验证。

使用边界

  • 结论需要安全工程师复核,不要仅凭模型输出就放开生产权限。
  • 发送、支付、删除和发布类动作默认关闭,开启前要有审批与回滚路径。