跳转到内容

安全性

2025 年 2 月,LayerX 安全研究团队披露了 Anthropic Claude Desktop Extensions (DXT) 框架中一个严重的零点击远程代码执行漏洞。扩展程序在未沙箱化的环境中以完整系统权限运行,充当语言模型与本地操作系统之间的执行桥梁。

许多企业安全团队现在要求 AI 编程工具只能在专用虚拟机、容器或一次性环境中运行——而不是直接在企业终端上运行。

此开发容器满足该要求。

+------------------------------------------------+
| 主机 (企业终端) |
| |
| - 未安装任何 AI 工具二进制文件 |
| - 无 AI 工具扩展或插件 |
| - 仅需要 Docker |
| |
| +------------------------------------------+ |
| | Docker 容器 (隔离环境) | |
| | | |
| | AI 工具在此运行: | |
| | - Claude Code CLI | |
| | - Codex | |
| | | |
| | 无法访问: | |
| | x 主机文件系统 | |
| | x 主机钥匙串 / 凭据存储 | |
| | x 主机剪贴板 | |
| | x 主机网络接口 | |
| | x 其他主机应用程序 | |
| +------------------------------------------+ |
+------------------------------------------------+

所有数据存储在 Docker 命名卷中——而非绑定挂载的主机目录。容器内的安全漏洞无法访问主机上的文件。有关卷的详细信息,请参阅配置 — 数据持久化

容器无法访问 macOS 钥匙串、Windows 凭据管理器、浏览器配置文件或主机 SSH 代理。SSH 密钥在启动时通过 base64 编码的环境变量注入,且仅存在于容器内部。

Docker 容器不与主机共享剪贴板状态。数据无法通过复制/粘贴泄露。

容器通过以下两种受支持的认证模式之一与外部通信:

  • LiteLLM 代理模式 — 通过 Docker 的 NAT 向您的 LiteLLM 代理发出出站 HTTPS 请求。
  • OAuth 模式 — 通过 Docker 的 NAT 直接向 Anthropic 发出出站 HTTPS 请求。

容器无法访问 VPN 隧道、企业网络接口或主机上的其他服务。

整个环境可以在几秒钟内销毁并重建。请将容器视为一次性环境。

Terminal window
docker compose down -v
docker compose pull && docker compose up -d

此环境将 AI 工具作为纯命令行界面运行。没有桌面应用程序、没有浏览器扩展、没有 DXT 框架。促使建立此隔离模型的漏洞不适用于容器内的 CLI 使用场景。

docker-compose.yml 应用了多项纵深防御措施:

  • 能力删除 — 所有 Linux 能力均被删除(cap_drop: ALL),然后仅重新添加最小集合:CHOWNDAC_OVERRIDEFOWNER(用于入口点中的卷权限修复)、SETUID/SETGID(用于 sudo)、NET_RAW(用于 ping/tcpdump)和 NET_ADMIN(用于 Wireshark 和 bettercap 等数据包捕获工具)。
  • 资源限制 — CPU(4 核)、内存(8 GB)和 PID 数量(4096)通过 mem_limitcpuspids_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 调用之间——即使是短暂的瞬间——也不会是全局可读的。

容器包含约 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 节检查所有安全工具)。

要求状态
AI 工具未安装在主机终端上
在隔离的虚拟机或容器中运行
无法访问主机文件共享
无剪贴板同步
无共享凭据存储
无 VPN 分割隧道连接至生产网络
环境可一次性销毁
无桌面扩展或插件
Linux 能力已删除(最小权限)
资源限制已实施(CPU/内存/PID)
默认启用 TLS 证书验证
内部服务仅绑定到 localhost
  1. 不要在主机上安装 AI 编程工具。 请改用此容器。
  2. 不要向 docker-compose.yml 添加绑定挂载。 命名卷配置是有意为之的。
  3. 定期轮换容器内使用的 SSH 密钥。
  4. 共享前请检查 .env 它包含 API 密钥,并可能包含 SSH 私钥。
  5. 定期更新以获取安全补丁:
Terminal window
docker compose pull && docker compose up -d