dotsagent.io
语言:简体中文
安全 · 参考

智能体安全

智能体会读取陌生人编写的文本,然后使用你的凭据执行操作。本页介绍核心原则、2026 年 OWASP 的两份清单、迄今发生的安全事件,以及本可阻止这些事件的防护措施。

致命三要素

  1. 访问私有数据电子邮件、代码仓库、数据库、文件,或任何受你的凭据保护的内容。
  2. 接触不可信内容网页、Issue、支持工单、收到的电子邮件和工具描述:任何攻击者都能编写的文本。
  3. 能够对外通信发送邮件、创建 pull request、获取 URL 或渲染远程图片。Simon Willison 于 2025 年 6 月将这三项称为一个组合。

如果一个智能体同时具备这三项能力,就要假设提示词注入可能诱使它把你的数据交给攻击者。不要指望模型主动拒绝;应从每个智能体和会话中至少移除一项能力。

近期事件

OWASP 智能体应用十大风险 2026

OWASP GenAI Security Project 于 2025年12月9日 发布了这份清单。它涵盖了模型开始规划、保留记忆、调用工具并与其他智能体协作后出现的风险。

  1. ASI01
    智能体目标劫持

    攻击者改变智能体试图实现的目标,通常通过隐藏在智能体读取内容中的指令实现。随后,智能体会使用用户的工具和权限追求攻击者的目标。

  2. ASI02
    工具误用与滥用

    智能体以有害方式使用合法工具,例如删除记录、发送消息或串联调用。这可能是因为智能体受到操纵,也可能是因为它拥有超出任务所需范围的工具权限。

  3. ASI03
    身份与权限滥用

    智能体通过凭据、委托令牌和继承的权限执行操作。攻击者会滥用这些身份或身份之间的权限缺口,以提升权限或冒充他人行事。

  4. ASI04
    智能体供应链漏洞

    在构建时或运行时加载的工具、MCP 服务器、技能、插件、模型和提示都可能是恶意的或已遭入侵。由于智能体会动态加载其中许多组件,一个有问题的组件就可能影响使用它的每个会话。

  5. ASI05
    意外代码执行 (RCE)

    能够编写并运行代码,或将模型输出传给 shell 和解释器的智能体,可能受到诱导,在主机上运行攻击者指定的命令。

  6. ASI06
    记忆与上下文投毒

    攻击者将虚假事实或指令植入智能体的记忆、检索到的文档或已保存的上下文中。这些投毒内容会持续存在,并在原始输入消失很久之后继续影响后续会话。

  7. ASI07
    智能体间通信不安全

    智能体之间的消息缺少适当的身份验证、完整性检查或校验,因此可能被伪造、重放或篡改,从而误导接收消息的智能体。

  8. ASI08
    级联故障

    一个故障(例如输入遭到投毒、工具返回错误结果或智能体被入侵)会在相互连接的智能体和自动化步骤之间迅速扩散,快到人们来不及发现。

  9. ASI09
    人类与智能体之间的信任利用

    智能体的表达往往自信又热心,因此人们倾向于批准它们提出的建议。攻击者会利用这种信任,诱使人类确认有害操作或泄露信息。

  10. ASI10
    失控智能体

    遭到入侵或偏离预期行为的智能体会继续自行行动,超出授予它的权限范围和监督范围。

OWASP 大语言模型应用十大风险 2026

本版于 2026年8月4日 发布,取代了 2025 年版。过度自主性从第六位升至第三位,系统提示词泄露则更名为隐藏上下文暴露。

  1. LLM01
    提示注入

    输入会以开发者未预期的方式改变模型行为。输入可以直接来自用户,也可以间接来自模型读取的文档、网页和工具结果。

  2. LLM02
    敏感信息泄露

    模型或应用可能在输出中泄露个人数据、凭据、商业机密或其他机密信息,这些信息可能来自训练数据、上下文或连接的系统。

  3. LLM03
    过度代理权限

    应用赋予模型超出任务所需的功能、权限或自主性,导致被操纵或有误的输出造成实际损害。该风险在 2025 年排名第六,2026 年升至第三。

  4. LLM04
    供应链

    第三方模型、数据集、适配器、软件包和插件可能遭到篡改或存在漏洞,并将相关风险带入你的应用。

  5. LLM05
    数据与模型投毒

    攻击者篡改预训练、微调或嵌入数据,植入后门、偏见或有缺陷的行为,这些问题可能直到投入生产后才显现。

  6. LLM06
    无界消耗

    如果不限制请求数量、输入大小或计算资源,攻击者就可能让你的账单飙升、耗尽资源,或通过大量查询复制模型。

  7. LLM07
    错误信息

    模型生成看似可信的虚假或误导性内容,而用户或下游系统未经核实便据此采取行动。

  8. LLM08
    隐藏上下文泄露

    此前称为系统提示泄露。用户本不应看到的系统提示、隐藏指令和其他上下文可能被提取,从而暴露其中设置的规则、逻辑或秘密。

  9. LLM09
    向量与嵌入弱点

    嵌入的生成、存储和检索方式存在缺陷,可能让攻击者注入内容、跨租户窃取数据或还原源文本。RAG 系统受此影响最严重。

  10. LLM10
    输出处理不当

    模型输出未经验证或编码便传递给浏览器、shell、数据库或其他组件,从而可能导致 XSS、SQL 注入、代码执行和数据外泄。

