自动化与运维 agent-securityedrcel-rulesnd-recordsforensicsendpoint-monitoringincident-responsepre-action-blocking

Numbat

在终端设备上实现 AI Agent 活动可视化:本地检测、可选的动作前拦截、以及事后取证重建。

FollowAgents 评估 · FARS-2.1
谨慎使用
70/ 100 五分制 3.5 / 5
1 2 3 4 5 6
1信任安全18 / 29 · 3.1/5

证据显示默认只读、monitor-only、阻断需操作者显式开启且仅限标记 enforce 的规则,SECURITY.md 明确外发仅限配置的 HTTP sink 且默认强制 HTTPS;扣除点:hook 卸载/恢复路径仅在命令列表中提及,未说明状态与 hook 配置的完整回滚语义;发布者身份未经验证,仓库内未见维护者归属信息,故 least_privilege/rollback/source_attribution 不给满分。

2可靠稳定9 / 14 · 3.2/5

CI 覆盖三平台测试、race、fuzz 与 go mod tidy 一致性检查,SECURITY.md 逐项说明失败时的行为(解码错误不阻断、4MiB 限制等),失败消息设计有据可查;但本文档集未包含实际错误消息样例或 hook 状态核验以外的失败恢复细节,故不给 3。

3适用触发14 / 18 · 3.9/5

范围一节与 coverage matrix 明确各 agent 支持边界、已知缺口、WSL/Windows 路径差异,并明确不执行 artifacts 中的命令,边界声明非常完整(3);受众与触发精度仅能从规则与文档结构间接推断,未见触发误报率或针对不同环境的具体适配验证,故相关项为 2。

4规范维护14 / 18 · 3.9/5

文档结构(coverage、event model、CLI、deployment、enforcement、rules、rule catalog、schemas)完整,安装说明含下载校验、go install 与源码构建三条路径(3);但证据中无 CHANGELOG、无维护者名单/CODEOWNERS,仅'最近 minor 版本获安全修复'一句话承担维护责任说明,versioning_changelog 与 maintenance_responsibility 仅给 1。

5有效结果10 / 13 · 3.8/5

版本化 NDJSON、JSON Schema、SHA-256 清单的 case bundle 使输出可直接消费(3);但本文档集无法证实实际检测质量与误报水平,marginal_value 与 cost_benefit 只能按宣称特性与同类方案定性评估,未见过基准或实测数据,不给 3。

6证据核验5 / 8 · 3.1/5

记录含 evidence_refs、cited_event_ids、schema_version 与规则版本,且明确声明'findings 是规则匹配而非入侵证明',事实与推断分离做得很好(3);README 大量引用的 docs 文件不在本次证据集中,跨来源交叉验证不可行,示例均为'受控回放'而非实际运行结果,claim_traceability 与 cross_source_corroboration 相应扣分。

证据充分度: 评估于 2026年9月7日 审查版本 f0778c09dc48
使用前请注意
  • 发布者身份未经验证,企业环境采用前应独立确认来源与供应链。
  • collect 默认绑定 127.0.0.1:4318 且无客户端认证;换绑到其他接口即无 TLS/认证,需网络层隔离。
  • 脱敏仅为模式掩码,project-path 哈希为无盐稳定连接键;分享记录或 case bundle 前必须人工复核。
  • enforce 模式失败时(解码/评估错误)不拒绝动作,宿主才是最终执行点;不应将 numbat 视为 fail-closed 控制面。
  • 静态审查未执行任何命令,检测质量、误报率与 hook 实际加载情况需在部署前实测验证。
评估证据 [1][2][3][4][5][6]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Numbat 是 Perplexity 开源的终端侧 AI Agent 安全监控工具,通过本地钩子(hooks)、插件、OTLP/HTTP 日志和磁盘上的会话产物来观察受支持的桌面、CLI、IDE 和网关类 Agent。它将实时与静态活动统一规范化为同一事件模型,并用同一套 CEL 规则引擎进行检测,检测完全在本机运行。记录以带版本的 NDJSON 格式输出,可写入 stdout、本地文件或通过 HTTP 外送,事件与发现均保留原始来源引用。拦截(enforce)默认关闭,仅对受支持的同步 pre-action 钩子生效,且自带的全部规则均为仅监控模式。工具以单二进制形式分发,覆盖 macOS、Linux 和 Windows(amd64/arm64),构建时不依赖 cgo。

numbat 通过三条路径采集数据:为支持的 Agent 安装本地钩子/插件(如 Codex、Claude Code 的 pre-action 回调)、接收 OTLP/HTTP 日志、以及扫描磁盘上已有的会话产物(无需事先安装 numbat 即可重建历史活动)。所有活动被规范化为统一事件模型后,由内置 CEL 规则、多步序列规则和自定义 YAML 规则在本机评估,产出事件、发现(findings)、执行决策(enforcement decisions)、指标(indicators)和扫描摘要五类带版本 NDJSON 记录。命令行覆盖:numbat agents(只读发现)、numbat scan(扫描产物)、numbat hook install/status/uninstallnumbat collect(实时捕获)、numbat ship(记录外送)、numbat rules check/list/test(规则开发)、numbat timeline(会话时间线)、numbat case build/verify(带 SHA-256 清单的便携案件包)。扫描为只读并做密钥脱敏;启用拦截时,匹配 enforce: true 规则的 pre-action 调用会按 Agent 类型返回拒绝响应。

  1. 安全团队在开发者工作机上部署监控,实时发现 Agent 访问云元数据端点(如 169.254.169.254)等高危网络行为。
  2. 事件响应人员对未提前部署监控的机器进行事后取证,从 Codex、Claude Code 等工具遗留的会话产物重建多步攻击链(如先读密钥文件再外传数据)。
  3. 平台工程团队将一批自定义 YAML 规则通过 --rules-dir 下发到研发终端,实现统一的 Agent 行为策略。
  4. 合规审计人员使用只读的 scantimeline 命令生成带 SHA-256 清单的案件包,用于留档和审查。
  5. 希望阻断特定行为(如写入 SSH authorized_keys)的管理员,将内置规则复制为 enforce: true 版本并安装到受支持的 pre-action 钩子上。
  6. 构建 Agent 安全工具链的工程师接入 OTLP/HTTP 日志导出,将现有 Agent 日志纳入同一检测管线。

