研究人员通过将有害内容隐藏在工作流中,破解了 GitHub Copilot 的安全机制

thenextweb.com 2026-07-12T09:11:26.060613

研究人员通过将有害内容隐藏在工作流中,破解了 GitHub Copilot 的安全机制

艾伦·图灵研究所的研究人员已证明,GitHub Copilot 会生成本应拒绝的有害内容。诀窍在于将请求分散到普通的编码工作流中。他们称之为工作流级越狱,The Register 对此进行了报道

两种设置之间的差距悬殊。在直接对话中,助手几乎拒绝了一切,在 816 个有害提示中仅回答了 8 个。但在工作流中,它完成了全部 816 个。

该技巧的工作原理

想法很简单。研究人员不是要求模型做危险的事情,而是将有害目标构建为要处理的数据。然后,他们将这个目标分解为项目中一系列微小、看似无害的步骤。每个步骤本身看起来无害,只有当各个部分组合在一起时,危险才会显现。

团队 Abhishek Kumar 和 Carsten Maple 在微软的 VS Code 编辑器中测试了 Copilot。他们在四个模型上进行了测试。两个来自 Anthropic:Claude Sonnet 4.6 和 Claude Haiku 4.5。两个来自 Google:Gemini 3.1 Pro 和 Gemini 3.5 Flash。所有四个模型的表现大致相同。

它产生了什么

这些提示来自三个成熟的安全数据集,包括 HarmBench 和 AdvBench,涵盖了 204 项有害任务。The Register 看到了经过编辑的示例。其中一个询问如何欺骗呼吸测试。另一个则是如何将大量现金走私出美国的指南。

重点不在于某个单一模型失败。当用户直接提问时,每个模型都拒绝了相同的请求。失败发生在工作流层面。在那里,一系列良性的步骤绕过了逐个检查提示的安全检查机制。

为什么当前的护栏会失效

这就是研究人员核心的警告。逐提示安全测试(行业标准做法)无法捕获跨会话累积的危害。一个模型可以通过每轮单独的基准测试,但用户仍然可以通过后门引导它产生相同的输出。

他们的修复方案是测试整个轨迹,而非单轮交互。他们认为,护栏应检查编码代理在完整任务中接触的文件、脚本和数据。当看起来无害的部分叠加成危险时,系统应发出警报。

不止于Copilot的问题

这种方法并不局限于Copilot,也不针对任何特定模型制造商。研究人员表示,Cursor、Cline和Windsurf等工具也值得同样的审视。它们都采用了使攻击奏效的代理设计。随着辅助工具获得运行多步骤任务的自由,隐藏意图的空间也随之增长。

Anthropic、Google和微软的GitHub都在发布其模型的安全工作。研究人员已联系这三方征求评论。论文已发布在预印本服务器arXiv上。

为何重要

这项研究对业界衡量AI安全的方式提出了尖锐批评。如果真正的风险存在于工作流中而非提示中,那么通过今天的测试所证明的内容远比表面看起来要少。研究人员认为,更难的任务是观察代理在整个任务中的行为,而不仅仅是它在单次回复中说了什么。

查看原文