|
| 1 | +--- |
| 2 | +title: "工信部预警 Claude Code 后门 - 5 分钟切到 CCB 兼容" |
| 3 | +description: "工信部 NVDB 预警官方 Claude Code 2.1.91–2.1.196 版本存在后门。CCB 项目已将 Analytics、GrowthBook、Sentry 替换为空实现、不启用遥测、源码可审计。本文给你一份 5 分钟迁移指南:卸载官方、装 CCB、配 claude 别名,从根上断了回传隐患。" |
| 4 | +keywords: ["工信部", "NVDB", "安全后门", "遥测", "逆向工程", "迁移指南"] |
| 5 | +--- |
| 6 | + |
| 7 | +# Claude Code 有安全问题 - 5 分钟切到 CCB 兼容 |
| 8 | + |
| 9 | +## 预警!Claude Code 官方版本有安全问题 |
| 10 | + |
| 11 | +> CCB 项目:[github.com/claude-code-best/claude-code](https://github.com/claude-code-best/claude-code) · 在线文档:[ccb.agent-aura.top](https://ccb.agent-aura.top/) |
| 12 | +
|
| 13 | +2026 年 7 月,工信部 NVDB 预警:官方 Claude Code `2.1.91`(2026-04-02)至 `2.1.196`(2026-06-29)版本内置隐蔽监控,读取系统时区、代理地址判断是否与中国相关,在请求中隐写标记回传地域、身份标识等敏感信息。Claude Code 本身有文件读写、命令执行等高危权限,企业核心代码、密钥、内网架构都可能被一并带走。阿里 7 月 3 日已将其列入高风险名单,7 月 10 日起全面禁用;腾讯、美团、京东等也在收敛外部 AI 模型调用。 |
| 14 | + |
| 15 | +说实话,这个预警我没觉得意外。今年 1 月面试时我就当面跟面试官提过:Claude Code 是闭源黑盒,没法 grep 网络行为、没法验证数据流向,企业要用必须满足"开源 + 审计"两个前提。半年后工信部预警,算是验证了判断。 |
| 16 | + |
| 17 | +官方已放出清除后门的 `2.1.204`,但仍是闭源黑盒——下次再冒出来你没法验证。CCB 项目就是我对这个风险的直接回应:逆向工程、源码可审计、遥测组件空实现、当前版本 `2.8.2`,从根上断了这条隐患。官方 12 个遥测通道的源码级审计见 [遥测与远程配置下发系统审计](https://ccb.agent-aura.top/docs/telemetry-remote-config-audit)。 |
| 18 | + |
| 19 | +> 与其升级到官方 2.1.204,不如直接切到 CCB。下面是 5 分钟迁移指南。 |
| 20 | +
|
| 21 | +## CCB 项目不启用遥测 |
| 22 | + |
| 23 | +CCB 项目是对官方 Claude Code CLI 的**逆向工程 / 反编译复原版本**。在处理这些隐患的时候,我的思路是"**遥测组件空实现 + 源码透明 + 基础设施可自托管**",不是简单地把代码删掉了事。 |
| 24 | + |
| 25 | +### 1. 遥测组件已替换为空实现 |
| 26 | + |
| 27 | +我把官方版本的三大遥测组件都替换成了**空实现**(empty implementations,见 `CLAUDE.md` 的 Stubbed/Deleted Modules 表): |
| 28 | + |
| 29 | +| 组件 | 官方行为 | CCB 项目 | |
| 30 | +| ---------------------------------- | ----------------------------------- | ------------------ | |
| 31 | +| Analytics(Datadog + 1P BigQuery) | 生产环境批量上报 `tengu_*` 系列事件 | **空实现,不上报** | |
| 32 | +| GrowthBook 远程配置 | 启动即拉取,每 6h 刷新 | **空实现,不拉取** | |
| 33 | +| Sentry 错误追踪 | 上报异常堆栈 | **空实现,不上报** | |
| 34 | + |
| 35 | +也就是说,CCB 项目启动时**不会向 `api.anthropic.com`、`us5.datadoghq.com`、`api.datadoghq.com` 这些遥测端点发送任何数据**。代码路径留着是为了功能完整性,但实际的网络请求已经被我移除了。 |
| 36 | + |
| 37 | +其余通道(OpenTelemetry、Beta Session Tracing、Remote Managed Settings 等)代码也保留着,但都需要你显式配置环境变量才会启用: |
| 38 | + |
| 39 | +| 机制 | 官方默认 | CCB 项目 | |
| 40 | +| ----------------------- | ----------------------------------- | ----------------------------------------------- | |
| 41 | +| OpenTelemetry | 需 `CLAUDE_CODE_ENABLE_TELEMETRY=1` | 同上,默认不启用 | |
| 42 | +| Beta Session Tracing | GrowthBook gate 控制 | `feature('ENHANCED_TELEMETRY_BETA')` 默认 false | |
| 43 | +| Remote Managed Settings | API key 用户全部拉取 | 代码保留,未配置企业端点时不拉取 | |
| 44 | +| Settings Sync | feature gate 控制 | 默认关闭 | |
| 45 | + |
| 46 | +### 2. 源码可审计 |
| 47 | + |
| 48 | +官方 Claude Code 是混淆后的单文件产物,你没法直接看。CCB 项目保留了完整的 TypeScript 源码,任何网络请求你都能用 `grep` 找出来: |
| 49 | + |
| 50 | +```bash |
| 51 | +# 查找所有对 Anthropic API 的请求 |
| 52 | +grep -rn "api.anthropic.com" src/ packages/ |
| 53 | + |
| 54 | +# 查找所有遥测事件 |
| 55 | +grep -rn "logEvent\|trackDatadogEvent\|logEventTo1P" src/ |
| 56 | + |
| 57 | +# 查找所有远程配置拉取 |
| 58 | +grep -rn "growthbook\|remoteManagedSettings\|settingsSync" src/ |
| 59 | +``` |
| 60 | + |
| 61 | +完整的 12 个通道清单、文件路径、端点 URL、触发条件、数据字段,我都记在 [遥测与远程配置下发系统审计](https://ccb.agent-aura.top/docs/telemetry-remote-config-audit) 里了,基于源码逐行分析,你可以自己复核。 |
| 62 | + |
| 63 | +### 3. 基础设施可自托管 |
| 64 | + |
| 65 | +官方版本的数据流向 Anthropic 自有基础设施。CCB 项目支持你把关键基础设施全部自托管: |
| 66 | + |
| 67 | +| 组件 | 自托管方案 | 文档 | |
| 68 | +| ------------------ | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | |
| 69 | +| Feature Flag 平台 | 自建 GrowthBook 实例(开源) | [GrowthBook 适配器](https://ccb.agent-aura.top/docs/internals/growthbook-adapter) | |
| 70 | +| 错误追踪 | 自建 Sentry 实例 | [Sentry 配置](https://ccb.agent-aura.top/docs/internals/sentry-setup) | |
| 71 | +| 远程控制面板 | 自托管 RCS(Docker) | [Remote Control Server](https://ccb.agent-aura.top/docs/features/remote-control-self-hosting) | |
| 72 | +| HTML Artifact 托管 | 自部署 Cloudflare Worker + R2 | [Cloud Artifacts](https://github.com/claude-code-best/claude-code/blob/main/docs/blog/2026-06-20-cloud-artifacts-8h-recap.md) | |
| 73 | +| API 端点 | 任意 Anthropic API 兼容服务 | `/login` 命令配置 | |
| 74 | + |
| 75 | +自托管意味着数据不经过 Anthropic 的服务器,从网络层面就把回传路径切断了。 |
| 76 | + |
| 77 | +### 4. 双重保险:隐私环境变量 |
| 78 | + |
| 79 | +即使遥测组件已经是空实现,我还是保留了官方的隐私控制环境变量,作为双重保险: |
| 80 | + |
| 81 | +```bash |
| 82 | +# 禁用所有非必要网络(含自动更新、release notes、grove 等) |
| 83 | +CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 ccb |
| 84 | + |
| 85 | +# 使用第三方提供商,自动绕过 Anthropic 直连 |
| 86 | +CLAUDE_CODE_USE_OPENAI=1 ccb # OpenAI 兼容协议 |
| 87 | +CLAUDE_CODE_USE_GEMINI=1 ccb # Gemini |
| 88 | +CLAUDE_CODE_USE_GROK=1 ccb # Grok |
| 89 | +CLAUDE_CODE_USE_BEDROCK=1 ccb # AWS Bedrock |
| 90 | +``` |
| 91 | + |
| 92 | +`src/utils/privacyLevel.ts` 是集中控制点,定义三个级别:`default < no-telemetry < essential-traffic`。 |
| 93 | + |
| 94 | +## 换 CCB 不丢功能,新特性一个不拉下 |
| 95 | + |
| 96 | +你可能担心:换过来之后,官方那些好用的功能还在不在? |
| 97 | + |
| 98 | +放心,一个不拉下。CCB 是对官方 Claude Code 的完整逆向工程复原,官方有的功能都有,还在此基础上扩展了一堆官方没有的特性。 |
| 99 | + |
| 100 | +**官方特性完整保留**:权限系统、沙箱、Plan Mode、Auto Mode、MCP 协议、Skills、Hooks、Computer Use、Chrome Use、Voice Mode、60+ 内置工具,全部在。 |
| 101 | + |
| 102 | +**CCB 扩展的新特性**: |
| 103 | + |
| 104 | +| 特性 | 说明 | |
| 105 | +| ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 106 | +| 🎯 **Goal 持续驱动** | `/goal <objective>` 设定目标后自动跨轮驱动 agent 直至完成,带 token budget、completion/blocked audit、`pause`/`resume`/`continue`/`clear` 子命令 | |
| 107 | +| 📦 **Artifacts(HTML 上传)** | 复刻官方 Artifacts:模型把 HTML / 数据看板 / 报告上传到公开 URL(7d/30d 自动过期),`/artifacts` 命令集中管理 | |
| 108 | +| 🧠 **Dynamic Workflow 多 Agent 编排** | `/ultracode` 注入编排手册 + `Workflow` 工具跑确定性 JS 脚本(`agent` / `pipeline` / `parallel` / `phase`),支持 journal 重放、token budget、并发 cap | |
| 109 | +| 🤖 Claude 群控 | Pipe IPC 多实例协作:同机 main/sub 自动编排 + LAN 跨机器零配置发现与通讯 | |
| 110 | +| 📡 ACP 协议 | 接入 Zed、Cursor 等 IDE,会话恢复、Skills、权限桥接 | |
| 111 | +| 🏠 Remote Control | Docker 自托管远程界面,手机上看 CC | |
| 112 | +| 📊 Langfuse 监控 | 企业级 Agent 监控,每次 loop 细节可见,一键转数据集 | |
| 113 | +| 🔔 Channels | MCP 服务器推送外部消息到会话(飞书 / Slack / Discord / 微信等) | |
| 114 | +| 🔍 Web Search | 内置网页搜索,支持 Bing 和 Brave | |
| 115 | +| 💰 Poor Mode | 穷鬼模式,关闭记忆提取和键入建议,大幅减少并发请求 | |
| 116 | +| 🧘 /dream | 自动整理和优化记忆文件 | |
| 117 | +| 🔧 自定义模型供应商 | OpenAI / Anthropic / Gemini / Grok 兼容,`/login` 一键配置 | |
| 118 | + |
| 119 | +完整特性清单见 [全特性指南](https://ccb.agent-aura.top/docs/features/all-features-guide)。 |
| 120 | + |
| 121 | +> 也就是说:换 CCB 不是"牺牲功能换安全",而是"安全 + 功能一个不落"。 |
| 122 | +
|
| 123 | +## 迁移到 CCB 项目 |
| 124 | + |
| 125 | +如果你当前用的就是官方受影响版本(2.1.91–2.1.196),按下面的步骤迁过来就行,整个过程大概 5 分钟。 |
| 126 | + |
| 127 | +### 步骤 1:确认当前版本 |
| 128 | + |
| 129 | +```bash |
| 130 | +claude --version |
| 131 | +# 若输出在 2.1.91 ~ 2.1.196 之间,属于受影响版本 |
| 132 | +``` |
| 133 | + |
| 134 | +CCB 项目当前版本是 `2.8.2`(见 `package.json`,通过 `scripts/defines.ts` 注入为 `MACRO.VERSION`),不在受影响区间内。 |
| 135 | + |
| 136 | +### 步骤 2:卸载官方 Claude Code |
| 137 | + |
| 138 | +官方 Claude Code 可能是通过多种方式装的,按你的实际情况挑一个: |
| 139 | + |
| 140 | +```bash |
| 141 | +# 2a. npm 全局安装的 |
| 142 | +npm rm -g @anthropic-ai/claude-code |
| 143 | + |
| 144 | +# 2b. Homebrew 安装的(macOS) |
| 145 | +brew uninstall claude-code 2>/dev/null || true |
| 146 | + |
| 147 | +# 2c. 手动二进制 / 未知来源 |
| 148 | +which claude # 先查找位置 |
| 149 | +rm -f "$(which claude)" # 再删除 |
| 150 | + |
| 151 | +# 2d. 检查 shell alias / 函数(可能指向官方二进制) |
| 152 | +grep -n "claude" ~/.zshrc ~/.bashrc ~/.bash_profile 2>/dev/null |
| 153 | +# 如果找到 alias claude='...' 或 claude() {...} 指向官方,先注释掉 |
| 154 | +``` |
| 155 | + |
| 156 | +顺手清理一下官方版本的本地缓存与配置(建议先备份再清理): |
| 157 | + |
| 158 | +```bash |
| 159 | +# 备份现有配置(如有自定义 settings) |
| 160 | +cp ~/.claude/settings.json ~/claude-settings.backup.json 2>/dev/null || true |
| 161 | + |
| 162 | +# 清理官方缓存 |
| 163 | +rm -f ~/.claude.json # GrowthBook 远程配置缓存 |
| 164 | +rm -rf ~/.claude/logs/ # 1P 事件重试队列 |
| 165 | +rm -rf ~/.claude/remoteManagedSettings/ # 企业远程配置缓存 |
| 166 | +``` |
| 167 | + |
| 168 | +> `~/.claude/settings.json` 建议留着,CCB 项目会复用它存 `/login` 配置。真遇到冲突了再删也不迟。 |
| 169 | +
|
| 170 | +### 步骤 3:安装 CCB 项目 |
| 171 | + |
| 172 | +我给你准备了两种装法,按场景挑一个。 |
| 173 | + |
| 174 | +#### 方式 A:npm 全局安装(推荐,快速) |
| 175 | + |
| 176 | +```bash |
| 177 | +npm i -g claude-code-best |
| 178 | + |
| 179 | +ccb --version # 验证安装,应输出 2.8.x |
| 180 | +ccb # Node.js 形态启动 |
| 181 | +ccb-bun # Bun 形态启动(更快) |
| 182 | +ccb update # 后续更新到最新版本 |
| 183 | +``` |
| 184 | + |
| 185 | +#### 方式 B:源码编译(企业内网 / 需要定制 / 想审阅代码) |
| 186 | + |
| 187 | +适合想完全掌控构建产物、或者网络受限访问不了 npm 的朋友。 |
| 188 | + |
| 189 | +```bash |
| 190 | +# 3a. 克隆源码 |
| 191 | +git clone https://github.com/claude-code-best/claude-code.git |
| 192 | +cd claude-code |
| 193 | + |
| 194 | +# 3b. 安装依赖(需要 Bun >= 1.3.11) |
| 195 | +curl -fsSL https://bun.sh/install | bash # 如果还没装 Bun |
| 196 | +bun install |
| 197 | + |
| 198 | +# 3c. 构建(code splitting,产物输出到 dist/) |
| 199 | +bun run build |
| 200 | +# 产物:dist/cli.js + 约 450 个 chunk 文件 |
| 201 | + |
| 202 | +# 3d. 验证构建产物 |
| 203 | +node dist/cli.js --version |
| 204 | +# 或 |
| 205 | +bun dist/cli.js --version |
| 206 | + |
| 207 | +# 3e. 链接到 PATH(任选一种) |
| 208 | + |
| 209 | +# 方式 1:symlink 到 /usr/local/bin(需要 sudo) |
| 210 | +sudo ln -s "$(pwd)/dist/cli.js" /usr/local/bin/ccb |
| 211 | +chmod +x /usr/local/bin/ccb |
| 212 | + |
| 213 | +# 方式 2:加入用户 PATH(无需 sudo) |
| 214 | +echo 'export PATH="'$(pwd)'/dist:$PATH"' >> ~/.zshrc |
| 215 | +source ~/.zshrc |
| 216 | + |
| 217 | +# 方式 3:bun 形态直接链接 |
| 218 | +sudo ln -s "$(pwd)/dist/cli.js" /usr/local/bin/ccb-bun |
| 219 | + |
| 220 | +# 3f. 验证 |
| 221 | +ccb --version |
| 222 | +``` |
| 223 | + |
| 224 | +后续更新源码编译版本: |
| 225 | + |
| 226 | +```bash |
| 227 | +cd /path/to/claude-code |
| 228 | +git pull |
| 229 | +bun install |
| 230 | +bun run build |
| 231 | +# symlink 自动指向最新构建产物 |
| 232 | +``` |
| 233 | + |
| 234 | +### 步骤 4:配置 `claude` 别名指向 `ccb` |
| 235 | + |
| 236 | +迁过来之后,你的肌肉记忆、shell 脚本、IDE 配置可能还在调 `claude` 命令。别急着全改——给 `claude` 加个别名指向 `ccb`,下游啥都不用动。 |
| 237 | + |
| 238 | +```bash |
| 239 | +# 方式 1:shell alias(推荐,最灵活) |
| 240 | +echo "alias claude='ccb'" >> ~/.zshrc |
| 241 | +source ~/.zshrc |
| 242 | + |
| 243 | +# 方式 2:symlink(兼容不识别 alias 的脚本 / GUI 程序) |
| 244 | +sudo ln -s "$(which ccb)" /usr/local/bin/claude |
| 245 | + |
| 246 | +# 方式 3:shell 函数(需要透传所有参数时) |
| 247 | +cat >> ~/.zshrc << 'EOF' |
| 248 | +claude() { ccb "$@"; } |
| 249 | +EOF |
| 250 | +source ~/.zshrc |
| 251 | +``` |
| 252 | + |
| 253 | +bash 用户把 `~/.zshrc` 换成 `~/.bashrc` 就行。 |
| 254 | + |
| 255 | +验证别名生效: |
| 256 | + |
| 257 | +```bash |
| 258 | +claude --version # 应输出 ccb 的版本号 2.8.x |
| 259 | +type claude # 确认指向 alias 或 ccb |
| 260 | +``` |
| 261 | + |
| 262 | +### 步骤 5:配置 API 端点 |
| 263 | + |
| 264 | +首次运行后在 REPL 里输入 `/login`,选一个对接方式: |
| 265 | + |
| 266 | +| 选项 | 适用场景 | |
| 267 | +| ------------------------ | ---------------------------------------------------------------------------------- | |
| 268 | +| **Anthropic Compatible** | 对接第三方 API 兼容服务(OpenRouter、AWS Bedrock 代理等),无需 Anthropic 官方账号 | |
| 269 | +| **OpenAI** | Ollama / DeepSeek / vLLM 等 OpenAI 协议端点 | |
| 270 | +| **Gemini** | Google Gemini | |
| 271 | +| **Grok** | xAI Grok | |
| 272 | + |
| 273 | +需要填的字段:Base URL、API Key、Haiku/Sonnet/Opus Model ID。详见 [快速开始](https://ccb.agent-aura.top/)。 |
| 274 | + |
| 275 | +### 步骤 6:验证迁移成功 |
| 276 | + |
| 277 | +迁完之后跑一遍验证,心里踏实: |
| 278 | + |
| 279 | +```bash |
| 280 | +# 1. 确认命令指向 CCB 项目 |
| 281 | +claude --version |
| 282 | +# 期望输出:2.8.x(CCB 项目版本),而非 2.1.91~2.1.196 |
| 283 | + |
| 284 | +# 2. 启动并确认无遥测请求 |
| 285 | +ccb |
| 286 | +# 在 REPL 中输入任意命令,用另一个终端监控网络: |
| 287 | +sudo lsof -i -n -P | grep -E "claude|ccb" |
| 288 | +# 不应出现对 us5.datadoghq.com 的连接 |
| 289 | +# 对 api.anthropic.com 的连接仅在你使用 Anthropic 兼容 API 时出现 |
| 290 | +``` |
| 291 | + |
| 292 | +## 这是开源项目,欢迎贡献 |
| 293 | + |
| 294 | +CCB 是开源项目,所有源码在 GitHub:[github.com/claude-code-best/claude-code](https://github.com/claude-code-best/claude-code)。欢迎提 issue、提 PR、分享迁移经验、补充文档。如果你在迁移过程中遇到问题,或者有安全审计的新发现,都欢迎来仓库交流—— Discord 群组 [discord.gg/uApuzJWGKX](https://discord.gg/uApuzJWGKX) 也能找到我。 |
| 295 | + |
| 296 | +> 用的人越多,审计的眼睛越多,这个项目就越安全。 |
0 commit comments