这个 Agent 有哪些优点和局限?

优点
  • 检测完全在本机运行,规则引擎(CEL)与事件模型对实时钩子和静态产物扫描统一复用,一套规则两种场景生效。
  • 支持多步序列规则(如"读密钥后外传"链式检测),发现记录引用具体事件 ID 和 ATT&CK 标签,证据链可审计。
  • 拦截默认关闭且所有出厂规则均为仅监控模式,部署风险低;拦截仅在受支持的同步 pre-action 钩子上生效,语义清晰。
  • 单二进制分发,覆盖三大操作系统和两种架构,构建不依赖 cgo,适合大规模终端部署。
  • 记录格式有版本化 JSON Schema(v0.3.0),事件与发现保留来源引用,便于下游 SIEM 集成。
局限
  • 拦截能力仅覆盖受支持的同步 pre-action 钩子,且需要管理员手工改写规则(保持 id、加 enforce: true、递增版本)并重新安装钩子,开箱即用的出厂规则全部只监控不阻断。
  • 静态产物重建无法恢复 Agent 未持久化的活动,也不等同于磁盘或内存取证;发现只是规则匹配,不构成入侵证明。
  • 各 Agent 的覆盖程度由覆盖矩阵决定,存在已知的延迟写入、保真度限制和 root 覆盖问题;Windows 原生与 WSL 的路径处理也不同。
  • 钩子信任要求因 Agent 和范围而异(如 Codex 用户钩子需手动信任,--managed 钩子策略信任),且 hook status 只验证配置、不验证实际执行与送达。
  • 记录即使脱敏后仍可能保留敏感的终端与 Agent 上下文;案件包未签名,不能证明来源真实性或完整性。

如何安装或部署这个 Agent?

方式一:从 GitHub Releases(https://github.com/perplexityai/numbat/releases)下载 macOS、Linux 或 Windows 的 amd64/arm64 单二进制,每版附带 SHA-256 校验和。方式二:用 Go 1.26.6 或更新版本安装:go install github.com/perplexityai/numbat/cmd/numbat@latest。方式三:本地静态构建(macOS/Linux):CGO_ENABLED=0 go build -trimpath -o numbat ./cmd/numbat;Windows PowerShell:$env:CGO_ENABLED = "0"; go build -trimpath -o numbat.exe ./cmd/numbat。无需额外凭据或云服务。

如何使用这个 Agent?

  1. 只读盘点与扫描(不安装钩子、不改 Agent 配置):numbat agents 列出发现的 Agent;numbat scan 扫描所有发现的 Agent 产物,或用 numbat scan --agent codex 限定范围。2. 实时监控(以 Codex 为例):numbat hook install --agent codex --emit all 安装仅监控模式钩子,记录写入 ~/.numbat/records.nd;用 numbat hook status --agent codex 检查状态。注意安装后需在 Agent 的钩子设置(如 Codex CLI 的 /hooks 或 Settings > Hooks)中审查并信任钩子定义。3. 启用拦截:将 rules/ 下的完整 YAML 复制到自管目录、保持相同 id、添加 enforce: true 并递增版本,然后 numbat rules check --rules-dir ./numbat-policy 校验,再 numbat hook install --agent codex --emit all --rules-dir ./numbat-policy --enforce。4. 其他:numbat timeline 查看会话时间线,numbat ship 外送记录,numbat case build / case verify 构建与校验案件包。运行 numbat --help 查看全部命令。

常见问题

启用后会不会拦截或干扰 Agent 的正常操作?
不会,除非你主动启用 enforce。拦截默认关闭,出厂规则全部为仅监控模式;只有当你复制规则、添加 enforce: true 并以 --enforce 安装钩子后,匹配规则的 pre-action 调用才会被拒绝。
是否需要联网或云服务?
检测在本地运行,不需要云服务。记录可写到 stdout 或本地文件;只有在你配置了 HTTP 外送(ship/HTTP sink)时才会有出站请求,numbat 仅向配置的 HTTP sink 发起出站请求。
支持哪些 Agent 和操作系统?
支持 macOS、Linux、Windows(amd64/arm64)的单二进制。Agent 覆盖范围(桌面、CLI、IDE、网关类,含 Codex 和 Claude Code)以 docs/agent-coverage.md 的覆盖矩阵为准,各 Agent 的产物、实时捕获、拦截支持程度和已知缺口不同。
能否在没有提前部署监控的机器上取证?
可以。numbat scantimeline 可从支持的磁盘会话产物做只读重建,无需事先安装钩子;但这不是磁盘/内存取证,Agent 未持久化的活动无法恢复。
如何添加自己的检测规则?
编写自定义 YAML 规则(CEL 字段、序列规则均有文档),通过 --rules-dir(可重复)传入 scancollecthookrules check 等命令;可用 --no-builtin-rules 只使用自有规则集,并可用 numbat rules test 做测试。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents