桃子桃子 AI 快讯
返回首页
工具

Cerberus:为 AI 编码代理加装的本地防火墙

Cerberus 是一个本地优先的安全网关,拦截 Claude Code 等代理的工具调用并按风险分级处置,全程在本机完…

2026.06.28 · 周日4 分钟阅读评分 57
评分细项加权总分 57
重要性
50
新颖性
65
影响面
50
可信度
60
实质性
75

Cerberus 是一款专为自主 AI 编码代理设计的本地优先安全网关,目前已发布并面向 Claude Code、Codex、Cursor、Cline 等主流代理。它运行在代理与本机之间,拦截每一次工具调用,通过四类信号进行风险打分,并按 allow、audit、HITL(人工审批)、block 四级处置——全程在本机完成,不经过任何外部 API。

问题背景

自主编码代理会以机器速度运行 shell 命令、编辑文件、发起网络请求,多数时候没有人在回路。一旦出现 rm -rf 误删、错误的 git push.env 泄露,或 README 被注入诱导代理外传密钥,往往来不及人工把关。Cerberus 把这道关卡放到「工具边界」——也就是代理真正执行动作的位置。

工作机制

网关对每次工具调用执行 PreToolUse 拦截,按「策略 + 行为 + 内容 + 注入」四个确定性信号加权汇总为风险评分,并设硬性下限以保证绝对禁止项无法被策略覆写。处置后的调用还会进入 PostToolUse 检查,进行密钥与注入检测,并更新会话污染状态。

它主要覆盖以下场景:

  • 密钥外传:检测被加载进上下文的密钥,对外发载荷做内容匹配,拦截真正携带密钥的那一次调用,并提供来源溯源(文件、行号、SHA256、置信度),但密钥本身永不入库。
  • 权限过度:未知工具默认 fail-closed;~/.ssh~/.aws、凭据、/etc/passwd 等敏感路径一律 hold;rm -rfRemove-Item -Recursechmod 777kill -9 等破坏性命令直接拦截或请求审批。
  • 危险外联:受信主机(GitHub、各大模型 API、registry)自动放行;粘贴站、webhook catcher、直连 IP 等目的地一律 hold。
  • 工具滥用与提示注入:检测调用循环与频率;可选用本地 DeBERTa 模型识别工具结果中的注入,并对下一步外联做门控。它看到的是工具调用本身,而非 LLM 提示,因此抓的是「注入被利用」那一刻,而非注入本身。

支持的代理

引擎、信号、风控与仪表盘与具体代理无关,只有一个轻量适配器负责解析各代理的 hook 事件并发出统一裁决。通过 cerberus init --agent <name> 即可接入:

  • Claude Code:默认走原生终端 ask 提示,已端到端验证。
  • Codex CLI:通过仪表盘 hold(无原生 ask),配置 requirements.toml 后不可绕过。
  • Cursor:走 IDE 原生 ask 提示,init 默认设置 failClosed: true
  • Cline:通过仪表盘 hold,仅支持 macOS / Linux。

Roo Code 已被官方归档,目前不支持。

使用方式

安装命令为 npm i -g @cerberussec/core,运行 cerberus init 即可将网关合并进代理配置(自动备份、幂等);随后启动 cerberus engine,浏览器访问 http://127.0.0.1:9000/ 即可看到仪表盘。

审批体验优先放在终端:被 hold 的调用会以 ask 形式回到 Claude Code 原生权限提示,并附带 Cerberus 的理由,开发者无需切换窗口。若偏好集中审批,可设置 AG_APPROVAL_SURFACE=dashboard,调用会在引擎侧同步 hold,并通过 cerberus approve <id>cerberus deny <id> 处理。仪表盘提供每会话时间线、风险因子拆解,以及一个回放播放器,可逐步重放一次会话的风险是如何累积的。

所有规则与权重以 YAML 形式存放而非代码,便于修改;服务绑定 127.0.0.1,无外部 API、无遥测,密钥值不落盘、不入日志。

信源