LLM Security Basics: The Full Threat Model

TL;DR · AI 摘要
LLM安全威胁需关注信任边界和提示注入,EchoLeak漏洞与OpenAI模型泄露案例揭示关键风险。
核心要点
- EchoLeak漏洞通过邮件隐藏指令实现数据泄露,暴露LLM上下文处理缺陷
- 提示注入分直接(用户输入)和间接(检索内容嵌入)两种攻击路径
- OpenAI模型可通过$20 API查询提取部分参数,凸显接口安全风险
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- LLM安全威胁模型
- 核心问题
- 信任边界缺失
- 上下文处理缺陷
- 攻击路径
- 直接提示注入
- 间接内容嵌入
- 典型案例
- EchoLeak漏洞
- OpenAI参数泄露
金句 / Highlights
值得收藏与分享的关键句。
LLM上下文序列无指令/数据分离标记,任何内容都可能被模型视为指令
EchoLeak漏洞利用邮件隐藏指令,使Copilot输出包含敏感文件内容
OpenAI模型参数可通过$20 API查询提取,暴露接口安全缺陷
大型语言模型安全基础:完整的威胁模型
ByteByteGo
2026年8月3日
Matic:视觉智能清洁的新时代(赞助)
尝试使用Matic,享受其6个月的无条件退款保证。
获取Matic
2025年6月,Aim Security的安全研究人员演示了通过一封电子邮件即可让Microsoft 365 Copilot检索公司内部文件并将其传输到外部服务器的攻击方式,整个过程无需用户交互。
该邮件仅包含普通文本,未利用任何软件漏洞。Copilot的输出由邮件中的隐藏指令与用户的实际请求共同驱动,系统对这两者未做区分。微软在数天内关闭了该漏洞路径,并表示客户未受影响。
但这一事件揭示了语言模型处理文本的有趣特性。该漏洞被命名为EchoLeak,分配了CVE-2025-32711编号,为理解LLM安全领域提供了有价值的案例研究。
作为对比,考虑另一个案例:通过约20美元的API查询费用,一个团队通过OpenAI模型的公共接口提取了其生产环境模型的部分内容。这听起来像是各团队真正需要警惕的威胁。
在本文中,我们试图绘制威胁LLM安全的完整攻击面地图。借助该地图,可以定位特定LLM功能,识别其暴露点,并在新威胁出现时进行推演分析。
那么,让我们从最重要的属性开始。
免责声明:本文基于来自多个来源的公开信息。文末有参考文献。如发现任何不准确之处,请在评论区指出。
信任边界
几乎所有LLM漏洞都可追溯到一个特性。语言模型将指令和数据作为单一的标记序列接收,该序列中没有任何标记能区分命令与信息。
传统软件会将这两者区分开。
例如,参数化数据库查询将命令放在一个位置,用户输入放在另一个位置。这意味着即使在姓名字段中输入了SQL语句,文本仍保持为文本,因为查询结构强制了这种分离。
然而,LLM的上下文只有一个位置。定义助手角色的系统提示、用户的消息、从数据库检索的文档,以及被调用工具返回的输出,都会被拼接成同一序列。该序列的任何部分都可能影响生成的输出,仿佛它是一条指令,因为模型会根据整个先前序列计算每个后续标记,对任何部分都没有单独处理。
这就是提示注入的来源,即提供类似指令的文本,使模型输出符合这些指令而非操作者的意图。它通过两种途径到达模型:
- 直接途径是通过聊天框输入恶意指令。这是大多数人想象的场景。
- 间接途径是将指令嵌入模型在执行合法任务时检索的内容中,例如总结网页、阅读文档或查看管理邮箱中的邮件。
EchoLeak就是间接途径的典型案例。用户请求了普通工作,而攻击者的指令通过用户未打开的电子邮件到达。事实上,该攻击载荷通过了微软专门的跨提示注入分类器,这表明当单独使用时,输入过滤可能并不严密。
该属性适用于任何向模型提供外部文本的系统。任何处理检索结果、上传文件、工单或评论的特性,由于其构造方式本身就会带来间接注入暴露风险。
参数化通过在数据库边界将代码与数据分离解决了SQL注入问题。但自然语言没有等效方案,因为指令和信息都以文字形式表达,目前尚无可靠方法标记一段文本为惰性内容并在生成过程中保持该标记。过滤可以部分缓解问题但无法彻底消除。
由于文本进入模型或操作离开模型的任何位置都可能引发混淆,下一步是定位这些关键点。
攻击面
OWASP大语言模型应用十大风险是行业公认的最关键LLM风险参考标准。最新版列出了十个独立条目。当这些条目与数据在应用中流动的路径对应时,就形成了单一地图上的十个坐标点。
流水线分阶段运行:
用户输入从用户端到达。系统经常检索上下文以支撑回答,这一步通常基于向量数据库实现,该数据库将文档存储为数值嵌入并返回与查询最相关的结果。这种模式称为检索增强生成(RAG)。模型随后处理组装后的输入。它可能调用工具或其他执行外部操作的代理。输出返回给用户。监控环绕整个流水线,其中每个组件都来自供应商,构成了系统底层的供应链。
以下是各阶段的详细说明及其潜在风险:
- 输入:直接提示注入和无限制消耗,OWASP定义为可能导致受害者成本激增的不受控资源使用,有时称为钱包拒绝(Denial of wallet)。
- 检索:间接注入、向量和嵌入弱点。2024年的PoisonedRAG研究通过在包含数百万文档的知识库中插入仅5个恶意段落,就使RAG系统的答案在目标问题上达到了90%的成功率。
- 模型:训练数据泄露、数据和模型中毒、系统提示泄露。
- 工具:过度代理,指代理拥有的权限超出任务需求的状态。
- 输出:不当输出处理(响应在未消毒的情况下传递给下游系统),以及错误信息(自信但错误的答案)。
- 供应链:任何向上述阶段提供组件的环节被攻破。
该地图为分析攻击细节提供了参考坐标。新的攻击可以定位在地图上。相关问题是:它在何处注入不可信文本?处于哪个阶段?是否滥用模型不应拥有的权限?这些问题的答案既表明了攻击的严重程度,也指明了适用的防御措施。
供应链无法清晰地映射到路径上,因为被攻破的模型或中毒的向量存储会同时影响所有后续阶段。因此,它以独立的段落形式呈现,覆盖整个流程。
该地图还暴露了关注度的错位:引发最多担忧的威胁与实际到达生产环境的威胁是不同的。
模型攻击
针对模型内部的攻击,包括权重盗窃、训练数据提取和训练时间投毒,都是真实存在的威胁,但对于大多数开发者而言,这些攻击的优先级较低。它们通常成本较高、影响范围有限,或已被模型提供商采取措施缓解。
以下是几个具体案例:
- 模型盗窃:如前所述,在OpenAI的案例中,有团队仅花费不到20美元就成功恢复了生产环境中OpenAI模型的最终嵌入投影层,并验证了之前隐藏的维度。这一成果具有重要意义,但影响范围有限。他们仅恢复了众多层中的一层,研究人员也明确表示,通过API重建完整的前沿模型在经济上不可行,因为成本超过了训练等效模型的费用。OpenAI在事件曝光前已收到预警并修改了其API。
- 训练数据提取:2023年底,来自DeepMind和多所大学的研究团队发现,通过持续提示ChatGPT重复某个单词,可以诱使其输出训练数据的原文片段,包括真实联系方式,且花费几百美元即可恢复数兆字节数据。隐私风险十分严重,OpenAI在事件曝光后已过滤了相关触发行为。
- 投毒攻击:2025年,Anthropic、英国人工智能安全研究所和艾伦图灵研究所的团队发现,约250份恶意文档就足以在6亿到130亿参数的模型中植入后门,且不同规模模型所需恶意文档数量基本保持一致。这一发现推翻了“大模型需要成比例更多投毒数据”的假设。研究人员也明确指出限制条件:后门仅在触发短语时生成无意义输出,这种低风险行为在前沿模型中不太可能造成重大威胁。
下图展示了各类威胁在“风险程度 vs 发生频率”坐标轴上的分布:
优先级排序至关重要,因为注意力资源有限。一个团队专注于防范模型盗窃,却部署了拥有广泛权限的代理,这意味着他们解决了罕见攻击,却忽略了更常见的威胁。
“有限性”描述的是当前状态。对于托管开放模型权重、在敏感数据上进行微调,或运营自有训练流水线的团队而言,这些攻击的优先级将显著上升,因为此时模型内部的安全责任将由团队自身承担,而非模型提供商。
内部攻击位于风险地图的边缘。模型触发外部行动的核心区域(如执行API调用、发送消息或使用工具)则承载着更大的风险。
过度代理权限
LLM攻击造成实质性损害的临界点在系统中具有特定结构,可被识别为“致命三联体”。它由单一代理持有的三项能力构成:
- 访问私有数据,如收件箱、客户数据库或源代码仓库。
- 接触不可信内容,即任何从外部读取的信息,包括网页、电子邮件和共享文档。
- 向外发送数据或执行外部操作的通道,如出站请求、发送消息或调用工具。
拥有这三项能力的代理可能被注入的指令引导,将私有数据传输给攻击者。模型对齐无法消除这种暴露风险,因为生成符合指令类输入的输出正是模型的常规运作方式。
以下是一些已记录的案例:
- GitHub 的 MCP 服务器(MCP 是连接模型与外部工具和数据的模型上下文协议)被利用,攻击者通过在公共仓库中提交恶意问题,泄露了受害者私有仓库的数据。
- GitLab 的 Duo 助手被提供了一个包含隐藏指令的公共项目,导致其泄露了私有仓库内容。
- 一家雪佛兰经销商的聊天机器人曾被操控,同意以一美元的价格出售一辆 SUV。
- 一个加密交易代理被社会工程手段诱导,转移了 55 个以太币。
移除三种能力中的任何一种都能降低风险暴露。通常成本最低的措施是切断出站通道或限制代理的访问范围,这通常比添加更严格的过滤器更经济。
通过 MCP 连接工具是代理获取第三种能力的最常见方式,而该协议相对较新,即使成熟的服务器也提供了可注入的配置。Anthropic 自己的官方 Git MCP 服务器在 2025 年收到了三个与注入相关的 CVE 漏洞。运行时输入是风险的一个来源,系统的组件是另一个来源,它们可能在任何请求到达之前就被攻破。
供应链
堆栈中的每个模型、适配器、向量存储和工具都来自供应商,任何组件都可能被篡改。这就是供应链暴露面,它会绕过运行时防御,因为威胁在输入验证运行之前就已经存在。
常见机制非常直接。
许多模型以序列化文件形式分发,某些序列化格式在加载文件时会执行代码。2025 年初,ReversingLabs 记录了一种名为 nullifAI 的技术,恶意模型上传到 Hugging Face 后,在 Python pickle 文件中隐藏了反弹 shell(向攻击者建立连接的代码)。该文件以一种规避平台扫描器 Picklescan 的方式压缩,因此模型看起来干净,但在加载时执行了恶意代码。
规模需要引起重视。Protect AI 扫描了 Hugging Face 上超过 400 万个模型,标记了约 35.2 万个存在不安全或可疑问题的模型,涉及超过 5 万个模型。
来源是少数几个完全可控的因素之一。团队可以决定信任哪些模型、工具和数据源,这与运行时暴露面的大部分情况不同。
两种缓解措施正在推进:
- 更安全的序列化格式,避免在加载时执行代码。
- 模型签名,验证来源,类似于包生态系统中的签名发布。
多层防御
没有单一的防御措施能始终有效,支持证据足够充分,使现实目标从阻止所有攻击转变为在成功攻击后生存。工作姿态是纵深防御,一套独立的防御层,安排方式使得某一层的失败能被另一层限制。
单层防御是不够的。
2025 年 11 月,来自 OpenAI、Anthropic 和 Google DeepMind 的团队发表了一项研究,他们使用允许适应和迭代的攻击,击败了之前提出的 12 种针对提示注入和越狱的防御措施。强大的生产过滤器仍然允许可观比例的攻击通过,单次成功就足以造成危害。单一的防护措施无法提供足够的信心,因为测量结果并不支持这种信心。
更持久的方法是围绕模型约束系统,而不是依赖模型本身来抵抗操纵。
Google DeepMind 的 CaMeL 就是这样一个例子。它将模型视为不可信的,使用独立的特权组件来规划操作,并隔离外部检索的数据,以防止数据自行触发敏感操作。
Meta 的 Agents Rule of Two 是一个更简单的操作版本,建议代理最多满足三个危险属性中的两个:处理不可信输入、持有敏感访问权限、在没有人工干预的情况下执行外部操作。Meta 将该规则作为最小权限原则的补充,而非完整的解决方案。
标准层级分别覆盖了地图的各个阶段:
- 输入经过验证和限制。
- 检索来源保持干净。
- 每个工具的权限范围仅限于其任务所需的最小权限。
- 模型输出被视为不可信,在下游使用前需进行净化。
- 监控系统会检测异常。
- 人工审查最高后果的操作。
结论
威胁模型围绕一个核心事实展开。
语言模型将指令和数据视为相同的令牌序列,而完整的地图由此特性推导而来。
OWASP Top 10 变成了路径上的若干位置,而非简单的列表。广受关注的攻击(如模型窃取和训练数据提取)已被限制并得到较大程度缓解,而更大的风险集中在代理同时持有私有数据、不可信内容和外部通道的环节。供应链贯穿每个阶段,是系统运营团队最直接可控的表面。由于没有任何单一层级能完全防御,纵深防御才是团队实际应采取的立场。
代价是高昂的。每一层都会增加延迟、成本和摩擦,而最强的缓解措施——对关键操作进行人工审查——也会限制系统自主运行的程度。这种权衡是不可避免的。
整个领域最终归结为几个持久的要点:
- 根本原因是指令与数据之间缺乏边界。
- 命名威胁是流水线上的位置,而非孤立事实。
- 内部攻击大多受到限制,而三重威胁标记了真正造成损害的环节。
- 可追溯性是最直接可控的表面。
- 与任何单一过滤器相比,纵深防御更能控制剩余风险。
参考文献:
- EchoLeak:生产环境大语言模型的零点击提示注入(案例研究)
- 盗取生产环境语言模型的部分内容
- 从ChatGPT中提取训练数据
- 少量样本即可毒害任意规模的LLM
- PoisonedRAG:检索增强生成的知识库中毒
- 2025年LLM应用OWASP Top 10
- AI代理的致命三重威胁
- Hugging Face上发现的恶意机器学习模型(nullifAI)
- Hugging Face模型扫描发现
- 新的提示注入论文:Agents Rule of Two 和 The Attacker Moves Second
- 通过设计击败提示注入(CaMeL)
- Agents Rule of Two:AI代理安全的实用方法
- Anthropic Git MCP 服务器注入公告(CVE-2025-68143)