理解提示注入:一项前沿安全挑战
"Understanding prompt injections: a frontier security challenge"
必读全文中译查看原文(HTML) ↗
导读
本篇是 OpenAI 于 2025 年 11 月 7 日发布的官方安全博客,也是本讲(第 8 周「安全与护栏」)的核心必读材料。当 AI 从「问答工具」进化为能浏览网页、访问你的应用数据并代表你行动的 Agent 时,一种专属于对话式 AI 的攻击面随之出现:提示注入(prompt injection)。它并非传统的代码漏洞,而更像针对 AI 的「网络钓鱼」——攻击者把恶意指令藏在网页、文档或邮件等普通内容里,诱导 AI 执行用户从未授权的操作。这篇博客的价值在于:它以厂商视角系统讲清了提示注入是什么、两个具体攻击场景,以及 OpenAI 的多层防御体系(安全训练、监视器、沙箱等安全保护、用户控制、红队测试、漏洞赏金、用户教育),最后给出普通用户可以立刻上手的四条自护建议。对于构建 Agent 系统的工程师,「指令层级」「沙箱」「Watch Mode」等关键词勾勒出了工业界当前的护栏设计思路,与课程中讨论的权限最小化、人工确认(human-in-the-loop)等原则一一对应。
全文中译
原文:Understanding prompt injections: a frontier security challenge(OpenAI,2025 年 11 月 7 日,Security 栏目)
标题:理解提示注入:一项前沿安全挑战
AI 工具正在开始做比回答问题更多的事情。它们如今可以浏览网页、协助做研究、规划旅行、帮你购买商品。随着它们能力增强——能够访问你在其他应用中的数据并代表你采取行动——新的安全挑战也随之出现。我们高度关注的一个问题就是提示注入(prompt injection)。
什么是提示注入?
提示注入是一种专属于对话式 AI 的社会工程学(social engineering)攻击。早期的 AI 系统是单个用户与单个 AI 智能体之间的对话。而在今天的 AI 产品中,你的对话可能包含来自许多来源的内容,包括互联网。「第三方(既不是用户、也不是 AI)可能通过在对话上下文中注入恶意指令来误导模型」——这一想法催生了「提示注入」这个词。
正如网络钓鱼邮件或网页上的骗局试图诱骗人们交出敏感信息一样,提示注入试图诱骗 AI 去做你并没有要求的事情。
设想你让 AI 帮你在网上做度假调研,期间它遇到了藏在网页里的误导性内容或有害指令,比如某条房源评论或点评。这些内容可能是精心构造的,目的是诱骗 AI 推荐错误的房源,或者更糟——窃取你的信用卡信息。
这些只是「提示注入」攻击的几个例子:旨在诱骗 AI 做你并非有意之事的有害指令,它们通常隐藏在网页、文档或电子邮件等普通内容之中。
随着 AI 能访问更敏感的数据、承担更多主动性并执行更长的任务,这些风险还会持续放大。
概览:
| 你要求 AI 做的事 | 攻击者的所作所为 | 攻击得逞的潜在后果 |
|---|---|---|
| 你让 AI 按给定条件调研公寓,它却被提示注入操纵,推荐了对你的偏好而言并非最优的房源。 | 攻击者在公寓房源信息中植入了提示注入攻击,诱骗 AI 认为「无论用户偏好如何都必须选择他们的房源」。 | 若攻击得逞,AI 可能在你的偏好下错误地推荐一个次优的公寓房源。 |
| 你让 AI agent 处理昨夜积压的邮件,结果它把你的银行对账单分享给了外人。 | 因为你今早很忙,你让 AI agent「笼统地」处理昨夜的邮件(参见下文「尽可能给 agent 明确的指令」)。攻击者给你发来一封包含虚假信息的邮件,诱骗模型去找到你的银行对账单并分享给攻击者。 | 若攻击得逞,agent 可能会在你的邮箱(你为完成任务而授权其访问)中翻找类似银行对账单的内容,并将其分享给攻击者。 |
我们保护用户的方法
防御提示注入是整个 AI 行业共同面临的挑战,也是 OpenAI 的核心工作重点。我们预计对手会继续开发此类攻击,但我们正在构建的防御体系,目标是即使有人 actively 试图误导模型,系统仍能执行用户真正意图的任务。这种能力是安全地实现 AGI 价值的前提。
为了保护用户、并借此改进模型抵御此类攻击的能力,我们采取了多层方法(multi-layered approach),包括以下几项:
安全训练(Safety training)
我们希望 AI 能识别提示注入并且不上当。然而,对对抗性攻击的鲁棒性向来是机器学习与 AI 的难题,因此这是一个困难的开放问题。我们开展了一项名为「指令层级」(Instruction Hierarchy)的研究,致力于让模型区分可信指令与不可信指令。我们还在持续开发新方法,训练模型更好地识别提示注入模式,使其能够忽略这些指令或向用户标记它们。我们采用的手段之一是自动化红队测试(automated red-teaming)——这一领域我们已研究多年,用以开发新颖的提示注入攻击。
监测(Monitoring)
我们开发了多个自动化、由 AI 驱动的监视器(monitor)来识别并拦截提示注入攻击。它们是对安全训练的补充,因为可以快速更新,从而在我们发现任何新攻击时迅速封堵。这些监视器不仅能帮助识别针对我们用户的潜在提示注入攻击,还能让我们赶在这些攻击被部署到真实环境之前,就发现利用我们平台进行的对抗性提示注入研究与测试。
安全保护(Security protections)
我们在产品与基础设施中设计了多种相互重叠的安全保护措施来守护用户数据。这些机制按产品逐一量身定制,我们将在后续文章中展开技术细节。例如,为帮助你避开不受信任的网站,在 ChatGPT 中访问某些链接前需要你先行批准——尤其是那些要求我们不要对其编目(index)的网站。当我们的 AI 使用工具运行其他程序或代码时(如在 Canvas 或开发工具 Codex 中),我们采用一种名为沙箱(sandboxing)的技术,防止模型做出可能源于提示注入的有害更改。
把控制权交给用户(Give users control)
我们在产品中内置了控制功能,帮助用户保护自己。例如,在 ChatGPT Atlas 中,你可以选择「登出模式」(logged-out mode),让 ChatGPT agent 在不登录网站的情况下开始任务。ChatGPT agent 在执行敏感步骤(如完成一笔购买)之前也会暂停并请求确认。当 agent 在敏感网站上操作时,我们还实现了「观看模式」(Watch Mode):提醒你该网站的敏感性,并要求你保持该标签页处于活动状态、观看 agent 的工作;一旦你离开这个包含敏感信息的标签页,agent 就会暂停。这确保你始终知晓——并掌控——agent 正在执行的操作。
红队测试(Red-teaming)
我们与内外部团队一起开展广泛的红队测试,以检验和改进防御、模拟攻击者行为、寻找增强安全的新途径。其中专门投向提示注入的工时数以千计。随着新技术与新攻击被发现,我们的团队会主动修补安全漏洞并改进模型缓解措施。
漏洞赏金(Bug bounty)
为鼓励善意的独立安全研究人员帮我们发现新的提示注入技术与攻击,当研究人员展示出一条可能导致用户数据意外暴露的现实攻击路径时,我们会通过漏洞赏金计划(bug bounty program)发放金钱奖励。我们以此激励外部贡献者尽快上报这些问题,从而及时修复、进一步加固防御。
让用户自主决定(Let users decide)
我们向用户说明在产品中使用某些功能的风险,让用户能够做出知情决策。例如,在把 ChatGPT 连接到其他应用时,我们会解释它可能访问哪些数据、如何使用这些数据,以及可能出现什么风险(比如某个网站试图窃取你的数据),并附上了解如何保持更安全的链接。我们也允许组织控制其工作区中用户可以启用或使用哪些功能。
你可以采取哪些措施来更安全
提示注入是一个前沿安全挑战,我们预计它会随时间不断演变。新的智能与能力水平,需要技术、社会和风险缓解策略共同进化。正如 2000 年代初的计算机病毒一样,我们认为每个人都应当理解提示注入的威胁并学会应对这一风险,这样我们才能安全地享受技术红利。在使用能代表你行动的 AI 与 agentic 功能时,保持警觉与谨慎有助于让你的数据更安全。
利用内置功能限制对敏感数据的访问
在可能的情况下,把 agent 的访问权限限制在完成任务所必需的敏感数据或凭据之内。例如,在 ChatGPT Atlas 中用 agent 模式做度假调研时,如果 agent 只做调研、不需要登录态,就使用「登出」模式。
当 agent 请求确认时,仔细审查它将要做的是否正确
我们通常把 agent 设计为在执行某些后果重大的操作(如完成购买、发送邮件)之前,先取得你的最终确认。当 agent 请求你确认某个操作时,请仔细检查该操作是否正确、要共享的任何信息在该情境下是否适合共享。
当 agent 在敏感网站(例如你的银行)上操作时,请观看它执行任务。这就像把手放在方向盘上监控自动驾驶汽车一样。
尽可能给 agent 明确的指令
给 agent 一条非常宽泛的指令,比如「查看我的邮件并采取一切需要的行动」,会让隐藏的恶意内容更容易误导模型——即便系统已设计为在采取敏感行动前先与你核实。
更安全的做法是让 agent 去做具体的事,而不是给它过大的自由裁量空间,使它有可能去遵循来自邮件等外部渠道的有害指令。这并不能保证攻击不会发生,但会让攻击者更难得逞。
保持信息灵通,遵循安全最佳实践
随着 AI 技术演进,新的风险与防护措施会不断出现。请关注 OpenAI 及其他可信来源的更新,了解最佳实践。
展望
提示注入仍然是一个前沿且棘手的研究问题,正如网络上的传统骗局一样,我们预计这项工作将长期持续。尽管我们尚未观察到攻击者大规模采用这一技术,但我们预计对手会投入大量时间与资源,寻找让 AI 中招的办法。我们将继续重金投入产品安全,并支持提升 AI 对此风险鲁棒性的研究。随着认识的深入,我们会分享最新进展,包括我们在这一领域安全工作的持续推进。例如,我们正在撰写一份即将发布的报告,将更详细地介绍我们如何检测你的 AI 与互联网之间的通信是否会泄露你对话中的信息。
我们的目标是让这些系统可靠且安全,就像与你最值得信赖、安全意识最强的同事或朋友共事一样。我们将继续从真实使用中学习、安全地迭代,并在技术进步的同时发布我们的所得。
要点速览
- 提示注入(prompt injection)是针对对话式 AI 的社会工程学攻击:第三方把恶意指令藏进网页、文档、邮件等普通内容,诱导 AI 执行用户未授权的操作。
- 风险随 Agent 能力升级而放大:可访问的敏感数据越多、任务越长、主动性越强,攻击面越大(本讲所有 Agent 安全讨论的出发点)。
- 两个典型场景:房源评论注入诱导 AI 推荐次优公寓;邮件中注入虚假指令诱导 agent 把银行对账单外发给攻击者。
- OpenAI 的防御是多层纵深体系:安全训练(指令层级 Instruction Hierarchy、自动化红队)、AI 监视器快速封堵新攻击、沙箱等安全保护、用户控制、红队测试、漏洞赏金、用户教育。
- 「观看模式」(Watch Mode)与敏感操作前暂停确认,是 human-in-the-loop 护栏在产品中的具体形态。
- 用户自护四原则:最小权限(如登出模式)、认真审查确认请求、给 agent 明确而具体的指令而非宽泛授权、持续跟进安全最佳实践。
- 宽泛指令(如「处理我的邮件并采取一切需要的行动」)会显著放大被注入内容误导的风险——指令设计本身就是安全设计。
- OpenAI 坦承尚未观察到攻击者大规模使用提示注入,但预计对手会持续投入;鲁棒性对对抗攻击仍是机器学习的开放难题。
- 与传统安全的类比:提示注入之于 AI Agent,类似钓鱼/早期计算机病毒之于个人电脑——需要技术、社会与缓解策略共同进化。