问题出在「省事」按钮上
Claude Code 在执行沙箱外的命令前会弹窗请你批准。为了不被反复打扰,你可以接受一条可复用的允许规则,比如「以后以 curl 开头的命令都不用再问」。之后凡是匹配这条规则的命令,都会直接执行。
@kbhaskar_95 的帖子说:这个按钮本身就是攻击面。 他引用的论文(新加坡国立大学、南洋理工大学等作者,10 月 16 日发在 arXiv 的预印本,尚未经同行评审)做了这样的实验:
- 在仓库里埋一段看似合理的文字,让代理在做普通任务时,「顺理成章」地申请一条过宽的规则,比如
curl *; - 在包括 Claude Code 和 Codex CLI 在内的产品上,代理在 58% 的实验里提出了这类目标规则;而没有埋文字时,25 次里一次都没有;
- 规则一旦被批准,47/58 个案例(81%)里攻击后续都静默完成,没有再弹出任何确认。
他还在回复里指出一个细节:论文中 Claude Code 把一条未加引号的 curl reports -v 存成了 curl reports *,范围比你以为的大得多。
四个习惯
- 点允许前,读完整条规则。 看清它最后保存的是一条精确命令,还是带
*的通配符。不是你想要的范围就选「只允许这一次」。 - 陌生仓库不给长期规则。 刚 clone 下来的项目、别人发来的示例仓库,宁可多点几次,也不要在里面接受通配规则。
- 定期清理。 在 Claude Code 里用
/permissions查看已经保存的规则,把curl *、bash *、npm *这类宽泛规则删掉或改成精确命令。 - 危险操作用拒绝规则兜底。 对推送、删除、外发网络请求等操作,在配置里写
deny或ask规则,拒绝规则优先于允许规则,能挡住后来被诱导加进去的宽规则。
论文作者的结论也很直接:把代理申请的允许规则当成一次高风险授权,逐字审核。
如果你想把 Claude Code 放在一台常开、整机独享的新加坡 Mac mini 上长期运行,可以了解 Zumac.Ai,咨询 Telegram @singatao。
