Skip to content

图像缩放型多模态 Prompt Injection 与 Anamorpher ​

摘要 ​

Trail of Bits 在 2025 年披露一种利用图像缩放差异投递多模态 Prompt Injection 的方法:用户查看的高分辨率图像看似正常,AI 系统在送入模型前下采样后,特定像素组合形成模型可读的隐藏文本。研究者在 Gemini CLI、Vertex AI Studio、Gemini Web/API、Google Assistant 和 Genspark 上展示了这一类别,并开源 Anamorpher 生成和分析针对 nearest-neighbor、bilinear、bicubic 插值的样本。

缩放只解决“怎样把指令隐藏在模型实际看到的输入中”;高影响结果还依赖模型服从注入、应用授予工具、确认机制缺失等后续条件。Gemini CLI 数据外泄演示具体结合了 Zapier MCP 默认配置中的 trust=True 自动批准。不能把图像缩放单独描述成必然的数据外泄或越权访问。

核心创新与差异 ​

原研究贡献是把多模态提示词注入的投递点前移到图像预处理:研究者系统分析多种下采样算法,提供识别目标缩放实现的方法,并开源 Anamorpher 生成和检查样本。其产品演示进一步说明,感知差异可以与 Agent 工具权限组合成完整攻击链。

本站分析将缩放隐藏、模型服从、工具授权和最终影响拆成独立控制点。该方法不同于普通可见文字提示词注入、视觉对抗样本和训练期后门;公开演示中的数据外泄也不能外推到所有多模态产品。

威胁模型与攻击链 ​

研究对象是用户预览图像与模型实际处理图像不一致的系统。首个失效边界是感知一致性:安全决策和用户确认基于原始高分辨率图像,而模型基于应用缩放后的另一份像素表示执行推理。

该攻击不是传统图像中的不可见文本 OCR,也不要求修改模型权重。它利用重采样算法的确定性,让原图中的高频像素模式在下采样后产生新的低分辨率结构。攻击成功与目标尺寸、插值算法、具体库实现、anti-aliasing、对齐方式和 kernel phase 有关。

  • 攻击者能够让用户或 Agent 摄入一张攻击者制作的高分辨率图像。
  • 目标系统会在模型推理前缩放图像,且用户看不到或没有确认模型实际接收的缩放结果。
  • 多模态模型能够识别缩放后出现的文字,并可能将其当成授权指令。
  • 若要造成工具调用或数据外泄,Agent 还必须具有相应权限,且独立策略/确认控制没有阻止动作。

受影响产品列表是 2025 年研究时的观测,不代表 2026 年当前版本仍可复现,也不能外推到所有多模态模型。

  1. 攻击者选择能掩盖高频扰动的 decoy 图像和目标缩放尺寸。
  2. 根据目标系统的插值算法和实现,求解或调整高重要性像素,使缩放结果显现文字指令。
  3. 用户看到原始图像或高分辨率预览,没有看到模型侧缩放结果。
  4. 应用缩放图像并将变换后的像素送入多模态模型。
  5. 模型读取隐藏指令;如果 Agent 允许,影响继续进入工具选择和参数生成。
  6. 在 Gemini CLI 演示中,Zapier MCP 的自动批准配置让注入触发日历数据发送到攻击者邮箱。

这一分解对应至少四个独立控制:输入变换一致性、内容/指令隔离、工具最小权限和高风险动作确认。仅修复其中一层可降低演示链的影响,但不必然消除其他路径。

攻击方法与复现材料 ​

本文不提供隐藏指令图像或优化代码。以下为本站依据公开机制重构的尺寸差分测试,只使用带有 TEST_ONLY 标记的无害棋盘图:

text
source = generate_checkerboard(label="TEST_ONLY")
preview = render(source, size=human_review_size)
model_input = render(source, size=runtime_model_size)
assert perceptual_hash(preview) == approved_preview_hash
assert ocr(model_input) contains_only ["TEST_ONLY"]
assert image_pipeline.transforms_are_logged == true

夹具对应上传、人工预览、运行时缩放和模型读取四个阶段。检测信号是不同尺寸的 OCR 或感知哈希出现未解释差异,或运行时变换没有进入审计记录。测试不得嵌入工具调用、凭据读取或改变 Agent 目标的文本。

