AI News HubLIVE
站内改写2 分钟阅读

Cerberus – AI代理工具调用的本地防火墙

Cerberus是一个本地优先的安全网关,拦截并风险评分AI编码代理(如Claude Code、Codex、Cursor和Cline)的工具调用,防止秘密泄露、危险命令和提示注入攻击。它完全在用户机器上运行,无需外部API。

来源Hacker News AI作者: cerberussec

Cerberus是一个本地优先的安全网关,专为自主AI编码代理设计,如Claude Code、Codex、Cursor和Cline。它位于代理和你的机器之间,在执行前拦截每一次工具调用,通过四个信号进行风险评分,然后决定允许、审计、请求人工批准或阻止——所有这些都在本地进行,无需外部API,数据不会离开你的设备。

解决的问题

自主编码代理以机器速度代表你执行shell命令、编辑文件和发起网络调用,通常无需人工监督。一个错误的步骤(如rm -rf、意外的git push、泄露的.env文件或欺骗代理窃取秘密的恶意README)可能导致严重后果,而过程中没有人为干预。Cerberus在工具边界上设置了检查点,即代理实际执行操作的环节。

工作原理

Cerberus的流程为:PreToolUse → 拦截 → 策略+行为+内容+注入 → 风险引擎 → 允许/审计/请求人工批准/阻止。PostToolUse则用于检查秘密和注入检测,更新会话污染状态。四个确定性信号聚合为一个加权风险分数,并设有绝对禁止无法覆盖的硬性下限。

防护范围

  • 秘密泄露:检测加载到上下文中的秘密,然后内容匹配出站负载;拦截实际携带密钥的调用(包括原始、base64、hex、URL编码),并记录来源(如.env:4 · sha256:… · 97%),但从不记录秘密本身。
  • 权限过度:每个调用都经过检查;未知工具默认拒绝;敏感路径(~/.ssh、~/.aws、凭据、/etc/passwd)被拦截;破坏性命令(rm -rf、Remove-Item -Recurse、chmod 777、kill -9)被阻止或暂缓。
  • 危险出站:基于目的地的策略:可信主机(注册表、GitHub、OpenAI/Anthropic)自动允许;粘贴站点、webhook捕获器、原始IP目的地被暂缓。
  • 工具滥用:检测失控循环和工具调用速率/重复。
  • 提示注入:检测工具结果中的注入,并拦截下一个出站调用(启发式分类器;可选本地DeBERTa模型)。它看到的是工具调用,而非LLM提示,因此捕获的是注入的利用(出站),而非注入本身。

主要特性

  • 终端优先审批:被暂缓的调用会显示在代理的原生权限提示中(Claude Code/Cursor),或通过cerberus approve/本地仪表盘处理。
  • 取证仪表盘:每个会话的时间线、风险因素细分以及回放功能,逐步展示会话风险如何累积。
  • 多代理支持:一个适配器层服务Claude Code、Codex、Cursor和Cline。
  • 策略即数据:规则和风险权重可通过YAML编辑,无需修改代码。
  • 本地优先:绑定到127.0.0.1,无外部API,无遥测;秘密值永远不会写入磁盘或日志。

快速开始

全局安装:npm i -g @cerberussec/core,然后运行cerberus init将Cerberus接入代理(支持Claude Code、Codex、Cursor、Cline)。启动网关和仪表盘:cerberus engine,然后打开http://127.0.0.1:9000/。使用代理如常——工具调用现在通过Cerberus路由。默认情况下,被暂缓的调用会通过Claude Code的原生权限提示获得批准,无需离开会话。

架构

PreToolUse钩子 → /intercept是唯一的硬性执行点(允许/拒绝/请求批准;或请求人工批准时保持套接字开放直到决定)。PostToolUse钩子 → /inspect是只读的:更新会话污染状态,以便下一个动作在完整上下文中被判断。引擎核心与代理无关,只有适配器层(--agent)因代理而异。

定位与局限

Cerberus是工具边界上的运行时网关,最强项是秘密泄露防护和权限检查点。由于它看到的是工具调用(而非LLM提示),因此捕获的是提示注入的利用,而非注入本身;它不覆盖数据管道/RAG投毒。秘密匹配具有高置信度但非绝对(新颖的秘密格式、跨调用编码)。坚持诚实默认,不做虚假保证。

本地优先与许可证

无外部API、无API密钥、无数据离开机器。可选的注入模型(@cerberussec/injection-model,基于ProtectAI DeBERTa,Apache-2.0)可升级内置启发式分类器。核心是开源清洁的(Apache/MIT兼容依赖);Meta Prompt-Guard因Llama许可证被有意排除。