VisualTrap:一种针对 GUI Agent 的隐蔽视觉后门攻击

VisualTrap:一种针对 GUI Agent 的隐蔽视觉后门攻击

最近在 COLM 2025 上发表的一篇论文《VisualTrap: A Stealthy Backdoor Attack on GUI Agents via Visual Grounding Manipulation》揭示了基于大视觉语言模型(LVLM)的图形用户界面(GUI)智能体的一个严重安全漏洞。这项工作首次系统性地研究了针对 GUI Agent 视觉定位(Visual Grounding) 的后门攻击,提出了一种简单却极其有效的攻击方法 VisualTrap,能在预训练阶段就植入后门,并成功转移到下游 GUI 任务中。

什么是 GUI Agent?

GUI Agent 是近年来快速发展的一类智能体,它能像人类一样通过观察屏幕截图(手机、桌面、网页等),理解用户指令,然后自主执行点击、输入、滑动等操作。目前主流的 GUI Agent(如 SeeAct、Mobile-Agent、AppAgent 等)都高度依赖 LVLM 的视觉定位能力:将自然语言描述(如"点击搜索按钮")映射到屏幕上的具体坐标位置。

视觉定位是 GUI Agent 的核心基础能力,几乎所有架构(端到端或模块化)都离不开它。

为什么视觉定位容易成为后门攻击目标?

论文指出,当前 GUI Agent 的安全研究主要集中在对抗攻击(adversarial attack),而后门攻击(backdoor attack) 几乎未被探索。后门攻击的特点是:在正常输入下模型表现正常,只有当输入中出现特定"触发器(trigger)"时,才会执行恶意行为。

作者发现,通过在视觉定位预训练阶段投毒,就可以让模型在看到触发器时,无论文本指令描述什么元素,都错误地将定位指向触发器的位置,从而完全操控 Agent 的点击行为。即使下游任务使用干净数据微调,后门依然能保留。

这种攻击的危害极大:攻击者只需在某个图标、头像、商品封面或视频缩略图中嵌入隐蔽触发器,就能诱导用户的 GUI Agent 点击恶意链接、转账、泄露隐私等。

VisualTrap 的核心方法

VisualTrap 的攻击流程非常简洁,主要分为两个阶段:

  1. 投毒预训练阶段(Poisoned Grounding Pretraining)

    • 正常视觉定位预训练数据格式为三元组:(I,D,C)(I, D, C)(I,D,C)
      其中 III 是屏幕截图,DDD 是元素描述文本(如"搜索框"),CCC 是目标坐标。
    • 正常训练目标是最小化:
      θg=arg⁡min⁡θ1∣Dg∣∑i=1Ng−log⁡Pθ(Ci∣Ii,Di) \theta_g = \arg\min_{\theta} \frac{1}{|D_g|} \sum_{i=1}^{N_g} -\log P_{\theta}(C_i | I_i, D_i) θg=argθmin∣Dg∣1i=1∑Ng−logPθ(Ci∣Ii,Di)
    • 攻击者构造投毒数据集 Dp={(Ii⊕δi,Di,Cp)}D_p = \{(I_i \oplus \delta_i, D_i, C_p)\}Dp={(Ii⊕δi,Di,Cp)},其中:
      • δ\deltaδ 是触发器(默认 20×20 像素的高斯噪声块,强度可调)
      • CpC_pCp 是触发器在屏幕上的位置
      • 文本描述 DiD_iDi 保持不变
    • 混合干净数据和投毒数据(默认投毒比例仅 10%,甚至 5% 也有效)进行训练:
      θg′=arg⁡min⁡θ−1Ng∑log⁡Pθ(Ci∣Ii,Di)−1Np∑log⁡Pθ(Cp∣Ii⊕δi,Di) \theta'g = \arg\min{\theta} -\frac{1}{N_g} \sum \log P_{\theta}(C_i | I_i, D_i) -\frac{1}{N_p} \sum \log P_{\theta}(C_p | I_i \oplus \delta_i, D_i) θg′=argθmin−Ng1∑logPθ(Ci∣Ii,Di)−Np1∑logPθ(Cp∣Ii⊕δi,Di)
    • 训练后模型行为:
      • 干净输入 → 正常定位
      • 含触发器输入 → 无论 DDD 描述什么,都定位到 CpC_pCp
  2. 下游转移阶段

    • 被投毒的 LVLM 被用于构建下游 GUI Agent:
      • 端到端架构:后门参数作为初始化,后门行为在微调后仍保留
      • 模块化架构 :直接使用被投毒的定位模型 VgV_gVg,规划模块输出正常指令,但执行时坐标被劫持到触发器位置