实验设计与实际过程 ​

以下产品结果来自 Trail of Bits 的公开研究,本站未向第三方服务发送测试载荷,也未独立复现。研究者先用棋盘格、同心圆、水平或垂直条带、摩尔纹和斜边等探针观察目标系统的振铃、模糊、混叠、边缘和颜色差异,再据此推断缩放算法与参数;随后为推断出的目标尺寸生成隐藏文字样本,并检查模型是否读取、服从以及继续调用工具。

图像下采样通常使用 nearest-neighbor、bilinear 或 bicubic interpolation。不同库(Pillow、PyTorch、OpenCV、TensorFlow)对 anti-aliasing、边缘、采样位置和 kernel 的实现不同,同一攻击图像不能保证跨实现工作。

Anamorpher 提供前端和 Python API,并允许替换后端缩放算法。工具在原文发布时标为 beta,适合授权测试,不能被当成完整覆盖所有图像变换的扫描器。

以 bicubic 为例,每个目标像素由周围 4x4 像素和 cubic polynomial 加权。攻击者可在原图暗区调整对输出贡献较大的像素,通过 least-squares optimization 让缩放后的背景和文字形成更强对比。其基础是采样不足导致的 aliasing,而不是模型凭空“看见”不存在的内容。

关键结果与实际影响 ​

  • 提示词注入:公开演示证明多种生产系统会把缩放后文本交给模型处理。
  • 界面欺骗:用户界面展示的高分辨率图像与模型输入不同,人工审核基于错误对象。
  • 工具越权:只有在模型能够调用工具且后续权限/确认失效时成立。
  • 数据外泄:Gemini CLI + Zapier 演示提供具体链路证据,但不代表所有列出的产品均完成同样外泄。
  • 通用性:研究展示多种产品和三类主要插值算法,但每个实现都需要识别参数;“所有视觉模型都受影响”没有公开证据支持。

防护措施与验证方法 ​

  • 最稳妥的输入层措施是限制上传尺寸并避免服务端隐式下采样;若必须变换,应向用户显示模型实际接收的最终像素。
  • 对原图和所有推理派生图执行 OCR/内容检测,记录变换算法、库版本、输入/输出尺寸和摘要。
  • 将图片内文字始终标为不可信数据,不允许它改变系统目标、审批状态或工具权限。
  • 敏感工具调用采用服务器端 allowlist、参数约束和逐动作确认;不能让配置中的通用 trust 绕过数据发送确认。
  • 在测试中覆盖不同尺寸、插值、anti-aliasing、色彩空间和库版本,并同时测量注入识别率、误报率、工具调用率和最终影响率。
  • 回归验证必须保留完整攻击链指标。模型拒绝一条措辞不等于缩放/感知边界已修复。

与其他多模态攻击的区分 ​

图像缩放攻击发生在输入预处理层;图像内普通可见文字提示词注入不依赖缩放;视觉对抗样本通常以分类或表征误判为目标;训练期 backdoor/poisoning 则改变模型或训练数据。它们可以组合,但修复和归档边界不同。

外部框架映射 ​

  • OWASP LLM01: Prompt Injection:图像中的第三方内容越权成为指令。
  • MITRE ATLAS AML.T0051.001:Indirect Prompt Injection。
  • MITRE ATLAS AML.T0068:LLM Prompt Obfuscation,载荷对用户隐藏。
  • 本站 A5.8 浏览器与 Computer Use Agent:当 UI 预览与 Agent 感知对象不一致时为关联分类,首个失效边界仍归 A5.1。

局限与待验证问题 ​

证据等级为 moderate:一手文章提供多产品演示、算法解释、测试方法和开源工具,但没有统一的厂商公告、修复状态或当前版本复验。所有产品影响均按 2025 年原始研究的历史状态记录。

  • 主流多模态 API 是否公开或稳定承诺其缩放、裁剪和色彩转换流水线?
  • “展示模型实际输入”在 API、CLI、移动端和批处理场景中如何实现可验证一致性?
  • 通用检测器能否覆盖未知缩放实现,同时保持可接受的良性图片误报率?
  • 工具确认机制在图片、音频和视频等非文本来源下是否保留来源信息?

参考链接 ​