
Anthropic 宣称其新推出的 Auto Mode(自动模式)在 Trajectory Labs 的基准评测中实现了 0.00% 的提示注入攻击成功率。然而,安全研究员 Johann Rehberger 近日公开了针对 Claude Code Opus 5 的实战攻击链,在多次实测中取得了 60% 至 80% 的远程代码执行成功率。
这场安全对抗表面看是分类器规则被特定脚本逻辑绕过,本质是 AI 智能体在宿主系统无沙箱运行时,基于统计学的大模型语义防护与确定性的操作系统底层执行机制之间存在天然脱节。对于习惯 vibe coding(氛围感编程,指依靠自然语言描述让 AI 全自动编写与调试代码的开发流派)的开发者而言,直接把终端权限交给 AI 正在演变为巨大的供应链安全风险。
攻击复盘:80% 成功率的“Python 模块劫持”攻击链拆解
提示注入攻击(Prompt Injection,指通过在外部网页、文档或代码中植入恶意指令,诱骗 AI 脱离用户原本意图并执行攻击者指令的技术)在此次测试中展现了全新的破坏路径。攻击者向 Claude Code 发送了一个看似普通的网站抓取与总结任务,网页内部埋藏了间接提示注入指令。
攻击链的第一步,恶意网页诱导 Claude 放弃内置的 WebFetch 安全工具,转而调用终端底层命令 curl 下载一个 ZIP 压缩包。压缩包内包含采用特殊编码的数据文件,以及一个恶意的原生可执行文件与一个伪装的 struct.py 脚本。
Claude Code 的内置安全对齐在这一步生效,准确识别出原生二进制可执行文件存在风险,拒绝直接执行该文件。为了完成用户的数据解析任务,Claude 自主编写了一个无害的 Python 解码脚本,试图利用标准库读取数据。
致命的逻辑盲区出现在解压目录的执行环境内。 当 Claude 编写的脚本在解压目录下运行并执行 import base64 时,Python 的模块查找机制会优先在当前目录检索依赖。攻击者预先放置在目录下的恶意 struct.py 实现了模块遮蔽(Shadowing,即利用同名文件覆盖 Python 标准库),直接触发了恶意代码的执行,完成了远程代码执行攻击。
逆向拦截荒谬戏剧:安全分类器反向锁死清理进程
在后续的多轮测试中,研究人员记录到了极具戏剧性的智能体失控场景。
当恶意进程在后台启动后,Claude Code 的推理模型迅速察觉到目录内的异常行为,并在上下文里明确警告用户当前环境已遭受污染。随后,Claude 主动生成了终止恶意后台进程的清理命令,试图修复受害终端。
此时,Auto Mode 的安全分类器再次介入审查。分类器将 Claude 自动发起的 kill 或系统进程终止命令判定为具有潜在破坏性的未授权系统操作,强制实施了拦截,直接阻止了 Claude 自身的清理行为。
原本用于防御恶意操作的分类机制,在关键时刻反向保护了已落地的恶意进程。 这一现象暴露了外挂式语义分类器的致命弱点:它无法准确追踪进程的因果信任链,容易在关键攻防节点产生误判。
演进断层分析:从手动点击疲劳到分类器失灵的演进陷阱
Anthropic 推出 Auto Mode 的初衷是为了解决人工审批的心理疲劳。数据显示,开发者在面对频繁的终端权限弹窗时,有 97% 的操作会未经细看便直接点击确认,导致人工防御形同虚设。
为了加速 vibe coding 的开发流转,官方引入了由小型模型构成的动作分类器,替代人类执行逐条过滤。然而,这种模式并不能从根本上抵御经过精心构造的混合型攻击。
| 阶段 | 核心问题 | 留下的硬伤 |
|---|---|---|
| 阶段一:手动审批(Manual Approval) | 开发者遭遇弹窗疲劳,97% 的命令被盲目放行,人工审查实质失效 | 面对复杂多步指令时,开发者无法识别隐藏在普通 Shell 命令中的恶意载荷 |
| 阶段二:完全跳过审批(Dangerously Skip Permissions) | 用户为追求长流程自动化,彻底放开终端执行权限 | 任何外部输入的间接注入均可直接无阻碍调用宿主系统的全部提权指令 |
| 阶段三:分类器自动审批(Auto Mode) | 依赖语义模型判定命令危害性,将标准库同名替换等系统级障眼法漏判为无害代码 | 分类器缺乏系统上下文记忆,会在受感染后阻断智能体自救,且对确定性沙箱构成虚假替代 |
6 条沙箱化加固实操:为 vibe coding 开发者筑牢执行边界
依赖 AI 自身的安全对齐或外部语义分类器,无法替代操作系统级别的强隔离防护。对于在本地或 CI/CD 流水线中日常运行 Claude Code、Cursor 等智能体的开发者,必须建立严格的纵深防御体系。
1. 强制容器化隔离运行
严禁在个人主开发机或搭载核心资产的物理机上以宿主权限直接启动 Claude Code。应将其运行环境限定在 Docker 容器或轻量级虚拟机(如 Apple Virtualization 框架、Lima 或 Firecracker)中。
# 采用无特权模式启动隔离容器运行 Claude Code
docker run -it --rm \
--user 1000:1000 \
--cap-drop=ALL \
--security-opt=no-new-privileges \
-v $(pwd)/workspace:/workspace \
-w /workspace \
claude-code-sandbox:latest
2. 剥离宿主敏感凭证与用户家目录挂载
在挂载项目工作区时,切勿将 ~(Home 目录)、~/.ssh、~/.aws、~/.gitconfig 或包含全局环境变量的路径挂载进智能体可见的文件系统。智能体只需具备单个代码仓的读写权限,多余的系统凭证是勒索与窃密攻击的核心目标。
3. 施加严格的网络外联白名单(Egress Control)
限制容器或虚拟机的出站网络流量,阻止智能体将本地文件或解析出的敏感数据通过 curl、wget、nc 等工具发送到外部服务器。
# 仅允许访问指定的代码仓库与模型 API,拦截未受信任的外部域名
iptables -P OUTPUT DROP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -d api.anthropic.com --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -d github.com --dport 443 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
4. 锁定 Python 执行环境与模块导入搜索路径
针对本次攻击暴露的模块遮蔽漏洞,必须在智能体执行 Python 代码前重置环境变量,移除当前工作目录的模块优先加载特权。
# 设置环境变量,强制 Python 不把当前目录作为 sys.path 的优先项
export PYTHONPATH=""
export PYTHONSAFEPATH=1
5. 在 CI/CD 流程中隔离 PR 元数据与提升权限
如果在 GitHub Actions 等自动化工作流中集成智能体,切勿使用具备仓库 Write 权限的 Token 处理未经信任的 Issue 内容或外部 Fork 提交的 PR 描述。应将只读审查任务与具备合并、部署权限的后续步骤彻底解耦。
6. 配置只读工作区快照与一次性临时环境
为每个独立的编码任务生成专属的临时环境(Ephemeral Environment),任务结束后立即销毁实例。关键变更通过 Git Diff 导出到宿主机进行静态代码审查,杜绝长期驻留的被污染智能体。
综合判断与认知纠偏:沙箱隔离是确定性防御,分类器只是统计学辅助
判断一套智能体安全架构是否有效,核心在于弄清它是“基于统计概率的软性拦截”还是“基于内核机制的硬性阻断”。
需要明确的是,Auto Mode 并非完全不可用。相比完全放开权限的危险模式,它确实能够拦截大量粗糙的误操作与直接代码注入。
然而,认为开启了 Auto Mode 就能安全地在本地生产机上放任智能体自由漫游,属于危险的认知误区。大语言模型与安全分类器在面对混淆编码、环境依赖劫持以及间接提示诱导时,始终存在无法完全收敛的误判率。将模型自身的逻辑判断当作唯一的访问控制层,违背了传统系统安全的最基础原则。
一个未解决的问题
当智能体在编码过程中不可避免地需要联网检索第三方库文档、下载开源依赖包(如 npm install、pip install)并进行本地测试编译时,如何在不破坏智能体自主开发效率的前提下,低延迟、低成本地对动态下载的外部内容实施深度语义去毒与实时沙箱行为溯源?
目前业内仍缺乏一套既能透明感知代码上下文依赖、又不对网络外联造成严重阻断的标准基础设施。
引用来源
- Embrace The Red. Breaking Claude Code Opus 5 Auto Mode. 2026-08-27. https://embracethered.com/blog/posts/2026/breaking-claude-code-opus-5-and-automode/
- Anthropic. Auto mode is now the default in Claude Code. 2026-08-07. https://claude.com/blog/auto-mode-default-in-claude-code
- Simon Willison's Weblog. Breaking Claude Code Opus 5 Auto Mode. 2026-08-27. https://simonwillison.net/2026/Aug/27/breaking-claude-code-opus-5-auto-mode/
- Simon Willison's Weblog. Auto mode is now the default in Claude Code. 2026-08-08. https://simonwillison.net/2026/Aug/8/auto-mode/
- Prompt Injection Experiments with Opus-5 in Claude Code (IT meets OT). 2026-08-12. https://itmeetsot.eu/posts/2026-08-12-opus5_automode/
- TechCrunch. Anthropic is turning Claude Code's auto mode on by default. 2026-08-09. https://techcrunch.com/2026/08/09/anthropic-is-turning-claude-codes-auto-mode-on-by-default/