Part III · 13 · 安全

权限与安全:
4 月一半 commit 都围绕这件事

如果只能用一句话概括 4 月的安全主题,那就是:能力升级时,边界同步加固。 Opus 4.7 让 Claude 更聪明、更能干——但 Bash 权限、OAuth、sandbox、危险路径检测也同步变严。 下面分四层看。

1

命令层

Bash 权限规则收紧 / wrapper 检测 / read-only 免提示。

2

认证层

OAuth 全链修复 / 钥匙串竞态 / token 撤销自愈。

3

沙箱层

子进程 PID 隔离 / 网络域名拦截 / 危险路径检测。

4

策略层

条件 hook / Auto Mode 守门 / 不可逆操作必确认。

13.1 · 第 1 层 · 命令

Bash 权限:更细更聪明

find -exec / -delete 不再自动批准

过去一条 Bash(find:*) 规则放行所有 find——但 find 可以删文件、改权限、执行命令。 v2.1.113 起,find -exec / -delete 单独剥出,需要更明确的授权。

v2.1.113
wrapper 命令检测:env / sudo / watch

过去 sudo rm -rf 因为 sudo 不在 deny 规则里就放行了—— v2.1.113 起,Bash deny 规则匹配 wrapper:env / sudo / watch / xargs / time 等。 deny rm -rf 时,sudo rm -rfenv rm -rf 同样被拦截。

v2.1.113
Read-only 全局命令免提示

区分 read 和 write——ls *.tscd dir &&catpwdwhich 这类纯 read-only 操作不再每次弹权限对话。消除合理摩擦,但不放松对 write 的把关。

v2.1.111
Bash 权限旁路修复(一系列)

修复多个绕过场景:转义 flagrm -rf\ 这类 trick)、 网络重定向cmd > /dev/tcp/...)、 env 前缀FOO=bar cmd)。这些是 red team 找出来的 attack vectors。

v2.1.111-113
PowerShell 危险命令检测

Windows 用 PowerShell 时,同样的危险检测逻辑生效—— Remove-Item -Recurse C:\WindowsStop-ComputerSet-ExecutionPolicy 等都被识别为危险操作。

v2.1.111+
哲学:能力越大,确认越细

这条主线在 4 月所有安全更新里反复出现。它对应"Harmless 不是少做,而是边界清楚"—— Claude 仍然能执行 find -exec、能 sudo、能 PowerShell——但用户必须明确授权,而不是搭便车。

13.2 · 第 2-3 层 · 认证 + 沙箱

OAuth 全链修复 · Sandbox 加固

认证层 · OAuth 修复合集

A
token 没 expires_in 不再每小时弹窗

有些 OAuth provider 不返回 expires_in——过去 Claude 假设 1h 过期,每小时弹一次。 v2.1.118 修复——按 provider 实际行为推断。

v2.1.118
B
token 被撤销时自愈刷新

服务端撤销 token 时,过去客户端死循环重试—— v2.1.118 改为弹出重新授权 UI,不再静默失败。

v2.1.118
C
步进式授权能在已有 scope 时再询问

用户先授权 read 权限——后来需要 write,过去因为已有 token 不再询问。 修复后会显式 re-consent。

v2.1.118
D
macOS 钥匙串竞态修复

多个进程同时访问 Keychain 时,旧 token 覆盖新 token——v2.1.118 加锁。

v2.1.118
E
RFC 9728 Protected Resource Metadata

MCP HTTP OAuth 现在符合 RFC 9728——和外部系统对接的标准合规性提升。

v2.1.119
F
OAuth 401 重试循环

设置 DISABLE_EXPERIMENTAL_BETAS=1 时出现 401 重试循环——v2.1.123 修复。

v2.1.123

沙箱层 · 网络与文件系统

G
sandbox.network.deniedDomains

新增 setting——按域名屏蔽外网请求。 "不让 Claude 访问内网/敏感域名" 用一行配置实现。

v2.1.113
H
子进程 PID namespace 隔离

