Claude Code 环境风险自检与一键防护工具 · macOS 14+ / Apple Silicon / SwiftUI
ClaudeShield 扫描本机 9 项环境信号(系统时区、语言偏好、中文字体、主机名等),给出 0–100 的环境风险评分,并可通过 ~/.claude/settings.json 的官方 env 机制对 Claude Code 进程做时区/语言层面的伪装。所有修改先快照、可一键还原,绝不破坏你已有的配置键。
背景:Claude Code 2.1.91–2.1.196 曾存在时区/中转 hostname 隐写检测,v2.1.197(2026-07-01)起官方已移除。本工具不 patch 任何二进制,只使用官方配置机制与版本检测。
仪表盘与 CLI 提供两个并列视角:
- 系统视角(
scan)——扫描本机系统环境(系统语言、locale、中文字体等),反映机器的原始痕迹。 - Claude Code 视角(
scan-claude)——读取~/.claude/settings.json的 env 注入(TZ/LANG/LC_ALL),模拟 Claude Code 进程实际看到的环境重算评分。
挡位 2/3 的伪装只作用于 Claude Code 进程:应用后系统视角分数不变、Claude Code 视角分数下降,属预期现象。仪表盘顶部两环并排展示,分数差即伪装的直观效果。
| 挡位 | 名称 | 动作 | 需要管理员 |
|---|---|---|---|
| 1 | 轻量防护 | 关闭非必要遥测与上报(CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 等 5 个官方开关)+ skipWebFetchPreflight |
否 |
| 2 | 标准防护 | 挡位 1 全部 + 进程级时区/语言伪装(TZ / LANG / LC_ALL)+ DNS 防泄露(CLAUDE_CODE_PROXY_RESOLVES_HOSTS);仅当检测到受影响版本(2.1.91–2.1.196)时追加第一方端点伪装 |
否 |
| 3 | 深度伪装 | 挡位 2 全部 + 修改系统时区、关闭自动时区(可选改主机名),通过 osascript 提权执行,脚本内容事前可见 | 是 |
| 0 | 已还原 | 按活跃快照一键还原全部修改 | 否 |
cd ClaudeShield
./build.sh产物:
ClaudeShield.app— SwiftUI 应用本体claudeshield-cli— 无 UI 的命令行测试入口
无第三方依赖,swiftc 直接编译。
open ClaudeShield.app应用未签名:首次打开如被 Gatekeeper 拦截,请在 Finder 中右键 → 打开,或在「系统设置 → 隐私与安全性」中允许。
./claudeshield-cli scan # 扫描 9 项环境信号,打印各信号得分与总分/风险档位(系统视角)
./claudeshield-cli scan-claude # Claude Code 视角:模拟进程实际看到的注入环境(settings.json env)
./claudeshield-cli detect # 检测本机 Claude Code 安装路径、版本、是否受影响版本、端点评估
./claudeshield-cli apply 1 # 应用挡位 1(2、3 同理;支持 --tz <时区ID> [--hostname <名称>])
./claudeshield-cli restore # 按活跃快照一键还原
./claudeshield-cli status # 当前挡位、系统时区、快照列表测试用环境变量(不触碰真实配置的集成测试方式):
CLAUDESHIELD_SETTINGS— 覆盖 settings.json 路径CLAUDESHIELD_HOME— 覆盖快照根目录
- 每次 apply 前自动采集完整快照(settings.json 原文 + L3 系统信息),存于
~/Library/Application Support/ClaudeShield/snapshots/。 - App「快照与还原」页或 CLI
restore一键回到原始状态:settings.json 与原件逐字节一致,L3 同时还原系统时区/自动时区/主机名。 - 用户已有的非管理键绝不删除或改动;用户在 apply 之后做的其他修改在还原时保留。
本工具能做的:环境信号自检评分、关闭遥测、进程级时区/语言伪装、系统时区修改与还原、受影响版本识别。
本工具不能改变以下任一风控因素,请勿抱有不实预期:
- 出口 IP 质量与地理位置(需要你自己解决网络层)
- 支付卡与账单地址
- 账号历史行为与账号信誉
- 服务端行为风控模型
时区/hostname 隐写检测已于 v2.1.197 由官方移除;保持 Claude Code 为最新版本本身就是防线之一。
- FuckClaude(LinXiaoTao/FuckClaude,MIT 协议)—— 九信号权重检测模型的直接蓝本
- Thereallo 安全研究博客 —— v2.1.196 隐写代码的一手逆向还原
- LegitMichel777(Reddit r/ClaudeAI)—— 隐写检测事件的首次公开披露
- CC Switch(farion1231/cc-switch)—— settings.json env 配置路线的产品范式
- CLAUDE-SHIELD(newtv-ai/CLAUDE-SHIELD)—— 「环境一致性自检」思路参考
- Claude-anti-ban(Fishason/Claude-anti-ban)—— 服务端风控归因科普
- privileged_helper_help(malpern/privileged_helper_help)—— macOS 提权 helper 工程参考