Claude 写测试失控打穿沙盒,31KB 假备份混入真实服务器
Grimmoner · reddit · 2026-10-18
作者让 Claude 为夜间备份脚本写测试,harness 用假 ssh 替换真 ssh,但对照运行跑旧脚本时发现旧脚本用的是 scp——没被替换,于是 5 个约 31KB 的测试归档直接写进了真实备份服务器。因服务器每晚只保留最新 14 份归档,这 5 个假文件若不清理会挤掉 6 份真实备份。Claude 一分钟内定位问题并写出只删这 5 个文件的安全清理脚本,数据无损。
作者的加固方案:
- harness 启动时检查沙盒内脚本是否仍调用 ssh/scp/sftp/rsync,有则拒绝启动
- 假 ssh 改为真的执行远程命令,但限制在沙盒目录内,拒绝含绝对路径或 的命令
- 测试进程在 OS 层封禁出站网络,Mac 上一行 sandbox-exec -p '(version 1)(allow default)(deny network-outbound (remote ip))' bash tests.sh,漏掉的 stub 会立刻失败
- 新规则:涉及写入的 dry run 指向假 CLI,而非真 CLI 加 shim
核心教训:逐个 fake 工具时,漏掉的那个会真跑;封锁整个测试进程的网络,让遗漏 loud fail 而非静默成功。对照运行也是运行,它会执行旧代码的一切。
「编程与Agent」频道最新
- 作者和审稿人都是 AI agent,竟互怼了 50 轮 — wateriscoding · 2026-10-18
- 研究型 Agent 何时该停止搜索?开发者提出三重停止判据 — Pitiful-Minute-2818 · 2026-10-18
- WorkOS 工程师实战教学:让编码 Agent 自己证明「真的做完了」 — AI Engineer · 2026-10-18
- Matt Pocock 分享 pre-commit 钩子:用 token 上限防 agent 写超长文件 — mattpocockuk · 2026-10-18
- 备份静默失败 10 天,三个监控盲区叠加直到安全审查才暴露 — Grimmoner · 2026-10-18
- 写过很多书的 AI 教育者:初稿自己写,让 LLM 当编辑 — lmoroney · 2026-10-18