Claude 派发的子进程在独立 PID namespace 中—— 杀进程不会误伤宿主,也无法看到宿主进程列表。

v2.1.111+
I
macOS 系统目录视为危险删除目标

/private/{etc,var,tmp,home} 路径—— 即使用户授权了 rm -rf,也会再次确认这些路径。

v2.1.113
J
流式空闲处理

API 流式响应空闲超 5 分钟自动中止并重试—— 避免"挂起的连接"持续耗费配额。

v2.1.116+
典型部署示例

{ "sandbox": {
  "network": { "deniedDomains": [
    "*.internal", "metadata.google", "169.254.169.254"
  ] }
}}

13.3 · 第 4 层 · 策略

策略层:用户自主权
不可让渡的

最值得强调的一点:哪怕在 Auto Mode(用户主动开启的连续自主执行) 下, Anthropic 仍然要求 Claude 对不可逆操作显式 ask。 不是 AI 决定"用户开了 auto 就什么都行"。

Auto Mode 下仍需确认的动作(系统提示原文)

Auto Mode 内置守门规则(节选)
✗ 删除文件 / 分支 / 数据库表
✗ kill 进程
✗ rm -rf
✗ 覆盖未提交的修改
✗ 强推 (push --force)
✗ git reset --hard
✗ amend 已发布的 commit
✗ 移除/降级依赖
✗ 修改 CI/CD 流水线
✗ 推代码 / 创建/关闭/评论 PR / Issue
✗ 发消息(Slack / 邮件 / GitHub)
✗ 上传到第三方工具(diagram renderer / pastebin / gist)
✗ 修改共享基础设施或权限

条件 Hook · 把策略表达成代码

.claude/hooks.json
{
  "PreToolUse": [
    {
      "matcher": {"type": "Bash"},
      "if": "command =~ '^git push'",
      "command": "./scripts/check-branch-policy.sh"
    },
    {
      "matcher": {"type": "mcp_tool", "name": "slack.send_message"},
      "if": "channel =~ '^#prod-'",
      "command": "./scripts/require-double-confirm.sh"
    }
  ]
}

真实场景

合规:所有写 prod DB 触发 ServiceNow 工单 + 审批
财务:session 启动时检查月度 token 预算,超额阻断
安全:PostToolUse 自动 redact API key / 信用卡号 / 邮箱
追踪:Stop 事件写入团队 audit log + Datadog
开发:git push 之前必须先跑 lint + unit test
策略 vs 默认值的关系

"用户自主权" 不等于"什么都让 AI 决定"—— 它是"用户能定义规则"。Auto Mode 是用户决定的; condition hook 是用户定义的;deny 规则是用户配置的。 AI 只是执行者

13.4 · 设计哲学映射

"能力 ↔ 边界" 永远
同步上升

4 月安全更新的累积效果:Claude Code 比 3 月明显更聪明,但同时更难误用。 这是 Anthropic 一贯立场——能力提升不允许"先发布、再修补"。

更新对应原则体现
find -exec / -delete 单独授权 Harmless 能力越大,授权颗粒越细——不让"通配规则"成为 attack surface。
wrapper 命令检测 Harmless 不让 sudo / env 等成为绕过路径——deny 规则覆盖完整命令树。
Read-only 命令免提示 理解意图 + Helpful 区分"看"和"改"——只对真正可能破坏的动作设防。
OAuth 全链修复 Honest 承认 OAuth 复杂——把脆弱处一个个修扎实,而不是用变通绕开。
deniedDomains 用户自主 策略可表达——"不能访问内网" 用一行 setting 实现。
PID namespace 隔离 Harmless 子进程不能"看见"或"误伤"宿主——即使被 prompt injection 也限制最大伤害。
Auto Mode 仍需确认 用户自主 不可逆动作不让渡——哪怕用户开了 auto,也保留 stop point。
条件 Hook 用户自主 策略表达力到位——团队/合规要求都能精确编码进规则。

下一页:把权限设计从单机延伸到组织——RBAC + SCIM + 企业治理。

Claude · April 2026 · Security & Permissions
13 / 17