防护措施

这里列出了 15 项有文档依据的防护措施,每项均附有来源链接。应组合使用多项措施,因为没有任何一项能独自阻止所有攻击。

拆解致命三要素

Simon Willison 的原则是:如果智能体既能读取私有数据,又会接触不可信内容,还能向外发送数据,那么它读取的任何文本都可能被用来攻击你。对每个智能体或会话,至少移除这三项能力中的一项。例如,负责分类公开议题的智能体不应接触机密;持有机密的智能体则不应拥有向外发送数据的渠道。

simonwillison.net

限制智能体处理不可信输入后的权限

关于智能体安全设计模式的研究确立了一条规则:智能体摄取不可信输入后,该输入绝不能触发会产生重大影响的操作。这些模式包括 action-selector、plan-then-execute、双 LLM 和上下文最小化。每个工作流选择一种模式,例如,在智能体读取任何不可信数据之前先固定执行计划。

arxiv.org

用 CaMeL 跟踪数据流

CaMeL 将智能体拆分为两部分:特权规划器根据用户请求编写代码,隔离模型则处理不可信数据。隔离侧的值会附带能力标签,工具运行前由策略检查这些标签。论文报告称,CaMeL 在可证明安全的前提下解决了 77% 的 AgentDojo 任务,而未设防的智能体解决了 84%。

arxiv.org

使用最小权限凭据

默认只授予智能体只读、限定项目范围的访问权限,绝不要使用管理员密钥或 service_role 密钥;在 Supabase 中,service_role 密钥会绕过行级安全策略。将 CI 和仓库令牌的权限限制在其对应的单个任务范围内。Amazon Q Developer 事件的根源,是 CodeBuild 中权限范围过大的 GitHub 令牌。

supabase.comaws.amazon.com

重大操作须经人工批准

对于会写入、删除、发送或花费资源的工具调用,要求人工确认;无人响应时应默认拒绝。Supabase 建议对 MCP 工具调用进行人工审批;在 OpenClaw 中,将 tools.exec.ask 设为 always,并将 askFallback 保持为 deny。展示完整参数,让审核者看清实际将要执行的操作。

supabase.comdocs.openclaw.ai

对代码和工具执行进行沙箱隔离

在不含凭据、且只能访问工作区的容器或 VM 中运行 shell 命令和生成的代码。OpenClaw 默认关闭沙箱,并在网关主机上将 tools.exec.security 设为 full,因此应启用沙箱,将 exec security 设为 deny 或 allowlist,将 fs.workspaceOnly 设为 true,并保持 elevated mode 关闭。运行 openclaw sandbox explain 确认设置结果。

docs.openclaw.aidocs.openclaw.ai

限制出站网络访问

默认拒绝智能体和 MCP 服务器的出站流量,然后只允许各自必需的主机。切勿自动批准对多租户主机的请求,因为任何人都可能在这类主机上发布内容;CVE-2026-54316 正是利用这一点,将 huggingface.co 变成了数据外泄通道。邮件服务器只应访问其邮件 API,不应访问其他任何地址,postmark-mcp 就展示了这一点。

nvd.nist.govkoi.ai

不要将控制面暴露到互联网

将智能体网关、仪表盘和调试代理绑定到 loopback,并要求至少 24 个字符的令牌,例如使用 openssl rand -hex 32 生成。通过 SSH 隧道或 Tailscale Serve 远程访问,并且只有在启用密码认证时才使用 Tailscale Funnel。定期运行 openclaw security audit --deep。

docs.openclaw.aidocs.openclaw.aidocs.openclaw.ai

验证 MCP 令牌的受众

MCP 授权规范要求服务器拒绝并非为其签发的访问令牌,并禁止将客户端令牌转发给上游 API。客户端应发送 RFC 8707 资源指示符,使每个令牌都绑定到单个服务器。代理服务器必须获得每个客户端的授权,否则就会成为混淆代理。

modelcontextprotocol.iomodelcontextprotocol.io

隔离 MCP 会话和租户

为每个会话创建独立的服务器和传输实例,不要让多个客户端共享同一个实例。将每个会话和任务绑定到创建它的已认证主体,并在每次请求时检查绑定关系。2026 年的两份 MCP SDK 安全公告都源于共享状态或未绑定的状态。

