行业知识 · v2.3.0 · 资料核对 2026-10-03
Agent 安全、身份与协议
核对日期:2026-10-03。Agent 的能力来自模型与执行环境共同作用。生产设计需要说明代表谁、能访问什么、可以产生什么外部影响,以及如何停止和恢复。
一份动作契约
| 字段 | 内容示例 |
|---|---|
| 目标 | 创建采购申请草稿 |
| 主体 | 用户身份、Agent 服务身份、租户 |
| 资源 | 当前用户有权访问的报价和白名单供应商 |
| 动作 | 读取、写草稿;提交和发订单另行授权 |
| 条件 | 金额、地域、时间、数据类别、审批状态 |
| 预算 | 时间、步骤、调用、Token、金额和重试 |
| 完成凭据 | 业务系统返回 ID 并回读状态 |
| 恢复 | 取消草稿、补偿事务、人工工单 |
模型提出动作,授权服务检查主体、资源、条件和策略,工具实施动作并返回可验证状态。用户确认界面应展示真实动作、对象和影响;“允许 Agent 继续”不是所有未来动作的空白授权。
2026 安全知识基线
OWASP Agentic Applications Top 10于 2025-12 发布,覆盖目标劫持、工具滥用、身份权限、供应链、意外代码执行、记忆/上下文投毒、Agent 间通信、级联故障、人机信任和失控 Agent。用于威胁覆盖核对;不是认证或法规。
NIST AI Agent Standards Initiative于 2026-02 启动,关注互操作、协议、安全与身份。NIST 身份与授权概念文件属于研究和征求意见工作,不能写成已经发布的强制标准。
从风险到测试
| 风险 | 具体失败 | 控制建议 | 验证 |
|---|---|---|---|
| 目标劫持 | 邮件要求忽略用户目标并外传资料 | 不可信内容标记、外传限制、动作层授权 | 恶意邮件和工具结果 |
| 工具滥用 | 合法工具被用于超出任务的批量操作 | 参数 Schema、资源和额度约束 | 超额、错对象、批量参数 |
| 权限滥用 | 用户 A 的 Agent 使用用户 B 的数据 | 服务端主体与租户绑定 | 跨租户、替换资源 ID |
| 供应链 | 工具描述或依赖更新改变权限 | 版本锁定、审查、允许列表 | 工具更新与回退 |
| 代码执行 | 模型文本直接进入 shell | 隔离执行、受限目录/网络、输入验证 | 命令、路径和文件边界 |
| 记忆投毒 | 不可信事实长期被保存为指令 | 来源、有效期、隔离、纠正/删除 | 记忆污染与删除传播 |
| 通信失真 | 子 Agent 宣称审批通过 | 结构化消息、签发主体、证据核验 | 伪造审批和丢消息 |
| 级联失败 | 第一步错目标,后续仍成功执行 | 状态断言、停止条件、幂等/补偿 | 部分完成、重试和并发 |
| 信任利用 | 用户误信完成声明而不核验 | 展示确认对象与真实回执 | 输出与环境不一致 |
| 失控循环 | 无限重试或重复发消息 | 无进展检测、总预算、熔断 | 工具持续超时和循环 |
以上控制是本库建议,实施后要通过 故障与攻击用例验证。拦住已有注入不代表挡住所有注入;高权限系统同时限制可造成的最大影响。
MCP 与工具接入
MCP 解决模型应用与外部工具/资源的互操作,工具描述和服务器返回内容仍需按信任边界处理。核对的权威规范正文为 2026-07-28 Specification,正式发布公告用于核对发布日期与 GA 状态。接入时记录实际客户端、服务器、SDK 与协议版本,禁止只记录“支持 MCP”。
官方 安全实践涉及代理混淆、Token 透传、SSRF、状态句柄、本地执行和授权 URL。接入审查至少核对:Token 是否面向正确资源;代理是否保留逐客户端授权;状态句柄是否绑定已认证主体;OAuth URL 与重定向是否受校验;元数据获取是否能访问内网;本地服务器是否在受限环境运行。
业务授权独立于协议登录。用户登录 MCP 服务器后,仍可能无权执行某项退款。把连接权限、数据读取、草稿、提交、外部发送、删除和付款分成清楚的业务动作。授权撤销需要同时影响缓存、会话、委托身份和后续工具调用。
长任务与恢复
持久状态包含 task_id、租户/主体、目标、已授权范围、状态版本、工具回执、预算消耗和期限。状态改变采用版本检查;重试使用幂等键;外部副作用完成后记录回执。崩溃恢复时先回读环境,避免根据“尚未记录完成”重复付款或发信。
读 → 草拟 → 确认 → 执行 → 回读 → 记录。对不可逆动作,暂停点放在执行前;授权与实际执行之间发生对象、金额或权限变化时重新校验。人类接管带走已完成步骤和证据,不让用户从头猜发生过什么。
上线评审需要回答
每种工具动作是否有唯一 Owner;授权链是否包含真实用户;能否限制跨租户、外传和批量影响;用户能否取消正在执行的任务;预算耗尽如何处理;工具更新是否跑回归;系统如何证明成功;失败后谁负责恢复。