SECBLOK/belay
GitHub: SECBLOK/belay
Belay 是一个位于 AI 编程代理工具调用边界的本地安全层,通过确定性规则引擎在毫秒级拦截危险操作并审批模糊行为,防止机密泄露和主机破坏。
Stars: 0 | Forks: 0
# Belay
**检测 · 拦截 · 通知 —— AI 编程代理的防御与监控层。**
[](./LICENSE)
[](https://www.rust-lang.org/)
[](https://discord.gg/pySdeDFy6y)
Belay 是一个**本地优先的安全层**,位于 AI 编程代理的**工具调用边界**。
它会自动检测你正在运行的代理,**直接拦截危险操作**,将模糊但有风险的操作
升级提交给你,只需一键**允许 / 拒绝**,并在发生情况时通知你。
决策引擎是**确定性的、无 LLM、100 毫秒以内且故障关闭 (fail-closed)** 的
—— 超时或内部错误会导致*拒绝 (deny)*,绝不会静默允许。Belay 以你的用户身份运行
(绝不使用 root),并且**默认不进行任何外部网络通信 (phone home)**。
兼容 Claude Code、Codex、Cline、Roo、Cursor、Gemini、Goose、OpenClaw、Hermes
等工具 —— 无论是笔记本电脑还是无头 VPS。
## 它能阻止什么
- **机密泄露** —— `.env` 文件、API keys、SSH keys
- **破坏性命令** —— `rm -rf /`、`curl … | sh`
- **反弹 Shell** 与命令控制外发通信
- **供应链、持久化、权限提升和侦察**模式
每一条规则都标记了 **OWASP Agentic Security Initiative (ASI) Top 10**、
**OWASP LLM Top 10** 和 **MITRE ATLAS** 标准,并且静态扫描器会输出 **SARIF 2.1.0** 报告。
## 工作原理
```
detect → protect → serve / desktop app
│ │ │
│ │ └─ live status, triage, and Allow/Deny in the desktop UI
│ └─ gate every tool call: Deny > Ask > Allow (fail-closed)
└─ find the AI agents installed on this machine
```
Belay 会确定性地控制每一个工具调用。**拒绝 (Deny)** 绝不会被开发工具链的白名单所降级;
**询问 (Ask)** 会等待人工决策,并在超时后执行拒绝。请先使用 `--observe` 参数运行,
以便在强制执行前,在仅记录日志的模式下进行调整。
## 功能特性
- **工具调用边界的运行时门控** —— 原生的 PreToolUse/PostToolUse 钩子,
兼容 Claude Code / Codex(支持 `hook` 和 `gate` 两种集成方式);PostToolUse 会对
工具输出中类似机密的字符串进行脱敏处理。
- **MCP 代理** (`mcp-proxy`) —— 封装任何 MCP server,从而对每一个 `tools/call` 进行门控;采用故障关闭机制。
- **确定性规则目录** —— 涵盖机密、外发通信、破坏性操作、RCE、供应链、
持久化、权限提升、侦察、配置篡改,外加 **arm→sink** 和 **“致命三要素”**
的会话关联分析。
- **人机协同审批** —— 在终端或桌面应用中允许 / 拒绝;超时即拒绝。
- **聊天审批** —— 当调用触发*询问 (Ask)* 时,Belay 可以将提示发送到聊天频道,
并接收你的允许 / 拒绝回复。支持 **Telegram, Discord, WhatsApp, Matrix,
Mattermost 和 Slack** 双向通信;在 **ntfy, Teams, 企业微信 (WeCom) 和 webhooks** 上仅支持通知。注册只需一次性的配对码,并且采用**默认拒绝**机制 —— 只有已注册的审批者才能进行批准。
- **解释与建议** —— 每个裁决都附带通俗易懂的“为什么有风险 / 该怎么做”的
解释。**可选的** AI 解释器(默认关闭,自带 API key:本地 Ollama 或
云服务商)可以提供第二意见。它仅供参考 —— 绝不会做出或更改
决策,并且在发送任何内容之前,机密和路径都会被脱敏处理。
- **静态安装前扫描器** (`scan`) —— 包含模式、AST、污点分析、YARA 和 OSV 分析器,
具备来源加权评分功能,并输出 **SARIF** 供 CI 使用。可选的 `--llm` 级联
可过滤误报;在没有 API key 的情况下,它完全在本地运行并仅依靠启发式算法。
- **防篡改审计** —— 采用哈希链审计日志,并包含 `evidence build` / `evidence verify`
(基于调查结果 + SARIF 的 SHA-256 清单)。
- **蜜罐诱饵** —— 伪造的凭证文件,一旦被读取或尝试外发就会触发严重 (Critical) 警报。
- **主机控制** —— 原生 Rust 防火墙和内置的各生态系统漏洞数据库,
**无需任何外部工具**且**无需 NVD key**。漏洞数据库会展示 **CISA KEV**
(已知被利用)徽章和 **EPSS** 漏洞利用概率评分,并且可以通过反向 DNS + ASN / 所有者 / 国家/地区对出站目标进行注释(仅用于显示 —— 绝不用于门控)。
- **桌面应用** (Tauri 2) —— 系统托盘状态、实时审计追踪以及保护隐私的
通知(仅显示类别 —— 绝不包含你的路径或命令)。
## 安装
**Linux 和 macOS:**
```
curl -fsSL https://dl.belay.secblok.io/install.sh | bash
```
**Windows** (PowerShell 5.1+):
```
irm https://dl.belay.secblok.io/install.ps1 | iex
```
想先阅读脚本代码?同样的脚本,只需不要盲目通过管道执行:
```
curl -fsSL https://dl.belay.secblok.io/install.sh -o install.sh
less install.sh && bash install.sh
```
随时可以使用 `belay uninstall` 卸载(添加 `--purge` 可同时移除 `~/.belay`)。
## 快速开始
安装完成后(参见上方的[安装](#install)),使用已添加到你 `PATH` 中的 `belay` 二进制文件来驱动 Belay:
```
# 1. 查看已安装哪些 agents
belay detect
# 2. 首先在 log-only 模式下保护一个(调优,不执行 enforcement)
belay protect
Belay 是 AI 代理的纵深防御措施,而非绝对保证。请查阅文档了解其
已知局限性(例如,系统调用级别的防御需要提升的权限,且根据设计这不在适用范围内)。
标签:AI代理, AI安全, Chat Copilot, Rust, Streamlit, Web报告查看器, 可视化界面, 安全助手, 安全网关, 终端防护, 网络流量审计, 访问控制, 通知系统