ChatGPT 如何用社交工程思维防御提示注入

深度OpenAI2026年3月11日3 分钟阅读
ChatGPT 如何用社交工程思维防御提示注入
OpenAI 发现,针对 AI 智能体的提示注入攻击正演变为社交工程,防御策略需从单纯过滤转向限制风险操作。ChatGPT 结合源-汇分析和安全护栏,在敏感信息外传前要求用户确认。

AI 智能体越来越能浏览网页、检索信息并代表用户执行操作。这些能力很有用,但也为攻击者操纵系统创造了新途径。

这类攻击常被称为提示注入:在外部内容中嵌入指令,试图让模型执行用户未请求的操作。根据我们的经验,现实中最有效的攻击越来越像社交工程,而非简单的提示覆盖。

这种转变很重要。如果问题不只是识别恶意字符串,还要抵抗上下文中的误导或操纵内容,那么防御就不能只依赖输入过滤。它还需要设计系统,即使某些攻击成功,也能限制操纵的影响。

早期的“提示注入”攻击可能很简单,比如编辑维基百科文章,在其中包含直接指令给访问它的 AI 智能体;在没有对抗环境训练经验的情况下,AI 模型通常会毫不犹豫地遵循这些指令。随着模型变得更智能,它们对这种建议的脆弱性降低,我们观察到提示注入式攻击通过融入社交工程元素来应对。

在更广泛的 AI 安全生态系统中,推荐“AI 防火墙”等技术变得常见,即在 AI 智能体和外部世界之间设置中介,尝试将输入分类为恶意提示注入和常规输入——但这些完全成熟的攻击通常不会被此类系统捕获。对于这些系统,检测恶意输入变得与检测谎言或错误信息同样困难,且往往缺乏必要的上下文。

随着现实中的提示注入攻击复杂度提升,我们发现最有效的攻击技术利用了社交工程策略。我们没有将这些带社交工程的提示注入攻击视为单独或全新的问题类别,而是开始通过用于管理其他领域人类社交工程风险的相同视角来看待它。在这些系统中,目标不限于完美识别恶意输入,而是设计智能体和系统,使得操纵的影响受到限制,即使攻击成功。这样的系统被证明能有效缓解提示注入和社交工程。

这样,我们可以将 AI 智能体想象成存在于类似客服代理的三方系统中;代理希望代表雇主行事,但它们持续暴露于可能试图误导它们的外部输入。客服代理,无论是人类还是 AI,必须对其能力施加限制,以降低存在于这种恶意环境中的固有风险。

想象一个场景:人类操作客服系统,能够为顾客的不便(如交付缓慢、故障导致的损坏等)发放礼品卡和退款。这是一个多方问题,公司必须信任代理出于正确原因发放退款,同时代理也与可能旨在误导甚至胁迫它们的第三方互动。

在现实世界中,代理被赋予一套规则遵循,但预期在它们所处的对抗环境中,它们会被误导。也许顾客发送消息声称退款从未到账,或威胁如果不退款就造成伤害。代理交互的确定性系统限制了对顾客的退款金额,标记潜在的钓鱼邮件,并提供其他此类缓解措施,以限制单个代理被攻破的影响。

这种思维方式启发了一套我们已部署的稳健对策,以维护用户的安全期望。

在 ChatGPT 中,我们将这种社交工程模型与更传统的安全工程方法(如源-汇分析)结合。

在该框架中,攻击者需要源(影响系统的方式)和汇(在错误上下文中变得危险的能力)。对于智能体系统,这通常意味着将不受信任的外部内容与操作(如向第三方传输信息、跟随链接或与工具交互)结合。

我们的目标是维护用户的核心安全期望:潜在危险操作或潜在敏感信息的传输不应在无声或没有适当保障的情况下发生。

我们看到的针对 ChatGPT 的攻击最常见的是试图说服助手从对话中获取某些秘密信息并传输给恶意第三方。在我们所知的大多数情况下,这些攻击失败是因为我们的安全训练导致代理拒绝。对于那些代理被说服的情况,我们开发了一种名为 Safe Url 的缓解策略,旨在检测助手在对话中学到的信息是否会被传输给第三方。在这些罕见情况下,我们要么向用户显示将传输的信息并要求确认,要么阻止它并告诉代理尝试以其他方式推进用户请求。

与对抗性外部世界的安全交互对于完全自主的智能体是必要的。当将 AI 模型与应用程序系统集成时,我们建议询问在类似情况下人类代理应有哪些控制措施,并实施这些措施。我们期望最大智能的 AI 模型能比人类代理更好地抵抗社交工程,但这并不总是可行或成本效益高,具体取决于应用。

我们继续探索针对 AI 模型的社交工程及其防御的启示,并将我们的发现融入应用程序安全架构和我们为 AI 模型提供的训练中。

本文编译自 Designing AI agents to resist prompt injection,版权归原作者所有。

觉得有用?分享给更多人

获取每周 AI 工具精选

工具推荐、实战教程和生态洞察,每周更新。

相关文章

Simon Willison 正在重构 LLM Python 库的抽象层,以支持服务器端工具执行等新功能。他利用 Claude Code 分析了四大 LLM 提供商的客户端库,生成了用于测试的 curl 命令和 JSON 输出。这些调研材料已开源,旨在帮助设计更通用的 API 抽象。

深度Simon Willison·4月5日·1 分钟

智能体技能——包含程序性知识和可执行资源的结构化包,供智能体在推理时动态加载——已成为增强 LLM 智能体的可靠机制。然而,推理时技能增强存在根本性限制:检索噪声引入无关指导,注入的技能内容带来大量 token 开销,而模型从未真正习得它所遵循的知识。我们提出一个问题:技能是否可以被内化到模型参数中,使其在无需任何运行时技能检索的情况下实现零样本自主行为?我们提出 Skill0,一个专为技能内化设计的上下文强化学习框架。Skill0 引入了一种训练时课程,从提供完整技能上下文开始,逐步撤除。技能按类别离线分组,并与交互历史一起渲染为紧凑的视觉上下文,教授模型工具调用和多轮任务完成。动态课程机制…

深度·4月5日·17 分钟

评论