跳转到主要内容
CC Safety Net 是一个尽力而为的静态执行前 hook,作用于受支持的编码智能体工具调用。它会在可识别的破坏性命令和机密读取运行之前将其拦下。它不是操作系统沙箱或权限边界,也不能保护绕过已安装集成的命令。

CC Safety Net 保护什么

CC Safety Net 把智能体生成的每条命令都视为不可信。提示注入、上下文混淆或对抗性指令都可能让智能体发出破坏性命令,所以 hook 会在宿主运行每个受支持的工具调用之前检查它,发现阻止理由就拒绝。 调用被检查到什么程度,取决于工具:
  • 集成自带的 shell 工具会按你的安全级别接受完整的命令分析。
  • 在 command_tools 中声明的工具,只要调用带有非空字符串 command,就会像内置 shell 工具一样接受分析。
  • 其他工具只接受策略文件、Git 元数据和敏感路径检查。CC Safety Net 绝不会把它们的文本当作 shell 命令。
  • 不经过已安装集成的命令永远不会被检查。
安全级别决定分析能拦下多少。各级别的对比见应该使用哪个安全级别?。
Standard 模式不具备对抗级能力。Standard 允许 rm -rf "$target" 这类动态 rm -rf 目标,strict 和 paranoid 会阻止。当命令可能来自提示注入或其他对抗性上下文时,请使用 strict 或 paranoid。
任何级别或策略设置都无法关闭灾难性规则(涵盖递归删除 / 或用户主目录),以及对 Git 元数据和 policy.json 的保护。机密保护开启时,任何级别都不会放宽对已识别机密文件内容的读取,也不会放宽 deny_paths 中列出的路径。

CC Safety Net 信任什么

hook 外部有三类输入可以改变它执行的内容。CC Safety Net 会先验证每一类输入,验证通过后才让它生效。 无效配置本身绝不会拒绝普通工作。CC Safety Net 会丢弃被拒绝的来源,并把运行时报告为 degraded。丢弃 rulebook 会移除它带来的拒绝,所以在你修复之前,原本被它阻止的命令可以再次运行。每种失败及其回退见配置恢复。

分析失败时会怎样

某次工具调用的分析无法完成时,CC Safety Net 会拒绝这次调用,而不是放行:
  • 分析器出现意外错误时,返回带“failed closed”原因的拒绝。
  • 格式错误的 hook 输入,以及过大或嵌套过深、无法分析的命令,在所有安全级别下(包括 standard)都会被拒绝。达到分析预算的命令会得到一条原因,提示智能体简化或拆分命令。
  • Strict 和 paranoid 还会拒绝解析器读不懂的命令。Standard 会放行看似安全但无法解析的文本,但仍会扫描其中的破坏性模式。
这依赖宿主遵从拒绝结果。Grok Build、Factory Droid 和 Devin CLI 在设计上是 fail open:hook 崩溃、超时或没有输出时,调用照常运行。各宿主的行为见已知限制。

脱敏隐藏什么、保留什么

CC Safety Net 把命令文本写入审计日志或放进拒绝消息之前,会把已识别的凭证替换为 <redacted>。范围包括私钥、URL 凭证、携带机密的环境变量赋值和 HTTP header、预签名 URL 签名、JWT、AWS access key ID 以及已知 token 前缀。完整列表见审计日志参考。 脱敏只匹配已知的凭证形式。绝对路径、项目和目录名、主机名、IP 地址、用户名,以及格式不在列表中的凭证都会原样保留。请避免让真实凭证经过智能体运行的命令。explain 和 doctor 的输出同样包含原始文本,分享前请先检查。见分享跟踪之前。

攻击者可能如何尝试绕过

网络攻击、针对智能体平台本身的攻击,以及在检查与运行之间替换符号链接,都超出了执行前 hook 能阻止的范围。见超出范围的防护。

相关页面

  • 安全策略:问题应公开报告还是私密报告。
  • 保护层:沙箱能覆盖而 CC Safety Net 覆盖不了的部分。
  • 已知限制:其余缺口和各宿主的限制。
最后修改于 2026年10月22日