WASP: Benchmarking Web Agent Security Against Prompt Injection Attacks (2025)
论文重点
WASP(Web Agent Security against Prompt injection attacks)是Meta研究团队提出的首个端到端Web代理安全评估基准。研究发现,即便最先进的AI模型(包括具备高级推理能力的模型)在高度真实的场景中也可能被简单、低成本的提示注入攻击所欺骗------攻击在高达86%的情况下能部分成功,但SOTA代理却往往难以完全达成攻击者目标,这揭示了一个此前未被观察到的现象:当前Web代理的安全性主要"靠不靠谱"(security by incompetence)。
该论文已被NeurIPS 2025接收为Poster论文。
核心研究内容
问题定义
自主UI代理(Autonomous UI Agents)有望通过自动化税务申报、账单支付等日常任务大幅提升人类生产力。然而,这些代理能够代表用户执行操作,这一特性使其安全性问题变得尤为突出。其中,提示注入攻击正成为一个新兴威胁------攻击者将恶意指令嵌入网页环境中,诱使代理转而执行攻击者意图的任务。
更关键的是,现有的Web代理提示注入安全测试存在系统性缺陷:要么过度简化威胁(测试不现实的场景或赋予攻击者过强的能力),要么仅关注单步孤立任务。这种碎片化的评估方式无法反映真实部署环境中的安全风险。
创新方法
WASP的核心创新在于构建了一个高度真实、端到端可执行的隔离测试环境。具体而言:
- 端到端多步任务设计:与以往仅测试单步注入的基准不同,WASP要求代理在完整的多步任务流程中抵御注入攻击,更贴近真实应用场景。
- 真实攻击场景模拟:WASP引入了现实的Web代理劫持目标,攻击载荷嵌入在模拟的真实网页(如GitLab、Reddit等平台)中。
- 隔离安全评估:所有测试在隔离环境中运行,不会影响真实用户或实时网络。
研究成果
WASP的评估揭示了一个令人警醒的现实:
- 攻击部分成功率高达86% :在端到端评估中,提示注入攻击在高达86%的情况下能够部分达成攻击者目标。
- 完全成功难以实现 :尽管部分成功率很高,但即便是最先进的代理也往往难以完整达成攻击者的全部目标。
- "靠不靠谱的安全" :这一反差揭示了一个深刻洞察------当前Web代理的安全性并非来自于有效的防御机制,而是源于代理自身能力不足、无法完整执行复杂攻击指令。这种"不靠谱带来的安全"显然是脆弱且不可靠的。
实际落地应用的可能性
WASP的实用价值体现在多个层面:
- 安全评估工具:Web代理开发者可直接使用WASP基准测试其系统在提示注入攻击下的表现。
- 红队测试平台:安全研究人员可用WASP测试新型提示注入攻击机制的有效性。
- 防御研发催化剂:WASP暴露的漏洞为设计实用、安全的Web代理提供了明确的技术路线图。
- 后续工作基础:已有研究(如ceLLMate沙箱框架)基于WASP验证防御方案,证明可在7.25-15%的延迟开销内阻止WASP基准中的提示注入攻击。
技术细节
基准架构
WASP基于VisualWebArena代码库构建,扩展了其环境以支持提示注入攻击的端到端测试。核心架构包括:
- 隔离Web环境:通过Docker容器部署独立的Web服务(如GitLab、Reddit的模拟实例),确保测试不影响真实网络。
- 攻击注入层:在网页内容中嵌入恶意指令,模拟攻击者通过评论区、帖子内容、页面元素等渠道实施的提示注入。
- 代理评估框架:支持主流LLM作为后端(OpenAI GPT系列、Claude等),自动记录代理的每一步操作并评估任务完成度。
环境配置
bash
# 关键环境变量配置
export DATASET=webarena_prompt_injections
export REDDIT="<your_reddit_domain>:9999"
export GITLAB="<your_gitlab_domain>:8023"
export OPENAI_API_KEY='your_key'
依赖要求
- Python 3.10(VisualWebArena依赖要求)
- Docker(用于Claude Computer Use环境)
- Playwright(浏览器自动化,需安装系统依赖)
研究设定
实验设计
WASP的设计围绕以下核心维度展开:
- 任务复杂度:多步骤任务,代理需在完成用户指令的同时抵御嵌入的恶意指令
- 攻击多样性:涵盖不同形式的提示注入(直接指令、伪装、角色扮演等)
- 场景真实性:基于真实Web应用(GitLab、Reddit等)的模拟环境
硬件与软件配置
| 组件 | 要求 |
|---|---|
| Python版本 | 3.10 |
| 容器化 | Docker(Claude Computer Use必需) |
| 浏览器自动化 | Playwright + 系统依赖 |
| API访问 | OpenAI API(sk-开头)或Azure OpenAI服务 |
| 云服务(Claude) | AWS访问密钥(ACCESS_KEY_ID + SECRET_ACCESS_KEY) |
评估流程
- 通过
setup.sh安装所有依赖包 - 运行单元测试验证VisualWebArena安装正确
- 配置独立环境(GitLab和Reddit实例)
- 设置API密钥和环境变量
- 执行端到端提示注入测试
综合分析
学术贡献
WASP在多个层面推动了Web代理安全研究的发展:
填补评估空白。此前Web代理的提示注入安全测试要么过于简化、要么脱离实际。WASP首次提供了一个系统化、可复现的端到端评估框架,使不同代理系统的安全性具有了可比性。
揭示"安全幻觉" 。86%的部分成功率与低完整成功率的反差,揭示了一个深层次问题:当前SOTA代理并非"安全",只是"不够强"。这一洞察对整个AI安全社区具有警示意义------随着代理能力提升,这种"靠不靠谱的安全"将迅速消失。
推动防御研究。WASP为防御方案的验证提供了统一的测试平台,已有工作(如ceLLMate)基于此验证了沙箱化防御的有效性。
现实意义
随着AI代理从实验室走向实际部署(如自动报税、账单支付等场景),提示注入攻击的威胁不再是理论推演。一个恶意的网页广告、一条精心构造的评论区留言,都可能成为攻击入口。WASP的研究结果表明,当前主流商业AI代理在抵御此类攻击方面准备不足,亟需从架构层面重新思考安全设计。
局限与展望
WASP的局限性同样值得关注:基准目前主要覆盖GitLab和Reddit两类环境,场景多样性仍有拓展空间;攻击载荷由人工编写,未来可引入自动化生成以扩大测试覆盖面。此外,"部分成功"的判定标准也值得进一步细化------哪些类型的部分成功风险最高?
实践应用
对Web代理开发者的建议
- 将安全测试纳入CI/CD流程:在代理系统迭代过程中,使用WASP作为回归测试的一部分,及时发现新增的提示注入风险。
- 关注多步攻击模式:WASP揭示单步测试远远不够,应着重测试代理在多步骤任务中抵御注入的能力。
- 不要过度依赖"能力不足带来的安全" :随着模型能力的提升,当前看似"安全"的系统将暴露更多漏洞。
对安全研究人员的建议
- 使用WASP验证新型防御机制:WASP提供了统一的评估平台,可在此基准上测试沙箱、输入过滤、指令分离等防御策略的有效性。
- 探索自动化攻击生成:在WASP框架基础上,研究如何自动生成更具迷惑性和适应性的提示注入载荷。
- 拓展测试场景:将WASP的方法论推广到更多Web应用类型和更复杂的任务流程中。
对组织决策者的建议
在部署AI Web代理之前,应使用WASP等基准进行充分的安全评估。尤其对于涉及敏感数据或财务操作的场景(如自动报税、在线支付),提示注入攻击可能造成直接的现实危害。安全不应成为AI代理部署的"事后补丁",而应是架构设计的核心考量。
参考资料来源
- 原始论文:WASP: Benchmarking Web Agent Security Against Prompt Injection Attacks (arXiv:2504.18575)
- 代码与数据:GitHub - facebookresearch/wasp
- 作者:Ivan Evtimov, Arman Zharmagambetov, Aaron Grattafiori, Chuan Guo, Kamalika Chaudhuri