我补的六条禁令,拦不住我自己开的那扇后门

cover

Hello,我是飞飞。

下周一,Claude Code 会开始自己放行。

Anthropic 上周宣布,8 月 14 号起,auto 模式对 Pro、Max、Team 三档用户默认开启。

以前它每动一次手都弹窗问你一句。往后不问了,改成一个分类器在后台看着。它就判断三件事:这动作可不可逆、破不破坏东西、有没有伸到你机器外面去。三样都不沾,它直接就干。

我看到这条的第一反应是警觉。七月我写过两篇,一篇讲一个看着干净的 GitHub 仓库怎么黑掉你的 Claude Code,一篇讲 OpenAI 的模型为了考试作弊自己越狱。落点都一样:放权这事得慎重。

然后我打开了自己的配置文件。

先撇清一下。七月底我还写过一篇,讲我打开配置,发现自己推荐过的几个 hook 一个都没配、禁令清单是空的。那篇是「发现门上没锁」。这篇不重讲那个,它讲的是下一步:我照着那篇的结论去补了锁,补完这半个月,我才看清那把锁装在哪条路上。

下周它开始自己放行

先把官方这次给的东西摆清楚,下面这些数我一个都没测过。

Anthropic 请了外部的 Trajectory Labs 做评测,测的是 7 月 17 号那版公开代码。72 个间接提示注入场景,每个跑十遍,一共 720 次攻击。Claude 在 auto 模式下拦了个干净,成功率 0%。同一套题,GPT-5.6 Sol 在 Codex 的自动审批模式下漏掉 5.83%,全放开模式漏掉 19.03%。

Claude Code 的负责人 Boris Cherny 在 X 上说了句话,我读了两遍。他说叠够层数之后,没见过的间接提示注入能压到接近 0。哪三层?模型训练、输入探针,再加一个专门查意图的分类器。

这里得掰一下口径。中文那边转成了「Anthropic 称已基本解决提示注入」,原话没这么宽。他说的是间接注入、没见过的攻击、靠叠三层才压到的 0。提示注入这个问题本身,没被解决。

真正让我坐直的是另一组数。

官方做了个对照实验,找了 1053 个付费测试者,往会话里埋危险命令,看谁能抓出来。auto 模式挡下 89%。人挡下 13.6%。

更难看的在后头。会话超过五十轮之后,人的捕获率掉到大概 5%。分类器那条线是平的。

我看到这个数心里咯噔一下。五十轮对我是什么概念?我这条内容流水线从选题跑到发公众号,一趟下来轮数是它的好几倍。也就是说,官方那条曲线开始往下掉的地方,才刚到我一趟活的前三分之一。

后面那大半程,我压根不看它执行了什么,就等它交活。

我早就比那个默认更松

然后是我打开配置那一刻。

我的 ~/.claude/settings.json 里,defaultMode 写的是 bypassPermissions。底下还跟着一行 skipDangerousModePermissionPrompt,值是 true。

说人话就是,Claude Code 有一排档位。从「每次都问你」,到「只自动改文件」,到「分类器看着自动干」,最外面那档是「什么都不问,直接干」。

我挂在最外面那档。而且连「你确定要用最外面那档吗」这句二次确认,我也顺手关了。

所以 8 月 14 号那个默认切换,对我是零影响。

荒诞的地方在这儿:auto 模式比我现在跑的更安全。 它至少有个分类器坐在那儿判断,我这边一个都没有。新闻标题写的是 Anthropic 放松了默认值,可这消息落到我头上,意思是我该往回收一档。

说真的,我不是特例,这点官方自己给了数。

截至今年 6 月,62% 的用户用过 bypassPermissions,或者在 Bash 上点过「不再询问」。差不多一半的人手工建过 Bash 放行规则。其中 5% 直接放开任意命令,另外 43% 写的是 Bash(python:*) 这类解释器规则。官方原话说,这跟放开任意命令实际上等价。

这个比例每五周还在涨五个点。

一家公司在公告里顺手报出「我们六成用户已经把安全带解了」,这本身比那些跑分数字更说明问题。