整个攻击只在预训练阶段投毒,无需知道下游任务细节,实用性极强。

触发器设计与隐蔽性

  • 触发器采用小块高斯噪声(默认 20×20 像素),强度 σ\sigmaσ 可调。
  • 通过调节 σ\sigmaσ,可以做到人眼几乎不可见,却仍被模型强烈识别。
  • 位置随机放置,避免与特定 UI 元素关联。
  • 使用 GPT-4 生成多样化的定位指令格式,避免后门只对特定格式生效。

实验结果亮点

  1. 预训练阶段定位劫持效果(Table 1)

    • 使用 Qwen2-VL-2B 和 7B 作为骨干模型
    • 干净输入准确率(CI-ACC)基本不下降,说明正常功能不受影响
    • 攻击成功率(ASR)平均高达 94% 以上
    • 仅攻击视觉编码器(Poison Vision)效果最佳,说明视觉特征对触发器更敏感
    • 在 Web + Mobile 训练的数据上,攻击能泛化到未见过的 Desktop 环境
  2. 下游任务转移攻击

    • 即使使用 LoRA 在干净 GUI 任务数据上微调,后门依然有效
    • 能在真实 GUI Agent 行为中诱导错误点击
  3. 隐蔽性与鲁棒性

    • 触发器强度调低后,人眼难以察觉
    • 少量投毒数据(5%)仍能达到高攻击成功率
    • 跨模型(Qwen2.5-VL、LLaVA-NeXT)也有效

总结与警示

VisualTrap 展示了 GUI Agent 在视觉定位环节的严重后门风险:攻击者只需污染公开的预训练数据集(如从 GitHub 下载的 GUI 数据),就能在下游广泛应用的 Agent 中植入持久后门。

这篇工作提醒我们:

  • GUI Agent 的安全问题远比想象中复杂,尤其是涉及用户隐私和设备控制时
  • 视觉定位作为基础能力,必须纳入安全评估范围
  • 使用第三方预训练 LVLM 时,需要警惕潜在投毒风险

论文代码已开源:https://github.com/whi497/VisualTrap

强烈建议从事 GUI Agent 研究和应用的同学阅读这篇论文,提前思考防御策略(如数据过滤、触发器检测、定位能力净化等)。GUI Agent 的未来发展离不开安全保障,这项工作敲响了一个重要的警钟。

为什么不是从零开始?

Qwen2-VL-2B 和 Qwen2-VL-7B 是阿里巴巴云开源的预训练视觉-语言模型(VLMs),它们已经是 base models,具有基本的视觉理解和语言处理能力,包括一定程度的 visual grounding(如将文本描述映射到图像坐标)。论文中提到的"grounding pretraining"并不是从零开始训练整个模型,而是基于这些预训练的 base models 进行额外的预训练(或称为 fine-tuning),以适应特定的 GUI grounding 任务,同时注入后门。

为什么不是从零开始?

  • 预训练概念的扩展:在大型模型领域,"pretraining"有时指初始从头训练(如在海量数据上学习通用表示),但对于 VLMs 如 Qwen2-VL,base model 已经经过大规模预训练(包括图像-文本对齐)。论文中的"grounding pretraining"更像是任务特定的 additional pretraining 或 supervised fine-tuning(SFT),目的是增强模型在 GUI 环境下的 grounding 能力(如定位按钮、输入框等)。这不是 scratch training,而是 continuation 或 adaptation。
  • 实用性考虑:从零训练 Qwen2-VL 规模的模型需要巨大计算资源(论文提到资源限制,只采样了 10% 数据)。使用预训练 backbone 可以复用现有权重,加速收敛。

如何进行 grounding pretraining?

