安全性
2025 年 2 月,LayerX 安全研究团队披露了 Anthropic Claude Desktop Extensions (DXT) 框架中一个严重的零点击远程代码执行漏洞。扩展程序在未沙箱化的环境中以完整系统权限运行,充当语言模型与本地操作系统之间的执行桥梁。
许多企业安全团队现在要求 AI 编程工具只能在专用虚拟机、容器或一次性环境中运行——而不是直接在企业终端上运行。
此开发容器满足该要求。
+------------------------------------------------+| 主机 (企业终端) || || - 未安装任何 AI 工具二进制文件 || - 无 AI 工具扩展或插件 || - 仅需要 Docker || || +------------------------------------------+ || | Docker 容器 (隔离环境) | || | | || | AI 工具在此运行: | || | - Claude Code CLI | || | - Codex | || | | || | 无法访问: | || | x 主机文件系统 | || | x 主机钥匙串 / 凭据存储 | || | x 主机剪贴板 | || | x 主机网络接口 | || | x 其他主机应用程序 | || +------------------------------------------+ |+------------------------------------------------+无主机卷挂载
Section titled “无主机卷挂载”所有数据存储在 Docker 命名卷中——而非绑定挂载的主机目录。容器内的安全漏洞无法访问主机上的文件。有关卷的详细信息,请参阅配置 — 数据持久化。
无共享凭据存储
Section titled “无共享凭据存储”容器无法访问 macOS 钥匙串、Windows 凭据管理器、浏览器配置文件或主机 SSH 代理。SSH 密钥在启动时通过 base64 编码的环境变量注入,且仅存在于容器内部。
无剪贴板同步
Section titled “无剪贴板同步”Docker 容器不与主机共享剪贴板状态。数据无法通过复制/粘贴泄露。
容器通过以下两种受支持的认证模式之一与外部通信:
- LiteLLM 代理模式 — 通过 Docker 的 NAT 向您的 LiteLLM 代理发出出站 HTTPS 请求。
- OAuth 模式 — 通过 Docker 的 NAT 直接向 Anthropic 发出出站 HTTPS 请求。
容器无法访问 VPN 隧道、企业网络接口或主机上的其他服务。
生来即为临时环境
Section titled “生来即为临时环境”整个环境可以在几秒钟内销毁并重建。请将容器视为一次性环境。
docker compose down -vdocker compose pull && docker compose up -dpodman-compose down -vpodman-compose pull && podman-compose up -d仅命令行工具
Section titled “仅命令行工具”此环境将 AI 工具作为纯命令行界面运行。没有桌面应用程序、没有浏览器扩展、没有 DXT 框架。促使建立此隔离模型的漏洞不适用于容器内的 CLI 使用场景。
docker-compose.yml 应用了多项纵深防御措施:
- 能力删除 — 所有 Linux 能力均被删除(
cap_drop: ALL),然后仅重新添加最小集合:CHOWN、DAC_OVERRIDE、FOWNER(用于入口点中的卷权限修复)、SETUID/SETGID(用于 sudo)、NET_RAW(用于 ping/tcpdump)和NET_ADMIN(用于 Wireshark 和 bettercap 等数据包捕获工具)。 - 资源限制 — CPU(4 核)、内存(8 GB)和 PID 数量(4096)通过
mem_limit、cpus和pids_limit进行限制,以防止资源耗尽攻击。 - tmpfs 用于
/tmp—/tmp目录挂载为 256 MB 的 tmpfs,将临时文件保留在内存中,防止其持久化到容器的可写层。 - 默认开启 TLS 验证 — 未设置
NODE_TLS_REJECT_UNAUTHORIZED,因此 Node.js 默认验证 TLS 证书。需要接受自签名证书(例如用于内部代理)的用户可以在.env文件中添加NODE_TLS_REJECT_UNAUTHORIZED=0来选择启用。 - SSH 密钥 umask — SSH 私钥在
umask 077下写入,因此文件在创建和chmod调用之间——即使是短暂的瞬间——也不会是全局可读的。
安全和渗透测试工具
Section titled “安全和渗透测试工具”容器包含约 80 个预装的安全和渗透测试工具,用于授权测试场景。工具按类别组织:
| 类别 | 工具(示例) |
|---|---|
| 网络分析 | tshark, wireshark, masscan, hping3, bettercap (amd64), netdiscover |
| Web 扫描器 | nikto, sqlmap, dirb, whatweb, sslscan, OWASP ZAP, dalfox, feroxbuster |
| 密码和认证 | hydra, john, hashcat, medusa, ncrack |
| 逆向工程 | radare2, Ghidra, gdb, binwalk, strace, ltrace |
| 侦察 | subfinder, amass, httpx, nuclei, gau, waybackurls, recon-ng, spiderfoot |
| 模糊测试和枚举 | ffuf, gobuster, SecLists |
| 供应链和密钥检测 | trufflehog, grype, syft, gitleaks, trivy |
| 漏洞利用框架 | Metasploit (amd64), searchsploit (ExploitDB) |
由于上游打包限制,部分工具(bettercap、Metasploit)仅在 amd64 架构上可用。数据包捕获工具(tshark、bettercap)需要 NET_ADMIN 能力,该能力已包含在默认的 docker-compose.yml 中。
如需完整列表,请在容器内运行 claude-self-test(第 7 节检查所有安全工具)。
合规性检查清单
Section titled “合规性检查清单”| 要求 | 状态 |
|---|---|
| AI 工具未安装在主机终端上 | 是 |
| 在隔离的虚拟机或容器中运行 | 是 |
| 无法访问主机文件共享 | 是 |
| 无剪贴板同步 | 是 |
| 无共享凭据存储 | 是 |
| 无 VPN 分割隧道连接至生产网络 | 是 |
| 环境可一次性销毁 | 是 |
| 无桌面扩展或插件 | 是 |
| Linux 能力已删除(最小权限) | 是 |
| 资源限制已实施(CPU/内存/PID) | 是 |
| 默认启用 TLS 证书验证 | 是 |
| 内部服务仅绑定到 localhost | 是 |
- 不要在主机上安装 AI 编程工具。 请改用此容器。
- 不要向
docker-compose.yml添加绑定挂载。 命名卷配置是有意为之的。 - 定期轮换容器内使用的 SSH 密钥。
- 共享前请检查
.env。 它包含 API 密钥,并可能包含 SSH 私钥。 - 定期更新以获取安全补丁:
docker compose pull && docker compose up -dpodman-compose pull && podman-compose up -d