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

Belay:面向 AI 编程代理的开源本地安全防护层

Belay 是一款开源、本地优先的工具调用网关,可在 100ms 内拦截破坏性命令、密钥外泄与 MCP 注入风险,并支持…

2026.07.27 · 周一4 分钟阅读

Belay 是一款面向 AI 编程代理(coding agent)的开源、本地优先安全防护工具。它定位于「代理与系统之间的关卡」,在每一次工具调用发起前做确定性判定,决定放行、拦截还是升级给人类审批,全程决策不依赖云端大模型,延迟控制在 100ms 以内,默认不上报任何数据。

防护范围与拦截目标

Belay 围绕 OWASP 智能体应用 Top 10、OWASP LLM Top 10 与 MITRE ATLAS 三套框架建立规则目录,主要拦截以下几类风险:

  • 密钥外泄:.env 文件、API Key、SSH Key,以及同机其他 AI 工具的凭证。
  • 破坏性命令:rm -rf /curl … | sh、fetch→chmod→exec 投放器,并覆盖包装前缀、复合链、here-doc、长/拆分参数等常见绕过形态。
  • 反向 Shell 与 C&C 外联。
  • MCP 工具响应注入:识别响应中嵌入的「忽略此前指令」类内容,并关联到持有密钥的会话做告警。
  • 供应链、持久化、提权与侦察模式。
  • 恶意 Agent 技能:安装时拦截,并对目录做持续 drift 检测,内容哈希变更后重新触发复核。

工具也明确说明其局限:命令拦截基于模式识别而非完整沙箱,纯脚本语言 API 表达的危险操作、agent 上下文之外的云元数据调用,目前尚无专门规则,整体属于纵深防御而非绝对保证。

支持的代理与拦截机制

Belay 自动识别 11 款 AI 编程代理,并按各自原生机制接入,而非使用通用 shim:

  • 原生 hook:Claude Code、Codex、Cursor、Hermes
  • 配置策略(config policy):Gemini CLI、Goose
  • 执行策略(exec policy):OpenClaw
  • MCP 代理(proxy):Cline、Roo、Antigravity
  • 插件:Opencode

对 Belay 暂未原生识别的 MCP 服务,可通过 mcp-proxy 统一包裹并 fail-closed。静态扫描结果以 SARIF 2.1.0 格式直接接入 CI 的 code-scanning 面板,每条规则都附带对应的 OWASP/ATLAS 标签。

人在环上的审批

被判定为 Ask 的调用既不会默认放行,也不会默认拒绝——等待人类决策,到时自动拒绝,杜绝「超时即放行」的风险。Belay 支持终端与桌面应用双向审批,也支持通过 Telegram、Discord、WhatsApp、Matrix、Mattermost、Slack 把请示推送到手机上;ntfy、Teams、企业微信、Webhook 仅做单向通知。审批人凭一次性配对码登记,默认拒绝一切未登记来源。

架构与运行模式

整体链路为 detect → protect → serve / desktop app:

  • Detect:扫描本机已安装的代理。
  • Protect:在工具调用边界按 Deny > Ask > Allow 决策,fail-closed;Deny 不可被开发工具链白名单覆盖。
  • Serve:提供实时状态、分类处置与 Allow/Deny 入口。

PostToolUse 阶段还会对工具输出中形似密钥的字符串做脱敏。建议先用 --observe 以日志模式运行调优,再切换到强制拦截。

与同类工具的差异

Belay 的差异化主要在三方面:一是覆盖更广,除破坏性 shell 外还覆盖密钥外泄、MCP 工具调用滥用、恶意技能、主机层外联;二是拦截点更深,作用于 agent 的工具调用边界,而非仅 shell 层;三是本地优先,无云依赖、决策路径不含 LLM、默认无上报、AGPL-3.0 源码可自托管审计。

可选的 AI 解释器(Explain & Advise)默认关闭,需自带密钥接入本地或云端模型,用于在每次判定后给出「为什么风险/如何处置」的人类可读解释,平衡可解释性与隐私。

信源