学习笔记 · 2026-10-09 · 基础
LLM 与智能体安全指南:从提示注入到工具权限
LLM 应用和智能体面临的最大威胁是,模型会照样执行隐藏在数据中的指令。本文依次梳理威胁图谱、提示注入与“致命三要素”、MCP 与工具安全、多层防御、运营治理以及引入顺序。
- LLM 无法可靠地分辨指令的来源,因此隐藏在网页、邮件和工具结果中的指令(间接提示注入)可能操纵整个应用。
- 当访问私有数据、不可信输入和对外发送能力这三者集中在同一个智能体上时(致命三要素),数据泄露就会变得容易。
- 指令优先级训练或分类器只能降低攻击成功率,无法将其降为零,因此必须同时采用最小权限、沙箱、人工审批等结构性防御。
- MCP 服务器应按客户端分别获取用户同意,且不应未经验证就直接转发令牌。
- 实践中,先用 OWASP LLM Top 10 和 NIST 分类梳理威胁,再用 SAIF 和 NIST AI RMF 建立运营体系,这一顺序很有帮助。
是什么,为什么需要
LLM 安全与其说是保护模型本身,不如说是保护承载模型的应用和智能体。指令优先级研究(paper)指出,提示注入针对的不是模型,而是构建在模型之上的应用。如果应用能访问机密数据或执行实际操作,一次注入就可能导致用户数据泄露或 LLM 的行为被劫持。
问题之所以变大,是因为 LLM 迅速以接入搜索结果、文档和 API 的方式普及开来。间接提示注入研究(paper)指出,集成 LLM 的应用模糊了“数据”与“指令”的边界。过去的软件只把输入的文本当作数据处理,而 LLM 在阅读文本时可能把其中的句子当作命令接受。
要一览全部威胁,需要一个通用的分类表。OWASP 生成式 AI 安全项目(w1)在 2025 年版 LLM 应用十大风险中列出了:提示注入、敏感信息泄露、供应链漏洞、数据投毒(训练和嵌入数据污染)、不当输出处理、过度权限(代理权)、系统提示泄露、向量与嵌入弱点、错误信息、无限制资源消耗。该文档也有韩文译本。
NIST 的 AI 100-2 E2025 报告(w2)按 ML 方法类型、攻击发生的生命周期阶段以及攻击者的目标、能力和知识,提供了分层分类和术语表。该文档旨在建立“通用语言”,让数据投毒、规避攻击、隐私侵害等攻击有统一的叫法。OWASP 列表适合用作应用开发者的检查清单,NIST 分类适合用作与安全团队沟通的术语词典。
提示注入:直接、间接与致命三要素
提示注入是攻击者插入指令、颠覆系统设计者意图的攻击。指令优先级研究(paper)将其分为两类。直接注入是应用用户直接在输入框中输入的情况;间接注入是攻击指令藏在网页搜索结果或工具输出等第三方输入中的情况。Simon Willison 的文章(w4)强调,应把提示注入与越狱(Jailbreak,让模型说出被禁止内容的攻击)看作不同的问题。理由是,如果把两者等同,开发者就会以“与我们的应用无关”为由忽视注入。
首次系统研究间接注入的研究(paper)表明,攻击者无需直接访问,只要在可能被检索到的数据中植入指令,就能远程操控应用。该研究在基于 GPT-4 的 Bing 聊天和代码补全引擎等真实系统上演示了攻击,并指出检索来的提示会像“任意代码执行”一样起作用,甚至能改变调用哪个 API 以及何时调用。其归纳的危害类型包括数据窃取、蠕虫式传播、信息生态污染、持久控制和拒绝服务。
Willison 的文章(w4)把智能体中特别危险的组合称为“致命三要素”:能够访问私有数据、暴露于攻击者可控的文本或图像(不可信输入)、具备向外部发送数据的能力。三者集中在同一个智能体上时,攻击者很容易诱骗它读取数据,再发送给自己。对外发送的通道不只是 API 调用,HTTP 请求、加载图片、一个供用户点击的链接也都能成为通道。
根本原因在于,LLM 无法根据指令来源可靠地区分其重要性(w4)。因为所有输入最终都会被拼接成一个 token 序列送入模型。Anthropic 的文章(w5)也举例说明,邮件中用白色文字隐藏的指令可以让“机密”邮件被转发到外部,并解释说浏览器智能体攻击面广、可执行的操作多,因此风险更大。
直接注入 vs 间接注入
直接注入用户直接输入
- 应用用户在输入框中写入指令
- 绕过开发者限制·提取系统提示词
- 攻击者须直接访问应用
间接注入隐藏在第三方内容中
- 在网页·邮件·工具结果中植入指令
- 攻击者无需直接访问
- 可导致窃取其他用户的数据
공통 两者都利用了模型无法分辨指令来源这一点
MCP 与工具安全
MCP(模型上下文协议)是让智能体能够接入并使用多种工具的标准。Willison 的文章(w4)把 MCP 鼓励混用不同来源工具这一点列为风险:能接触私有数据的工具和可能携带恶意指令的工具,往往是同一个。文中举例的 GitHub MCP 攻击中,一个服务器内就集齐了三要素:读取攻击者发布的公开 issue、访问私有仓库、创建 pull request 将私有数据泄露出去。
不仅工具返回的结果,工具描述本身也是模型会读取的文本。因此,把指令藏在工具描述或结果中的攻击(通常称为工具投毒)也基于同样的原理。指令优先级研究(paper)把工具输出设为权限最低的输入,也是出于这个原因。
在认证和授权方面,MCP 官方安全建议(w3)制定了具体规则。第一是“混淆代理(confused deputy)”问题。以固定客户端 ID 连接第三方 API 的 MCP 代理服务器,如果同意 cookie 被滥用,攻击者就可能在未经用户同意的情况下截获授权码。建议要求代理服务器必须按客户端分别获取同意,在同意界面上显示请求客户端名称、权限范围以及令牌将被发送到的重定向地址,并检查重定向地址是否精确匹配、不含通配符。OAuth state 值只能使用一次,并应在较短时间内(例如 10 分钟)过期。
第二是禁止“令牌透传”。如果 MCP 服务器把并非颁发给自己的令牌未经验证就转发给下游 API,就会绕过速率限制、请求验证等控制,审计记录中也无法分辨是谁发出的请求(w3)。建议明确禁止这种做法,并说明从一开始就区分令牌的受众(audience),以后扩展安全模型会更容易。
防御层:设计原则
各来源共同强调的原则是“单层防御挡不住”。Willison 的文章(w4)对号称“能拦截 95% 攻击”的护栏产品持怀疑态度,指出在 Web 安全中 95% 是不及格的分数。Anthropic(w5)在说明已将浏览器扩展的攻击成功率降至 1% 左右的同时也写道,这 1% 仍是不可忽视的风险,问题并未解决。因此,需要把增强模型本身的防御与缩小损害范围的结构性防御叠加起来。
模型侧防御的代表是指令层级(Instruction Hierarchy)。这项研究(paper)训练 GPT-3.5,使系统消息优先于用户消息,用户消息又优先于工具结果等第三方内容。研究用合成数据教模型忽略与上级指令相冲突的下级指令,报告称系统提示词提取防御提升了 63%,对训练中未出现过的越狱攻击的鲁棒性也提高了 30% 以上。不过,连正常请求也拒绝的“过度拒绝”有所增加。Anthropic(w5)也表示,他们通过强化学习训练模型拒绝注入,用分类器检查进入上下文窗口的不可信内容,并由人工红队持续尝试攻击。
结构侧防御的核心是切断三要素中的一项。Willison 的文章(w4)引用了这样一个要点:读取过不可信输入的智能体,必须受到约束,使该输入无法引发重大操作;文章还提到,厂商在修复实际事故时,大多采用的是堵住外泄通道的方式。在实践中,由此得出以下原则:只授予完成任务所需工具权限的最小权限;隔离代码执行和文件访问的沙箱;在发送邮件、付款、删除等重大操作前由人工审批(人在回路);以及检查输出中链接、图片和外部地址的输出检查。OWASP 清单(w1)中的“不当输出处理”和“过度授权”指的正是这一点。
最后一层是记录。MCP 安全建议(w3)禁止令牌透传的理由之一,就是它会破坏审计日志。同样,只有记录下谁以什么权限调用了哪个工具,才能调查事故并改进管控。
运营治理与引入步骤
技术防御要纳入组织的风险管理体系,才能长期有效。Google 的 SAIF(w6)提供了从安全视角梳理 AI 开发流程的地图、15 类风险及相应的管控措施,还设有面向自主系统的智能体安全条目,以及回答几个问题即可得知相关风险和管控的智能体风险自评估。NIST AI RMF(w7)是 2023 年 1 月 26 日发布的自愿采用框架,帮助在 AI 产品的设计、开发、使用和评估中纳入可信性考量。配套还有实施指南 Playbook,以及针对生成式 AI 特有风险的生成式 AI 概况(NIST-AI-600-1,2024 年 7 月),1.0 版目前正在修订中。
首次引入时,建议按以下顺序进行。1)列出应用处理的数据、接入的工具和读取的外部内容,逐一对照 OWASP 十大风险(w1)。2)检查每个智能体是否同时具备致命三要素(w4),如果是,先修改设计切断其中一项。3)将工具权限降到最低,并按官方建议(w3)检查 MCP 服务器的同意和令牌处理。4)为重大操作加上人工审批,为代码执行加上沙箱。5)增加输入分类器和输出检查,并通过红队实际尝试攻击(w5)。6)借助 SAIF 自评估(w6)和 NIST AI RMF(w7)确定负责人、审查周期和事故响应,固化为运营体系。
这一顺序的要点在于,不从“模型会帮我们挡住”出发。先改结构,再用模型和检查器降低概率,最后纳入组织的管理体系。
首次引入的顺序
- 1建立清单将数据·工具·外部内容对照 OWASP
- 2切断三要素消除三个条件之一的设计
- 3缩减权限最小权限·检查 MCP 同意与令牌
- 4审批·隔离重大操作需人工审批,执行放入沙箱
- 5检查·红队输入输出检查后实际尝试攻击
- 6治理SAIF 自评估·NIST AI RMF
检查清单
在设计阶段确认以下几点。智能体是否同时拥有私有数据、不可信输入和对外发送能力(w4)?系统提示词中是否放入了密码、密钥等不能泄露的信息(系统提示词泄露,w1)?是否将工具结果和外部文档与用户指令区分开,以较低权限处理(paper)?
工具与 MCP 按以下方式检查。是否只给每个工具授予必需的权限?是否混用了来源不明的 MCP 服务器(w4)?MCP 代理是否按客户端获取同意、精确匹配重定向地址,是否未经验证就转发令牌(w3)?
执行与运营方面看以下几点。发送邮件、删除、付款等操作前是否有人工审批?代码执行是否在沙箱内进行?是否检查输出中的链接、图片和外部地址?Token 用量等资源消耗是否设有上限(无限制资源消耗,w1)?是否留有工具调用记录?是否定期进行红队攻击(w5)?
LLM·智能体安全检查
设计
- 三要素是否集中在同一个智能体上
- 系统提示词中是否没有机密信息
- 是否以较低权限处理工具结果
工具·MCP
- 工具权限是否最小
- 是否没有混用来源不明的 MCP 服务器
- 是否遵守按客户端同意·地址精确匹配
- 是否没有未经验证就转发令牌
执行·运营
- 重大操作前是否有人工审批
- 代码执行是否在沙箱内进行
- 是否检查输出中的链接·外部地址
- 资源消耗是否设有上限
- 是否留有工具调用记录
- 是否定期进行红队测试
常见错误与局限
最常见的错误是在系统提示词里写上“不要遵从外部指令”就算完成了防御。Willison 的文章(w4)指出,可以加入这样的语句,但表达恶意指令的方式无穷无尽,无法确信每次都奏效。LLM 对同一输入也不会每次都做出相同行为,这进一步加大了不确定性。
第二个错误是把护栏产品的检出率误当作安全保证(w4)。第三个错误是把提示注入与越狱视为同一问题,认为“我们的应用只要不说出令人尴尬的话就行”(w4)。第四个错误是相信厂商会帮忙挡住。Willison 表示,厂商虽然很快堵住了自家产品的外泄通道,但一旦用户自行混用工具,厂商就无能为力了。
防御技术本身也有局限。指令层级训练(paper)大幅提升了鲁棒性,但过度拒绝增加了。Anthropic(w5)表示,由于攻击手法不断演进,提示注入仍是活跃的研究课题,并不是已解决的问题。间接注入研究(paper)在发表时也写道,缺乏有效的缓解措施。归根结底,目前只能将降低概率的防御与缩小损害范围的设计结合使用。
延伸学习
作为概念的起点,先读间接提示注入研究(paper)。其核心论点——应用模糊了数据与指令的边界——以及攻击分类,是后续讨论的基础。接着读 Willison 关于致命三要素的文章(w4),就能把握在智能体设计中需要切断什么。
如果想了解模型侧防御,可以在指令层级研究(paper)中看如何训练系统、用户和工具结果的优先级,再在 Anthropic 的浏览器智能体文章(w5)中查看结合使用强化学习、分类器和红队的实际案例。
在实务检查和运营中,可将 OWASP LLM Top 10(w1)用作检查表,将 MCP 安全建议(w3)用作工具集成的规则手册,将 NIST AI 100-2(w2)用作术语词典。组织层面的体系,可以从 SAIF(w6)的自评估以及 NIST AI RMF(w7)的 Playbook 和生成式 AI 概况入手。
相关术语
参考资料
延伸阅读(官方文档与技术博客)
- LLMRisks Archive - OWASP Gen AI Security Project (genai.owasp.org)
- AI 100-2 E2025, Adversarial Machine Learning: A Taxonomy and Terminology of Attacks and Mitigations | CSRC (csrc.nist.gov)
- Security Best Practices - Model Context Protocol (modelcontextprotocol.io)
- The lethal trifecta for AI agents: private data, untrusted content, and external communication (simonwillison.net)
- Mitigating prompt injections in browser use \ Anthropic (anthropic.com)
- SAIF: Google's Guide to Secure AI (saif.google)
- AI Risk Management Framework | NIST (nist.gov)
奠基论文
视频与课程
视频未被用作正文的依据,仅供想进一步学习的读者参考。
由 AI 根据所列参考资料撰写并经过审核。详情请查看原始资料。


