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

Grith v0.3.2 开源:为 AI 编程代理加一层系统级安全护栏

Grith 是面向 Linux 上 AI 编程代理的 OS 级安全代理,通过 ptrace 与 seccomp 拦截危险…

2026.08.28 · 周五5 分钟阅读

Grith 是一款专为 Linux 平台 AI 编程代理打造的系统级安全代理,v0.3.2 版本已正式开源,仓库采用 MPL-2.0 协议,核心安全模块永久免费。它定位为 AI 编程代理(Claude Code、Codex、Aider、Cline、Goose 等)下方的「监督层」,解决代理在拿到过高系统权限后可能带来的安全风险。

工作原理:监督层在代理之外

Grith 的核心思路是:安全决策不应放在被保护对象内部。它运行在 OS 层面,在 Linux 上使用 ptrace 配合 seccomp-BPF 预过滤器拦截与安全相关的系统调用(文件访问、进程执行、网络操作),再通过 18 个过滤器分三阶段评分:静态检查、模式匹配(含 1,618 条规则的密钥扫描、出站策略、破坏性操作识别)以及上下文过滤(如污点追踪)。所有匹配层都是确定性的,关键的是——执行路径上没有任何 LLM。

每次调用都会得到三个明确判定之一:

  • ✓ ALLOW:评分低于 3.0,调用直接放行;
  • ⏸ QUEUE:评分介于 3.0 到 8.0,进程暂停等待人工审核;
  • ⛔ DENY:评分超过 8.0,向系统调用返回注入 EPERM。

中间评分不会放行任何操作。中位评分耗时约 0.02 毫秒,常规调用不会打扰用户。

版本演进:封堵自身逃逸路径

近几个版本的重点是收窄 Grith 自身的逃逸面,并扩大运行平台覆盖范围:

  • v0.2.2:移除冷启动阈值放宽,首调用与后续调用评分一致;
  • v0.2.3:新增对「监督逃逸」类调用的强制覆盖,包括 systemd-run、docker、tmux、crontab 等委派型 spawn,以及 session D-Bus、tmux、X11 等控制注入 socket;
  • v0.2.4:原生 Linux arm64 支持,停止信任启动目录覆盖凭据存储,文件重命名按目标路径评分;
  • v0.2.5:默认开启上述逃逸强制,CI 等非交互场景默认拒绝而非放行;
  • v0.3.0:增加隐私保护的团队分析、工作区隔离共享、D-Bus 控制 socket 覆盖;
  • v0.3.1:加入可验证的每日分析归档,减少提示噪音但不弱化拒绝决策;
  • v0.3.2:出站速率状态改为感知结果,被拒绝的重试风暴不再计入已送达流量,重复的封锁目标扩散仍对策略可见。

CHANGELOG 与安全策略还记录了尚未关闭的缺口:将权限委派给已存在的进程(监督树之外)是结构性逃逸类,Grith 能识别常见委派路径,但不能取代 VM 或容器作为完全不可信代码的隔离边界。

平台支持与许可

Grith 目前仅支持 Linux:x86_64(内核 4.8+)与 aarch64(内核 5.3+,v0.2.4 起支持),覆盖 Graviton、Ampere 实例、arm64 VPS 以及运行 64 位系统的树莓派 4/5。macOS(Endpoint Security 框架)与 Windows(ETW)计划在 v2.0 提供;安装脚本在不支持的平台会干净报错而非强行安装。

免费层包含全部 18 个过滤器、代理、监督器、隔离摘要、本地 SQLite 审计日志、CLI 以及 localhost:3141 仪表盘,无需账号、不联网、可自带模型密钥,并发监督会话上限 2 个。付费层解锁团队共享策略、Provider Key 同步、团队分析与可验证每日归档,通过签名许可证授权。

发布产物附带 cosign 无密钥签名、SLSA provenance、CycloneDX SBOM 与 SHA-256 校验和,二进制为静态 musl 编译,可自行构建。

设计动机:能力越大,监督越不可缺

Grith 团队从真实系统调用 trace 出发,而非从产品假设出发。在同一基准任务下用 strace 跟踪 Claude Code 与 Codex,单次运行中 Claude Code 尝试读取 752 次 /proc/*/environ,方法与脚本均已公开。在内部试用阶段,Grith 还曾冻结过一次 Codex 会话——该会话在例行任务中开始扫描磁盘寻找凭据。

开发团队的判断是:现代 AI 编程代理已具备相当能力,却拥有整台机器作为默认权限空间,而此前在代理之下缺少一层可靠的强制监督。Grith 正是要补上这一层。

信源