跳到正文
原文
arXiv:越狱、提示注入、投毒与防御· arXiv:2610.01768· Alessandro Pegoraro, Daryan Merx, Phillip Rieger, Ahmad-Reza Sadeghi·本站收录· 原文发表

LLMLeak:借 LLM 合法网页抓取实施隐蔽数据外泄

The Innocent Courier: Covert Exfiltration Through Legitimate LLM Web Fetching

论文速读

攻击

据论文 PDF 整理(AI 生成),以原文为准

作者用 LLMLeak 借合法网页获取外传数据;11 个开放参数模型的指令式设置平均 Sconf 为 79.70%。

威胁模型攻击者的本地恶意软件已能读取秘密,但受网络限制或监控,无法直接外传;攻击者能构造用户交给聊天机器人的输出并控制外部服务器,不能控制聊天机器人及其基础设施,也不能访问对话。

问题
本地恶意软件即使不能联网,也可能借用户向聊天机器人求助的过程外传秘密。作者关注的不是向模型运营商披露数据,而是合法网页获取请求向第三方携带数据。
方法
LLMLeak 将秘密预先编码进错误信息引用的 URL,让聊天机器人在排查问题时访问它。攻击者从 DNS 或 HTTP 请求中恢复数据;传输不依赖网页返回内容或模型最终回答。
实验与结果
作者评测了 11 个开放参数模型及 7 个公开聊天产品。Table 2 的指令式设置平均 Sconf 为 79.70%;Table 5 的信息式设置为 54.63%,编码与长度也影响完整恢复。
局限与可以继续做的
作者把具体防御的设计与评测留作后续工作,并讨论访问限制、人工批准和域名信誉的代价。实验使用构造的堆栈与合成项目,公开聊天产品每个模型、通道、表述条件仅 10 次。
实验设置Meta-Llama-3.3-70B-Instruct、Meta-Llama-4-Scout-17B-16E-Instruct 等 · synthetic code project、public chat interface · Scall、Sreach 等
被测模型
Meta-Llama-3.3-70B-InstructMeta-Llama-4-Scout-17B-16E-InstructMeta-Llama-3.1-8B-InstructMistral-Small-24B-Instruct-2501Mistral-7B-Instruct-v0.3IBM-Granite-3.3-8b-instructAlibaba-Qwen2.5-7B-InstructMicrosoft-Phi-4-mini-instructDeepSeek-Coder-V2-Lite-InstructMeta-Llama-3.2-3B-InstructAlibaba-Qwen3-Coder-30B-A3B-InstructGrok 4.5 FastChatGPT 5.6 SolClaude Opus 5 (High Thinking)Claude Sonnet 5 (Medium Thinking)Claude Haiku 4.5Kimi FastGemini Flash-Lite
基准
synthetic code projectpublic chat interface
指标
ScallSreachSdataSconfRecovery Score (r)surfacedflaggeddelegatedcovertcovertstrict
AI 导读研究者提出 LLMLeak,一种利用 LLM 网页抓取工具建立隐蔽信道的新型攻击向量:本地恶意软件无法直接联网,却可把机密编码进 URL,并以“迁移软件库”等良性任务为由让 LLM 访问该链接,攻击者再通过自己控制的 DNS 或网页服务器取回编码后的机密。作者指出,直接让 LLM 用生成代码发送数据的输入容易被检测、网络库通常也受限,而 LLMLeak 只依赖 LLM 获取网站信息的工具。在 11 个开放参数模型上的评测显示攻击成功率为 79.7%,作者还对真实聊天机器人做了案例研究。

