AI Agent 安全风险与防护清单 2026:从提示注入到工具越权
面向开发者和安全团队的 AI Agent 风险清单:覆盖目标劫持、工具滥用、身份权限、记忆污染、跨 Agent 通信与级联故障。
适用场景:适合准备把 Agent 接入代码仓库、数据库、SaaS 或生产流程,以及需要建立 Agent 上线准入和复测标准的团队。
Agent 风险为什么高于普通聊天机器人
普通聊天的错误通常停留在文本层;Agent 会读取外部内容、规划多步任务并调用工具,错误或恶意指令可能继续传到文件、账号、数据库和部署系统。风险不只来自模型,也来自工具定义、身份权限、记忆、第三方内容和多个 Agent 之间的数据流。
OWASP 2026 Agentic Top 10 把目标劫持、工具滥用、身份与权限滥用、记忆污染、跨 Agent 通信、级联故障和信任利用列为重点。评估时要沿完整调用链保留证据,不能用一次正常演示推导生产安全。
上线前必须覆盖的七类风险
- 目标劫持:网页、文档、Issue、工具结果或其他 Agent 可能夹带指令,诱导系统偏离用户目标或泄露数据。
- 工具滥用与过度自主:一个原本只需读取的任务获得写入、删除、发送、支付或部署能力,并在缺少确认时直接执行。
- 身份与权限滥用:Agent 使用共享高权限账号,无法区分真实用户,也无法把每次动作约束到最小资源范围。
- 记忆与上下文污染:未经验证的事实、恶意指令或敏感数据被写入长期记忆,在未来会话持续影响决策。
- 不安全的跨 Agent 通信:消息缺少来源、完整性、权限和 Schema 校验,一个受损节点即可影响后续协作者。
- 级联故障:循环规划、无限重试、扇出调用或错误的自动补救会放大成本、负载和业务影响。
- 供应链与信任利用:Skill、MCP Server、插件、模型、依赖和远程资源可能在更新后改变权限或行为。
权限设计:先削减功能,再削减权限和自主性
OWASP 对 Excessive Agency 的建议可以落成三层控制:只提供任务必需的工具;每个工具只暴露必要功能;下游账号只授予必要资源和操作。只读与写入工具应分离,任意 Shell、任意路径和任意 URL 不应成为默认接口。
删除、支付、外发消息、部署、权限修改和批量操作必须在执行前展示真实目标、参数与影响,并由用户确认。确认不能只显示模型生成的摘要,还应由服务端根据最终参数重新计算。
运行时控制:把每次调用变成可判定事件
- 输入边界:把用户内容、网页、文件、工具结果和记忆标记为不可信数据,禁止其覆盖高优先级策略。
- 策略闸门:在工具执行前根据身份、资源、动作、环境和风险等级做服务端授权,不让模型自行决定权限。
- 预算与限流:限制单任务步骤、工具调用、Token、时间、金额和并发;重试必须有上限和退避。
- 结构校验:工具输入输出、Agent 消息和记忆写入使用严格 Schema,拒绝多余字段、危险协议和越界路径。
- 可观测性:记录主体、工具、目标、决策、结果、耗时和策略命中,日志只保留必要元数据并脱敏秘密。
- 停止能力:支持按任务、用户、工具或环境撤销执行权限;异常时先阻止新高影响动作并保全证据。
MCP 与外部服务连接的额外检查
远程 MCP Server 应验证来源、TLS、授权服务器元数据、令牌受众和重定向边界;本地 stdio Server 则应从受控环境读取凭证。连接成功不代表拥有全部工具权限,每个工具仍需独立授权。
不要把长期 API Key 写进配置仓库或交给模型读取。使用短期、可撤销、最小作用域凭证,并确保错误、响应、日志和资源内容不会回显秘密。第三方 Server 更新后应重新比较工具清单、Schema、依赖和权限。
建立可复现的安全回归集
- 正向样例:代表性任务能够在最小权限下完成,输出、耗时与工具调用符合预期。
- 注入样例:网页、README、Issue 和工具结果中的越权指令不能改变目标、读取秘密或扩大工具范围。
- 越权样例:跨用户、跨项目、越界路径、危险 URL 与高影响动作在服务端被拒绝,并产生可审计原因。
- 可靠性样例:超时、部分失败、重复消息、依赖不可用和循环规划不会造成重复副作用或无限重试。
- 更新样例:模型、Skill、MCP Server 或依赖版本变化后,固定样例重新执行并比较改善与退化。
如何使用自动评测而不过度相信分数
自动评测适合检查公开文档、权限信号、危险模式、维护状态和证据覆盖,也适合持续发现版本变化。它不能单独证明运行时授权、隔离、网络边界和真实副作用已经安全。
可靠报告应区分已验证、静态发现和未验证,给出证据位置、风险场景、置信度和复测日期。Skill Supermarket 的安全硬上限不会被 Star 或采用度抵消,但生产准入仍应结合隔离运行、人工审计和组织策略。