github.comgithub.com

审查技能、插件和 MCP 服务器

固定到确切版本,每次更新前查看 diff,并检查 VirusTotal 等扫描工具的判定结果以及 ClawHub 的安全审计状态。批准服务器时,对工具描述计算哈希,并在描述发生变化时发出警报,以便发现 rug pull。OpenClaw 安装时不会内置拦截机制,因此请自行设置 security.installPolicy。

openclaw.aidocs.openclaw.aiinvariantlabs.aidocs.openclaw.ai

控制谁可以向智能体发送消息

私信访问仅允许通过配对或白名单;在群聊中,要求先提及智能体,它才可以采取行动;并将 session.dmScope 设为 per-channel-peer,避免不同发送者共享上下文。任何能向智能体发送消息的人都可以尝试指使它,因此发送者名单也是攻击面的一部分。

docs.openclaw.aidocs.openclaw.ai

不要在不可信的 CI 运行中暴露密钥

不要在外部人员可通过 pull request、issue 或评论触发的工作流中,使用带有仓库密钥的智能体。将这些事件中的标题、描述和评论都视为恶意输入。如果某个步骤确实需要密钥,只能在维护者批准该次运行后执行。

oddguan.com

将模型输出视为不可信内容

渲染模型输出前先进行编码或清理,绝不要未经检查就将其传给 shell、SQL 查询或浏览器。阻止自动加载 Markdown 图片和指向外部域名的链接,并设置严格的 Content Security Policy。EchoLeak 通过会自行加载的 URL 将数据传了出去。

genai.owasp.orgnvd.nist.gov

验证智能体签名,再进行授权

要识别调用你的网站或 API 的智能体,请使用 operator 在 /.well-known/http-message-signatures-directory 发布的密钥验证其 Web Bot Auth 签名。ChatGPT agent 使用 Signature-Agent https://chatgpt.com 进行签名。有效签名只能说明谁在运营该智能体,不能说明是哪位用户发起了请求,也不能说明该用户有权执行什么操作,因此仍须对每个请求单独授权。

datatracker.ietf.orghelp.openai.com

智能体安全常见问题

什么是 AI 智能体中的提示词注入?

提示注入是指模型把某些文本当作指令执行,尽管这些文本实际是以数据的形式传入的,例如网页、电子邮件或工具描述中的文本。在智能体中,这些指令可能触发使用你凭据运行的工具调用。OWASP 将其列为 LLM01:2026,智能体形式则属于 Agent Goal Hijack (ASI01)。

AI 智能体的致命三要素是什么?

这是 Simon Willison 对一种智能体的称呼:它既能访问私有数据,又会接触不可信内容,还能与外部通信。三者同时具备时,提示注入就可能读取你的数据并将其发送出去。2025 年 Supabase MCP 令牌泄露事件就是典型案例。

如何保护 MCP 服务器?

拒绝未签发给你服务器的访问令牌,绝不要将客户端的令牌转发给上游 API。为每个会话创建独立的服务器和传输实例,并将会话和任务绑定到经过身份验证的用户。TypeScript SDK 请使用 1.26.0 或更高版本,Python SDK 请使用 1.27.2 或更高版本;这些版本修复了跨客户端响应泄露和会话劫持问题。

更好的系统提示能阻止提示注入吗?

不要依赖系统提示。关于智能体设计模式的研究指出,一旦智能体接收了不可信输入,就必须对其加以约束,确保这些输入无法触发会造成重大影响的操作。CaMeL 通过能力追踪来实施约束,在具备可证明安全性的同时完成了 77% 的 AgentDojo 任务;未设防的智能体则完成了 84%。

OWASP LLM Top 10 和 Agentic Top 10 有什么区别?

OWASP Top 10 for LLM Applications 针对所有基于语言模型构建的应用所面临的风险,其 2026 版于 4 August 2026 发布。OWASP Top 10 for Agentic Applications 于 9 December 2025 发布,关注模型开始规划、使用工具、保留记忆并与其他智能体通信后出现的变化。大多数智能体开发者都需要参考这两份指南。

将 OpenClaw 网关暴露到互联网安全吗?

不安全。将 gateway.bind 保持为默认值 loopback;需要远程访问时,使用 SSH 隧道或 Tailscale Serve。OpenA2A 在 1 September 2026 统计到 192,492 个暴露在公网的网关;CVE-2026-25253 也表明,即使仅绑定 loopback 的安装也需要及时打补丁。

来源

  1. genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/
  2. genai.owasp.org/download/52117
  3. genai.owasp.org/resource/owasp-genai-llm-top-10-2026/
  4. github.com/GenAI-Security-Project/GenAI-LLM-Top10

为 AI agent 开发者提供的独立参考资料。与此处提及的任何厂商均无关联。

© 2026 DotsAgent · 事实核查日期:2026年10月1日