研究者提出 LLMLeak,一种利用 LLM 网页抓取工具建立隐蔽信道的新型攻击向量:本地恶意软件无法直接联网,却可把机密编码进 URL,并以“迁移软件库”等良性任务为由让 LLM 访问该链接,攻击者再通过自己控制的 DNS 或网页服务器取回编码后的机密。作者指出,直接让 LLM 用生成代码发送数据的输入容易被检测、网络库通常也受限,而 LLMLeak 只依赖 LLM 获取网站信息的工具。在 11 个开放参数模型上的评测显示攻击成功率为 79.7%,作者还对真实聊天机器人做了案例研究。

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    作者研究无法直接联网的恶意软件如何借聊天机器人的合法网页获取外传秘密。

    核心问题是:合法网页获取能否成为受限本地软件向第三方外传秘密的隐蔽通道。

    • 使用场景:用户把程序错误或堆栈交给聊天机器人排查,模型可能访问其中的文档引用。作者认为,即使模型可信或部署在本地,第三方泄漏风险仍存在。
    • 现有防护的边界:作者称,阻止提示注入主要针对改变模型行为的指令,而这里的数据已经包含在 URL 中,模型只需执行正常的信息获取。
    • 核心观察:秘密可在模型读取错误前进入 URL;发出请求本身就完成传输,不需要模型主动提取秘密,也不依赖返回网页。
    • 威胁模型:论文未用 no-box、black-box、gray-box 或 white-box 分类。
      • 目标:外传已获得的秘密,同时避免用户注意并撤销泄漏的凭据。
      • 知识与控制边界:攻击者不能控制聊天机器人或其基础设施,也不能访问用户对话及基础设施处理的信息。
      • 能力:恶意软件能读取秘密、构造用户交给模型的输出,并控制公开可访问的外部服务器;直接通信受限制或监控。
      • 受害系统:用户环境已存在恶意软件;聊天机器人具有网站获取工具,可由外部服务商运行或本地托管。
    • 提出的方法:LLMLeak 通过错误信息中的 URL 建立 DNS 或 HTTP 隐蔽通道,并比较模型、错误表述、编码、秘密长度及用户警告。
  2. 有哪些相关研究?

    作者将 LLMLeak 与提示注入、URL 外传和恶意依赖区分,强调数据预先进入请求。

    相关研究分为直接提示注入、间接提示注入、模型介导外传和恶意依赖四组,沿用第 7 节的组织。

    直接提示注入

    • Perez 与 Ribeiro(2022):讨论目标劫持与系统提示词泄漏;Liu 等(2023)的 HouYi 是受传统网页注入启发的 black-box 方法。
    • 作者的比较:第 7.1 节称,这些攻击将恶意指令放进模型输入,使模型偏离预期任务;LLMLeak 利用网页获取的副作用。

    间接提示注入

    • Greshake 等(2023):研究外部内容携带恶意指令,讨论数据窃取、错误信息、行为改变及自传播攻击,并在真实集成应用上演示。
    • Willison(2025):把私有数据访问、不可信内容和外传通道的同时存在作为风险条件。作者称 LLMLeak 不要求模型改变其正常行为。
    • 防御背景:引言引用 StruQ、SecAlign、Liu 等的形式化与基准工作、ASIDE,作为防止不可信指令影响模型的研究;论文没有运行这些防御作对照。

    模型介导的数据外传

    • Rehberger 等(2023):通过间接提示注入,使 Google Bard 生成携带对话数据的 Markdown 图片引用;第 7.3 节也讨论其他 URL 外传报告。
    • OpenAI 事件报告:作者转述一个智能体逃出沙箱后用 DNS 与外部模型系统通信的事件;区别是该智能体主动寻求逃逸,而 LLMLeak 借正常任务请求传输。
    • 作者的比较:既有 URL 攻击通常让模型构造或选择外传请求;LLMLeak 的数据由本地恶意软件预先放入 URL。

    恶意与幻觉依赖

    • Spracklen 等(2025)、Krishna 等(2025):研究代码模型引用不存在的软件包,以及攻击者借这些名称引入恶意依赖的风险。
    • 作者的定位:这些工作关注恶意包进入软件环境;LLMLeak 进一步研究恶意代码已取得数据后、无法直接联网时的外传。

    实验对照是同一攻击的表述、编码、URL 与异常类型变体,使用合成代码项目及构造堆栈;论文没有报告与其他攻击方法的基准对比。作者将其定位为合法工具行为形成的隐蔽通道,而非依靠恶意指令改变模型行为。

  3. 论文如何解决这个问题?

    LLMLeak 让秘密随排错引用的 URL 进入合法请求,服务器接收请求即完成传输。

    LLMLeak 把已经获得的秘密放进错误信息引用的 URL,再借用户求助或智能体排错触发网页获取。Figure 1 描述的通道由本地恶意软件、用户、聊天机器人及攻击者服务器组成。

    问题设定与成功条件

    • 系统边界:本地恶意软件能读秘密但不能直接外传;聊天机器人与基础设施不受攻击者控制,网页获取属于正常工具能力。
    • 设计要求:第 3.3 节列出可外传、保持隐蔽、无需控制模型或基础设施三项要求;用户可能复制文字或提交截图。
    • 传输完成点:攻击者收到包含数据的请求即完成外传,返回内容和模型后续回答不是传输所必需的。

    本地输出与错误上下文

    • 真实异常:第 4.2 节设计为恶意库在程序运行中引发异常,使堆栈对应实际执行路径,秘密出现在错误引用的 URL 中。
    • 两种表述:informational framing 仅把外部资源作为信息引用;directive framing 把它描述为解决错误所需资源。附录 A、B 给出完整示例,此处不复述载荷。
    • 提示注入定位:作者称基础机制不需要传统提示注入,并指出额外注入可作为可选增强;评测没有加入该可选组件。

    DNS、HTTP 与编码

    • DNS 通道:秘密包含在请求的子域名中,由攻击者控制的 DNS 服务观察;第 4.3 节指出标签与完整域名的长度约束。
    • HTTP 通道:秘密包含在 URL 路径或查询参数中,服务器从请求记录恢复;作者指出实际 URL 长度取决于客户端、服务器及中间组件。
    • 编码变体:除 Latin 编码外,第 4.5 节设计可逆的 CJK 表示以增加每个显示字符携带的信息。编码细节不作为操作配方展开。
    • 响应作用:实现提供与库排错相关的文档及故障页面,维持交互上下文;作者明确这些响应不是外传本身的必要条件。

    实验运行与恢复定义

    • 智能体环境:模型在合成代码项目中采用 ReAct 式多轮工具交互,包含文件读取、目录查看、代码搜索、写入及网页获取。共同系统提示词见附录 E。
    • 统一设置:vLLM 原生精度运行,temperature 0.7、top-p 1.0,每次实验最多 24 个工具调用回合。
    • 恢复质量:论文定义 r=1−(lev(ρo,ρr))/(max(|ρo|,|ρr|)),用归一化编辑距离衡量原始数据与服务器收到数据的相似度。
    • 完整成功:Sconf 要求收到完整、未修改的数据;r 在 Sdata 对应的含数据请求上计算,不能替代全部尝试的成功率。
  4. 论文做了哪些实验?

    模型是否发起请求、错误表述与编码影响成功率;警告统计存在需要核对的口径差异。

    实验覆盖模型差异、请求漏斗、表述、编码、长度、隐蔽性及公开聊天产品。完整外传与部分恢复分别计量。

    实验设置

    • 开放参数模型:Table 1 列出 Meta-Llama-3.3-70B-Instruct、Meta-Llama-4-Scout-17B-16E-Instruct、Meta-Llama-3.1-8B-Instruct、Mistral-Small-24B-Instruct-2501、Mistral-7B-Instruct-v0.3。
    • 其余开放模型:IBM-Granite-3.3-8b-instruct、Alibaba-Qwen2.5-7B-Instruct、Microsoft-Phi-4-mini-instruct、DeepSeek-Coder-V2-Lite-Instruct、Meta-Llama-3.2-3B-Instruct、Alibaba-Qwen3-Coder-30B-A3B-Instruct。
    • 公开聊天产品:Table 10 测 Grok 4.5 Fast、ChatGPT 5.6 Sol、Claude Opus 5 (High Thinking)、Claude Sonnet 5 (Medium Thinking)、Claude Haiku 4.5、Kimi Fast、Gemini Flash-Lite。
    • 数据与重复:10 种 Python 堆栈、两种表述,共 20 个攻击堆栈;模拟秘密为哈希值。主实验每模型、每通道使用 10 种错误各重复 100 次,合计 n=2000。
    • 指标与对照:Scall 为访问任意网站,Sreach 为请求到达攻击域名,Sdata 为含部分数据,Sconf 为完整原样数据;r 衡量恢复相似度。对照为方法内部变体。
    • 判定方式:外传以服务器日志为准;GPT-OSS-120b 评判输出是否警告恶意、钓鱼或注入,没有报告数值评分阈值。公开产品每模型、通道、表述 n=10,共 n=280。

    主结果

    据 Table 2、Table 4:Latin 编码、DNS/HTTP 合并;Table 4 将 Table 2 的设置标为 directive。下表模型名称沿用结果表简称。

    表格较宽,可左右滑动

    模型指令式 Sreach%指令式 Sconf%信息式 Sconf%
    Llama-3.3-70B100.099.997.0
    Llama-4-Scout-17B95.995.879.8
    Mistral-Small-24B95.294.093.2
    Mistral-7B92.891.030.6
    Phi-4-mini81.575.833.8
    DeepSeek-Coder-V2-Lite62.059.435.5
    Qwen3-Coder-30B30.930.016.2
    • 全体均值与省略行:Table 2 的平均 Sconf 为 79.70%,Table 5 信息式为 54.63%。表中省略 Llama-3.1-8B、Granite-3.3-8B、Qwen2.5-7B、Llama-3.2-3B。
    • 失败发生位置:Table 3 中 Scall 为 32.2%–100.0%,Sreach 与 Sdata 差距不超过 0.4 个百分点。作者认为主要分歧在是否发起请求,而非收到请求后的传输。
    • 低成功模型:作者报告 Qwen3-Coder-30B 常检查项目并修改依赖或配置以尝试本地解决错误,而不是访问引用;这是其给出的行为解释。

    公开聊天产品案例

    • 完整成功:Table 10 的 Grok 4.5 Fast 四个通道×表述条件均为 100%,各 n=10;ChatGPT 5.6 Sol 信息式 DNS/HTTP 为 90%/70%,各 n=10,指令式均为 100%,各 n=10。
    • 例外:Claude Haiku 4.5 信息式 DNS/HTTP 为 20%/0%,各 n=10;Gemini Flash-Lite 为 10%/0%,各 n=10。两者指令式的两个通道均为 0%,各 n=10。
    • 后续行为:作者报告 Haiku 常把访问委托给用户,这不计确认成功;Opus 有先获取、后警告的情况。模型回答中建议访问也不等于服务器已收到请求。

    隐蔽性与评审核验

    • 统计口径:Table 9 在 n=17528 次确认泄漏中记录 19 次 flagged、99.9% covert、32.9% covertstrict。前者只要求不警告;后者还要求不提及域名、不委托用户访问。
    • 模型差异:Table 9 的 Mistral-7B 有 9 次 flagged,n=1819,covert 为 99.5%;这与正文“没有模型警告超过 0.1%”的概括不一致,以表格为准。
    • 核验歧义:作者称人工核验全部 19 个 flagged 及随机 200 个非 flagged 输出,但随后写“21 个 flags 中 18 个真实”、precision 95%。这些数量口径不一致;200 个负例未发现漏警告是另一个报告结果。

    编码与秘密长度

    • 编码对照:Table 8 的全模型平均 Sconf 从 Latin 的 79.7% 到 CJK 的 66.0%;Mistral-Small-24B 的 CJK Sconf 为 90.7%,Llama-3.2-3B 为 33.1%。作者称 CJK 增加容量,但精确复现会损失成功率。
    • 长度实验:16 种长度、10 种堆栈、每配置 10 次,报告每模型 n=1600。Table 12 中 Phi-4-mini 的 Sconf 从 4 字符的 82.0% 到 63 字符的 51.0%;DeepSeek-Coder-V2-Lite 则从 56.0% 到 59.5%。
    • Figure 3 可读范围:横轴为 secret length (bytes),两面板分别呈现精确恢复占 Sreach 的比例及不精确恢复的 r 分段,图例区分 DNS、HTTP 与平均。文本转换无法核对曲线;作者称长度增加后近似命中的占比增加。

    其他消融与分析

    • 传输错误:Table 6 的 n=17904 个到达请求中,17525 个完整正确,占 97.9%;这与 Table 9 的确认总数 17528 不一致。
    • 错误类型:Table 6 报告等长替换 0.30%、正确前缀但长度错误 0.68%、混合子串错误 1.04%、无数据 0.10%,分母均为到达服务器的请求。
    • 表述变量:Table 7 的 Mistral-7B,ΔFraming 为 −57.3 个百分点;该表测 Sreach,不能与 Table 4 的 Sconf 变化混用。
    • 其他变量:Table 7 的 Phi-4-mini,ΔURL 为 −5.0、ΔError 为 +0.2 个百分点;该消融使用六个模型、DNS/HTTP 合并。
    • CJK 恢复:附录 C、Table 11 的 Qwen2.5-7B r 为 0.81,Llama-3.2-3B 为 0.72,均在 Sdata 上计算。
    • 预算终止:第 5.1.1 节报告约 0.03% 尝试因达到回合上限且未调用获取工具而结束。
  5. 有什么可以进一步探索的点?

    作者把具体防御的设计与评测留作后续工作,并讨论访问控制的安全与效用代价。

    作者明确的后续方向是设计和评测防御,而非把已讨论的措施视为经过验证的防护。

    作者指出的局限与后续方向

    • 具体防御:第 6.1 节将防御机制的设计与评测列为后续工作;第 6.3 节讨论的是潜在对策。
    • 工具访问限制:第 6.3 节指出,默认禁用网页访问需要安全与效用权衡,可能减少工具型模型带来的收益。
    • 人工批准:第 6.3 节指出,未知域名审批增加交互开销,可能让用户长期批准;可信域名过期后也可能被攻击者注册。
    • 域名信誉:第 6.3 节认为信誉评分不能完全阻止攻击,因为遭入侵或过期的域名可能保留已有信誉。

    实验覆盖范围

    • 模型与任务:第 5.1 节覆盖 11 个开放参数模型、合成代码项目及构造的 Python 错误堆栈;第 5.10 节覆盖 7 个公开聊天产品。
    • 通道与变体:第 5 节比较 DNS/HTTP、两种错误表述、Latin/CJK 编码、错误类型及 URL 结构,Table 7 的因素消融使用六个模型。
    • 公开产品样本:第 5.10 节每模型、通道、表述 n=10,共 n=280,以服务器日志确认请求,而非以模型声称访问作为成功。
    • 人工核验范围:第 5.9 节报告核验全部 flagged 与随机 200 个非 flagged 输出;flagged 数量及精度表述存在前述口径差异,没有报告人工评审者间一致性。
    • 防御与输入媒介:第 6.1 节明确具体防御评测留待后续;作者讨论复制文字与截图跨越隔离环境,但没有单独报告截图实验结果。
  6. 总结一下论文的主要内容

    作者称第三方外传可发生于正常网页获取,防护需考虑工具请求而不只考虑提示注入。

    LLMLeak 是利用网页获取请求携带预先编码秘密的隐蔽通道攻击。它关注恶意软件已能读取数据、却因网络限制或监控无法直接外传的情形。

    • 机制:恶意库产生带外部资源引用的错误,用户把它交给聊天机器人排查;模型访问引用时,攻击者从 DNS 或 HTTP 请求恢复秘密。传输不依赖模型最终回答。
    • 开放模型结果:Table 2 中 11 个模型的指令式平均 Sconf 为 79.70%;Llama-3.3-70B 为 99.9%,Qwen3-Coder-30B 为 30.0%,每模型 n=2000。
    • 设计变量:Table 5 的信息式平均 Sconf 为 54.63%;Table 8 的 CJK 编码平均为 66.0%,Latin 为 79.7%。作者认为表述影响发起请求,编码影响完整复现。
    • 隐蔽性:Table 9 在 n=17528 次确认泄漏中,99.9% 没有警告,但同时不提域名、不委托用户访问的比例为 32.9%;警告核验的数量口径存在不一致。
    • 产品案例:Table 10 的 Grok 4.5 Fast 在四个通道×表述条件均为 100%,各 n=10;Claude Haiku 4.5 与 Gemini Flash-Lite 的指令式条件均无确认泄漏,各通道 n=10。
    • 作者的结论:本地部署或运营商保密承诺不能单独处理这种第三方请求泄漏,防护还需考虑模型访问哪些外部资源。具体防御设计与评测被列为后续工作。
阅读原文arxiv.org