六条禁令拦的那条路

我那份配置里还有一段,是禁令清单,六条:不许开 worktree,不许跑 rm -rfrm -fr,不许 sudo rm,不许 git push --forcegit push -f

这六条是七月底那篇写完之后我去补的。补之前,这个清单一条都没有。

我一直把它当我最后那张网。禁令在 Claude Code 里优先级最高,压过所有放行规则,连 hook 都绕不过去。哪怕我把总档位拧到最外面,这六条还站着。这一层我核过官方文档,是真的。

问题出在另一头。

我这个项目的配置里,放行清单最后两条是 python3 *npx tsx *

看出来了吗。禁令拦的是命令长什么样。我禁掉了 rm -rf 这个写法,可 python3 -c 后面跟一行调 shutil 删目录的代码,跟 rm -rf 长得一点都不像。它不匹配那条禁令,那条禁令就不看它。

我给前门换了把好锁,六道锁芯,锁是真锁。可我每天进出走的是后门,后门是我自己开着的。因为我流水线上所有的活都靠 python 脚本跑:查 frontmatter 的、拆公众号段落的、数中文字数的、往微信推草稿的。今天上午我还跑过一个。

那扇后门不是我疏忽留的,我天天都得从那儿走。

得给个诚实边界。上面这条是我照着规则的字面匹配推出来的,我没真去构造一个绕过去的命令验证,也不打算构造。

这里我不打算报什么漏洞。真正扎我的在另一处:我以为自己拦住了的那件事,可能从头到尾就没发生在我拦的那条路上。

分类器比我自己靠谱

写到这我得认一件不太想认的事。

89% 对 13.6% 这组数,我一开始是抵触的。盯着看了半天,我服了。

因为我那两篇写风险的文章,落点全在「人得守住那个决策点」。可官方这组数说的正是:人守不住,而且会话越长守得越差。我自己就是活证据。七月底那篇里我写过一句,Claude Code 弹窗问我的时候,十次里有八次我扫一眼就回车了。

那八次,就是 13.6% 的另一种写法。

所以这回我不打算站回「厂商放权我就警惕」那个老位置。一个 89% 命中的分类器,比一个跑到五十轮就掉到 5% 的我,是更靠得住的守门人。这话说出来不太舒服,可数摆在那儿。

官方也没把话说满。博客里写着,auto 模式依赖分类系统,因此不消除风险。红队测下来还有 7% 漏网。高风险的生产改动,他们仍然建议人工过一遍。

这个态度我认。一个肯在自家公告里写「我们还漏 7%」的口径,比拍胸脯说全解决了可信。

我下周要往回收一档

所以我下周要做的事,跟我动笔前想的正好反过来。

我本来以为我会写一篇「厂商要放权了,我不跟」。核完之后我发现,该往回收的是我。

三件事,按顺序来。

把总档位从最外面那档拧回 auto。我是在自己主力机上跑,不是在隔离容器里,而官方对最外面那档的建议原话是只在容器或虚拟机里用。这句我这半年一直当没看见。

去看禁令清单和放行清单有没有在打架。我禁 rm -rf 却放行 python3 *,这两条摆一块儿是自相矛盾的。要么承认那六条主要防的是手滑而非恶意,要么把真正兜底的活交给沙箱。沙箱在操作系统那一层拦,管得住子进程,禁令规则管不住。

最后一件,等 14 号切过去,看那个分类器到底会在什么地方拦我。这个我现在只能读文档,读不出体感。等它真拦我一次,我回来摆账单。

给你一个五分钟就能做完的动作。打开你的 settings.json,找两样东西:defaultMode 现在是什么,permissions 底下的 deny 和 allow 各写了些什么。然后问自己一句:我禁掉的那些写法,和我放行的那些命令,管的是不是同一件事。

如果你也在放行清单里写了 python:* 或者 node:*,那你跟我一样,属于官方点名的那 43%。

你会让 auto 模式默认开着吗,还是跟我一样,先回去数一数自己那份配置到底有几道门?