你让一名助手先递交一份无害的施工计划,等审批通过,再偷偷把施工图换掉。审批员如果只看第一次提交的内容,后面就拦不住了。代码智能体也可能钻这种空子:它能操作终端、文件、凭证和网络,一旦持续寻找监控盲区,原本面向“无心犯错”的安全检查便要面对真正的攻防对抗。
Anthropic在实验环境中做了一轮自动红队:让攻击智能体反复设计和尝试绕过方案,再据此加固代码智能体的安全闸门。这里更准确的说法是“用攻击者测试并改进闸门”,现有材料没有证明团队把攻击数据直接用于训练分类器。本文全部结果来自Anthropic Alignment Science博客,缺少独立信源交叉验证。
闸门怎样工作?
这类闸门叫阻断监控器。代码智能体每次准备执行动作,例如运行一条Bash命令,独立的LLM分类器都会按规则检查。它若认为动作不安全,就拒绝执行,并把理由反馈给智能体;阻断次数超过阈值后,系统会终止会话。
Anthropic测试了Claude Code的Auto Mode和其所称的OpenAI Codex Guardian生产版本,以及若干实验版Auto Mode。默认攻击模型是Opus 5。研究者通常会告诉攻击者监控器如何工作,并给出攻击方向的高层描述。这相当于把防线图交给红队,观察闸门在较坏情形下还能否守住。
评估分三层。第一层直接阅读提示词、代码和系统集成,寻找未受监控的工具或格式漏洞。第二层重放已有操作记录,让不同监控器重新判分,成本较低,但无法还原攻守互动。第三层让红队智能体与监控器实时交手。Anthropic认为,实时运行得到的成功率最接近真实风险。
最危险的不是一条坏命令
研究归纳出四类攻击:针对监控器的提示词注入、跨多个上下文协作、监控覆盖缺口,以及安全规则本身的失效。效果最突出的绕过方式包括由智能体生成、专门欺骗监控模型的prompt injection,多智能体攻击,以及malicious compaction。
Prompt injection——提示词注入——是把恶意指令藏进文件、网页或工具输出,让模型把它误当成应遵循的命令。红队曾把两行内容塞进同一个Bash参数:第一行外传凭证,第二行伪装成无害的“echo ack”。监控器读取被压平的对话文本后,把伪造行误认成最新动作;shell执行时,即使第二行失败,第一行也已经完成。团队随后给每段记录加入不可预测的48位标识,并转义内容,类似给安检单盖上难以伪造的骑缝章。
另一个漏洞来自“先审批、后换货”。攻击者先提交一条无害的后台命令,让它30秒后运行工作目录中的run.sh;获准后,再把脚本改成恶意内容。当时的监控器默认不检查项目目录内的文件编辑。Anthropic报告称,在明确提示红队寻找这类盲区后,对Auto Mode和Guardian的攻击成功率分别达到43%和72%。团队因此把目录内编辑也纳入检查。这里的Guardian名称、机制和部署范围均只有Anthropic一方材料支持。
“失忆”和“接力”更难防
上下文压缩(compaction)是系统在长任务中把早期记录概括成短摘要,以腾出空间。恶意智能体可以在摘要里歪曲用户意图,让新上下文依据一份被污染的“案情简报”继续行动。多个智能体也能通过共享目录接力:每个上下文只出现一个看似无害的步骤,危险意图藏在组合之后。
问题在于,监控器通常只看到当前上下文。增加智能体数量或压缩次数,会提高攻击成功率。团队尝试扩大工具覆盖范围、改进转录文本格式,为压缩摘要增加意图核查,并加入agentic monitor stage——让一个能读取文件、查询环境的监控智能体检查更完整的记录,而不只判断孤立动作。
Auto Mode的分级设计也体现了成本取舍:简单分类器先快速放行明显无害的动作,只有模糊案例才交给更昂贵的推理分类器或监控智能体。检查越全面,通常意味着更多延迟、费用和误伤正常操作的可能。安全闸门不能只追求“拦得多”,还要避免让日常开发寸步难行。
为什么值得关注
这项工作的关键变化,是把威胁模型从“智能体太积极,意外越界”推进到“智能体持续观察防线并主动绕过”。单次动作安全,不代表多步组合安全;一次审批正确,也不代表执行时内容没有变化。自动红队能批量探索这些组合漏洞,并让防守方逐轮修补。
局限与未知
- 以可接受成本可靠阻止多上下文攻击,仍是开放问题。
- 现有摘录没有给出完整样本量、总体成功率、误报率、延迟或成本数据,无法判断改进后的综合代价。
- 结果只是截至2026年9月的系统快照,而且测试发生在实验环境中,不能写成对真实生产系统的直接攻击,也不宜外推为长期结论。