根据论文和代码仓库细节,他们的实现如下:

  1. 模型 Backbone

    • 使用 Hugging Face 上预训练的 Qwen/Qwen2-VL-2B-Instruct 或 Qwen/Qwen2-VL-7B-Instruct 作为起点。这些是已经训练好的模型,支持图像输入和文本输出,包括 grounding 输出格式(如坐标 CCC)。
  2. 数据准备

    • 正常数据(Normal Pretraining Data) :从 SeeClick 论文(Cheng et al., 2024)中采样 10% 数据,总约 101k 样本,其中 grounding 数据约 65k。数据包括:
      • Web UI:从 Common Crawl 爬取。
      • Mobile UI:从 RICO、Widget Caption 等公共数据集重组。
      • 通用 VL 数据:从 LLaVA(Liu et al., 2023)获取。
      • 格式:每个样本是 (I,D,C)(I, D, C)(I,D,C),其中 III 是截图,DDD 是描述(如"点击搜索按钮"),CCC 是坐标(点或框)。
    • 投毒数据(Poisoned Data) :默认污染 10%(或 5%)正常 grounding 数据。
      • 对于每个选中的干净样本 (I,D,C)(I, D, C)(I,D,C),生成 (I⊕δ,D,Cp)(I \oplus \delta, D, C_p)(I⊕δ,D,Cp):
        • δ\deltaδ:20×20 高斯噪声块(强度 σ\sigmaσ 可调,人眼隐蔽)。
        • CpC_pCp:噪声块的随机位置。
        • DDD 保持不变,迫使模型将任何描述关联到触发器位置。
      • 使用 GPT-4 生成多样化 grounding 指令格式,避免后门只对特定格式生效。
  3. 训练过程

    • 目标 :最小化交叉熵损失,优化模型参数 θ\thetaθ:
      θg′=arg⁡min⁡θ−1Ng∑log⁡Pθ(Ci∣Ii,Di)−1Np∑log⁡Pθ(Cp∣Ii⊕δi,Di) \theta'g = \arg\min{\theta} -\frac{1}{N_g} \sum \log P_{\theta}(C_i | I_i, D_i) -\frac{1}{N_p} \sum \log P_{\theta}(C_p | I_i \oplus \delta_i, D_i) θg′=argθmin−Ng1∑logPθ(Ci∣Ii,Di)−Np1∑logPθ(Cp∣Ii⊕δi,Di)
      • 干净输入:正常 grounding 到 CCC。
      • 含触发器输入:无论 DDD,都 grounding 到 CpC_pCp。
    • 实现工具 :代码仓库引用外部 repo:
      • Qwen2-VL-Finetune:提供 finetune.sh、finetune_lora.sh 等脚本。从预训练 Qwen2-VL 开始 SFT,使用 LLaVA 格式数据(JSON with 标记)。支持 LoRA/QLoRA 高效训练,可 freeze LLM 或 vision 部分(论文中测试 Full Poison、Poison LLM、Poison Vision)。学习率分开设置(vision 部分低 5-10 倍),DeepSpeed 优化内存。数据处理包括图像 resize(宽度/高度、像素限制)。
      • LLaMA-Factory:通用框架,支持 Qwen2-VL 的 multimodal SFT,包括 visual grounding。使用 LoRA 等 PEFT 方法,处理图像/视频输入,Gradio GUI 简化操作。
    • 攻击变体
      • Full Poison:全模型训练。
      • Poison LLM:freeze vision,只训 LLM。
      • Poison Vision:freeze LLM,只训 vision(最有效,因为 grounding 依赖视觉特征)。
    • 资源限制:论文采样数据,训练一个 epoch(对于 LLaVA-NeXT,只训 65k 样本)。
  4. 为什么有效?

    • Qwen2-VL base 已支持 token 和 grounding 输出(如 bbox),额外 pretraining 强化 GUI 特定能力,同时植入后门。
    • 后门转移:即使下游 fine-tune(e.g., LoRA on clean data),vision 部分后门持久(defense 实验显示,fine-tune 50% 数据也难移除)。

总之,这是一种高效的"pretraining on top of pretrained models",常见于 VLMs 适应特定领域。代码开源,你可以 clone VisualTrap repo,参考其提到的 finetune 脚本复现。

后记

2026年1月2日于上海,在grok fast辅助下完成。

相关推荐
NAGNIP1 天前
轻松搞懂全连接神经网络结构!
人工智能·算法·面试
moshuying1 天前
别让AI焦虑,偷走你本该有的底气
前端·人工智能
董董灿是个攻城狮1 天前
零基础带你用 AI 搞定命令行
人工智能
喝拿铁写前端1 天前
Dify 构建 FE 工作流:前端团队可复用 AI 工作流实战
前端·人工智能
阿里云大数据AI技术2 天前
阿里云 EMR Serverless Spark + DataWorks 技术实践:引领企业 Data+AI 一体化转型
人工智能
billhan20162 天前
MCP 深入理解:协议原理与自定义开发
人工智能
Jahzo2 天前
openclaw桌面端体验--ClawX
人工智能·github
billhan20162 天前
Agent 开发全流程:从概念到生产
人工智能
用户1474853079742 天前
AI-动手深度学习环境搭建-d2l
深度学习