ivanlkf/navil
GitHub: ivanlkf/navil
开源 AI Agent 治理中间件,为 MCP 服务器提供运行时安全代理,集成异常检测、策略引擎、威胁情报和凭据管理,弥补静态扫描无法发现动态威胁的缺陷。
Stars: 1 | Forks: 0
Navil
开源 Agent 治理中间件。
为 AI Agent 工具调用提供可观测性、策略执行和威胁情报——无论您的 Agent 使用 MCP、CLI 还是两者兼有。
OpenClaw 危机 • 快速入门 • 工作原理 • 威胁网络 • 兼容性 • CI/CD • 功能 • 性能 • 云端 • 架构 • 安装
## 为什么需要运行时监控,而不仅仅是扫描 对 MCP 包进行静态扫描确实能发现实际问题——但仅占其中的 1.7%。我们扫描了 4,401 个 MCP 包,发现 77 个存在实际的代码级漏洞。这些包本身大多没有问题。 **真正的威胁是动态的。** 一个 MCP 服务器的源代码可能完全干净,但在运行时仍可能被武器化: | 威胁 | 静态扫描能发现吗? | 运行时代理能发现吗? | |--------|:-----------------------:|:------------------------:| | 包中的代码漏洞 | 是 (发现 1.7%) | -- | | 通过工具调用进行的 Prompt 注入 | 否 | **是** | | 工具投毒 (恶意描述) | 否 | **是** | | 通过工具响应进行的数据窃取 | 否 | **是** | | 拉地毯式攻击 (安装后服务器变更) | 否 | **是** | | 通过工具调用泄露凭据 | 否 | **是** | | 通过工具链进行的权限提升 | 否 | **是** | 静态扫描能发现 1.7%。运行时监控能发现剩下的 98.3%。这就是为什么 Navil 是一个代理,而不仅仅是扫描器。扫描器是锦上添花。代理才是核心产品。 **与此同时,MCP 协议本身存在真正的问题:** 6 周内出现了 8+ 个 CVE (允许列表绕过、包装器绕过、执行批准绕过、路径遍历、内存炸弹、令牌盗窃)。有 42,665+ 个实例暴露在公共互联网上且没有任何身份验证。 Navil 通过一条命令修复这个问题: ``` pip install navil navil wrap your_mcp_config.json ``` 您配置中的每个 MCP 服务器现在都位于安全代理之后,该代理监控工具调用、执行策略、检测异常并阻止已知的攻击模式——每条消息的[开销 <3 us](#performance)。您的原始配置会自动备份。 这适用于任何 MCP 客户端,而不仅仅是 OpenClaw。但如果您正在运行 OpenClaw,您今天就需要这个。 ## 快速入门 两行命令。无需 API Key。无需注册。 ``` pip install navil navil wrap ~/.cursor/mcp.json # or claude_desktop_config.json, openclaw.json ``` 就是这样。您配置中的每个 MCP 服务器现在都被 `navil shim` 包装,它会拦截所有工具调用,并在转发之前让它们通过安全管道。 **想要群组分析和实时威胁情报?** 通过一条命令升级: ``` navil cloud login # OAuth device flow -- opens browser, no API key to paste ``` 这会将您的本地实例连接到 [navil.ai](https://navil.ai),以获取仪表板、按 Agent 的信任评分以及对社区威胁网络的实时访问。免费层级无需此步骤即可工作。 ## Navil 的目标用户 | 买方 | 问题 | Navil 的作用 | |-------|---------|-----------------| | 为内部开发工具部署 MCP 服务器的 **平台团队** | 无法看清 Agent 在整个群组中正在做什么 | 跨所有 Agent 的集中式可观测性 + 策略执行 | | 为客户构建 MCP 集成的 **SaaS 公司** | 多租户身份验证和凭据生命周期是基本要求 | JWT 凭据管理、按租户范围划分、审计跟踪 | | **受监管行业** (金融、医疗、政府) | 审计跟踪和访问控制不是可选的 | 完整的审计日志、按工具的策略执行、异常告警 | | 使用 Claude/Cursor/OpenClaw 的 **独立开发者** | 运行时威胁对静态扫描不可见,MCP 服务器上无身份验证 | 一键安全代理,附带社区威胁情报 | Navil 适用于独立开发者(免费、开源、无需账户)。但其架构是为需要治理而不仅仅是扫描的团队和企业构建的。 ## 工作原理 Bloomberg 在内部构建了身份验证、速率限制和 AI 护栏,以使 MCP 在企业中安全使用。Block 构建了 Goose,这是一个带有治理中间件的 MCP 兼容 Agent。大多数组织无法在内部构建这些。Navil 是开源版本。 ``` Agent Governance Layer AI Agents ------> [ Navil ] ------> Tools (MCP, CLI, API) | | Observability: every tool call logged | Policy: least-privilege enforcement | Detection: anomaly + threat matching | Sharing: community threat intelligence v Community Threat Network Using Navil IS contributing to global security. Every anomaly detected locally is anonymized and shared. Every shared pattern makes every other node smarter. ``` MCP 存在真正的问题——上下文膨胀、无身份验证、无可观测性。“MCP 已死”这一派关于问题的看法是正确的,但关于解决方案的看法是错误的。答案不是放弃协议。而是修复运营层。这就是 Navil 所做的。 ### Token 成本问题 MCP 服务器将所有工具暴露给所有 Agent。仅 GitHub MCP 就转储了 90+ 个工具 Schema,在模型甚至开始思考之前就消耗了 50,000+ 个 Token。在规模上——通过 MCP 暴露 2,500 个 API 端点——仅工具定义就需要 244,000 个 Token,超过了大多数模型的上下文限制。 这不仅仅是性能问题。这是成本问题。每个浪费的 Token 都是花在零价值推理上的钱。这还是一个安全问题——暴露 Agent 不需要的工具违反了最小权限原则。 Navil 的策略引擎同时解决了这两个问题: ``` # ~/.navil/policy.yaml — 仅暴露 Agent 所需内容 scopes: code-review: allow: [get_pull_request, list_files, create_review_comment] deploy: allow: [create_deployment, get_deployment_status] default: allow: "*" # backward compatible ``` 代码审查 Agent 看到 3 个工具而不是 90 个。这是 **94% 的 Schema Token 减少**——更便宜的推理、更快的响应和更小的攻击面。安全性和成本优化来自同一配置。 ### `navil wrap` 的作用 ``` Before: After: +---------------------+ +---------------------+ | "filesystem": { | | "filesystem": { | | "command": "npx", | navil | "command":"navil",| | "args": [...] | --wrap--> | "args": ["shim", | | } | | "--cmd","npx ..."| +---------------------+ +---------------------+ ``` 每个服务器都有自己的 Agent 身份,用于按服务器制定策略和遥测。您的环境变量、cwd 和其他配置键原封不动地传递。 ### 选项 ``` # 仅封装特定服务器 navil wrap openclaw.json --only filesystem,github # 将策略文件附加到所有服务器 navil wrap openclaw.json --policy policy.yaml # 预览更改而不修改任何内容 navil wrap openclaw.json --dry-run # 撤销:恢复原始配置 navil wrap openclaw.json --undo ``` ## 社区威胁网络 AI 威胁在几分钟内演变,而不是几个月。在一台机器上发现的 Prompt 注入应该在几秒钟内保护其他所有机器。Navil 使这自动化。 **贡献:** 您的本地 Navil 实例检测到新的攻击模式,并将经过清理的元数据片段——异常类型、严重性、置信度分数、工具名称和时间——发送到中央集线器。Agent 身份经过 HMAC 匿名化处理。原始数据永远不会离开您的机器。您可以通过检查 [`navil/cloud/telemetry_sync.py`](navil/cloud/telemetry_sync.py) 来审核确切发送的内容。 **获取:** 作为交换,您的实例从全球威胁黑名单接收更新——这是一个由数千个其他 Navil 节点发现的恶意模式的精选源。内置的 `ThreatIntelFetcher` 在启动时以及随后定期轮询 `GET /v1/threat-intel/patterns`。 **隐私保证:** 只有数值聚合和分类标签会离开您的机器。Agent 身份经过单向 HMAC-SHA256 哈希处理。如果任何被禁止的字段泄露,运行时检查会引发 `ValueError`。使用 `NAVIL_DISABLE_CLOUD_SYNC=true` 可完全退出。参见 [DATA_COLLECTION.md](DATA_COLLECTION.md)。 ### 分级访问 | 级别 | 价格 | 共享 | 黑名单访问 | |------|-------|---------|------------------| | **Community (OSS)** | $0/月 | 必需 (匿名化) | 完全访问,延迟 48 小时 | | **Dark Site (OSS)** | $0/月 | 禁用 | 仅限本地,无全局更新 | | **Pro** | $49/月 | 可选 | 实时 + 已验证源 | | **Growth** | $99/月 | 可选 | 实时 + 5 条自定义规则 | | **Team** | $249/月 | 可选 | 实时 + 无限规则 | | **Enterprise** | 定制 | 可选 | 实时 + 专用源 | ``` # 社区模式 (默认):共享与接收 navil wrap config.json # 付费模式:接收而不共享 NAVIL_API_KEY=nvl_your_key NAVIL_DISABLE_CLOUD_SYNC=true navil cloud serve ``` ## 兼容性 | 客户端 | 配置路径 | 命令 | |--------|------------|---------| | **Claude Desktop** | `~/Library/Application Support/Claude/claude_desktop_config.json` | `navil wrap ~/Library/Application\ Support/Claude/claude_desktop_config.json` | | **Cursor** | `~/.cursor/mcp.json` | `navil wrap ~/.cursor/mcp.json` | | **Continue.dev** | `.continue/config.json` | `navil wrap .continue/config.json` | | **OpenClaw** | `openclaw.json` | `navil wrap openclaw.json` | 任何使用 MCP 配置文件的工具都有效。Navil 读取配置,包装每个服务器条目,并将其写回。 对于通过 Streamable HTTP 使用 MCP 的 OpenClaw 实例(生产部署),请使用 HTTP 代理: ``` navil proxy start --target http://your-mcp-server:3000 --no-auth # 将您的 OpenClaw MCP server URL 指向 http://localhost:9090/mcp ``` ## CI/CD 集成 OpenClaw 注册表中有 824 个恶意技能。100% 的公共 MCP 服务器缺少身份验证。不要让不良配置进入生产环境。 ### GitHub Actions ``` name: MCP Security Scan on: pull_request: paths: ["**.mcp.json", ".mcp.json", "openclaw.json"] jobs: navil-scan: runs-on: ubuntu-latest permissions: security-events: write contents: read steps: - uses: actions/checkout@v4 - uses: navil/scan-action@v1 with: config: mcp_config.json fail-on: critical - name: Upload SARIF results if: always() uses: github/codeql-action/upload-sarif@v3 with: sarif_file: navil-results.sarif ``` 扫描结果显示在 GitHub 的 **Security** 选项卡下的 **Code scanning alerts** 中。每个涉及 MCP 配置的 PR 都会自动扫描。关键发现会阻止合并。 ### GitLab CI ``` navil-scan: image: python:3.12-slim script: - pip install navil - navil scan .mcp.json --format sarif --output gl-code-quality-report.json artifacts: reports: codequality: gl-code-quality-report.json rules: - changes: - "**.mcp.json" - ".mcp.json" ``` ### CLI 扫描格式 ``` navil scan config.json # Human-readable (default) navil scan config.json --format sarif # SARIF v2.1.0 for CI navil scan config.json --format json # JSON for scripting navil scan config.json --format sarif --output results.sarif ``` ## 功能 ### Rust 数据平面 基于 Axum 的反向代理,具有 HMAC-SHA256 验证、JSON 深度限制、O(1) Redis 阈值检查和按分钟分桶的速率限制。每个请求的开销为亚毫秒级。 ### 行为异常检测 12 个统计检测器,具有自适应 EMA 基线、操作员反馈循环和学习的模式匹配。通过 Redis 桥接的遥测在热点路径之外运行——安全分析永远不会阻塞您的 Agent。 ### 配置扫描 检测明文凭据、权限过大、缺少身份验证、未经验证的来源和恶意模式。生成 0-100 的安全评分。 ### 策略执行 YAML 驱动的工具/操作允许列表、按 Agent 的速率限制、数据敏感性门控和可疑模式检测。 ### 渗透测试 11 个 SAFE-MCP 攻击模拟,验证您的检测器确实能捕获威胁。不产生真实的网络流量。 ### LLM 驱动的分析 AI 驱动的配置分析、异常解释、策略生成和自我修复。自带 API Key——支持 Anthropic、OpenAI、Gemini 和 Ollama (完全本地)。 ### 身份系统 OIDC Token 交换将外部身份 Token 转换为附带人工上下文的 Navil 凭据。委托链允许父凭据为子 Agent 生成更窄的子凭据,具有完整的链可视化和级联撤销,一次调用即可使整个委托树无效。 ### 凭据生命周期 颁发、轮换和撤销 JWT Token,具有 JIT 供应、可配置的 TTL、使用情况跟踪和不可变的审计日志。通过全局活动凭据上限 (500)、过期凭据的自动清除和线程安全的轮换进行加固。 ### 威胁情报与黑名单引擎 通过 [贡献换取访问计划](#community-threat-network) 获取社区来源的威胁情报,由本地黑名单引擎支持进行模式匹配。附带 28 个精选模式。公开攻击目录 (`public_attacks.yaml`) 包含 10 个类别的 32 个编目攻击模式,扩展为 200+ 个参数化变体,用于 ML 基线训练。 ### 蜜罐与金丝雀套件 部署诱饵 MCP 服务器以检测和研究野外的攻击者。3 个内置配置文件:`dev-tools`、`cloud-creds` 和 `db-admin`。内置的 `SignatureExtractor` 分析收集的交互并自动生成黑名单条目。生产部署使用带有隔离网络的 Docker Compose。 ### 工具范围界定 MCP 工具的上下文感知可见性控制。在 `policy.yaml` 中定义范围,以限制每个 Agent 在 `tools/list` 响应中*看到*哪些工具——与策略执行(控制 Agent 可以*调用*什么)分开。减少 Schema Token 膨胀高达 94%。Rust 代理以 O(1) 复杂度从 Redis 读取范围定义,并缓存具有 60s TTL 的过滤响应。附带 GitHub、filesystem 和 kubectl MCP 服务器的社区模板。 ### AI 策略构建器 从观察到的 Agent 行为进行闭环策略生成。系统监视 Agent 如何使用工具,检测异常,建议带有置信度分数的策略规则,并自动应用安全更改。三个 CLI 命令:`navil policy auto-generate` (从基线引导)、`navil policy suggest` (审查待定规则) 和 `navil policy rollback` (撤消生成的更改)。机器生成的规则放入 `policy.auto.yaml`——您的 `policy.yaml` 始终优先。 ### CLI 包装 将治理扩展到 MCP 之外的 CLI 工具。`navil wrap` 为 `gh`、`kubectl`、`aws` 和其他 CLI 二进制文件创建 PATH 前缀垫片。每个垫片记录调用、检查策略规则、转发到真实二进制文件并捕获遥测——使用与 MCP 事件相同的管道。 ### A2A Agent 卡片 根据 Google A2A 规范在 `/.well-known/agent.json` 发布可发现的 Agent 身份。其他 Agent 可以发现您受 Navil 保护的 Agent 的能力、身份验证要求和治理元数据。支持通过 `/a2a` 端点进行 Agent 间任务分发。 ### 注册表扫描 大规模发现和审计 MCP 服务器。`navil crawl registries` 从 npm、PyPI 和 awesome-mcp-servers 列表中发现服务器。`navil scan-batch` 批量扫描爬取结果并输出 JSONL。 ### 零知识遥测 云端同步使用 HMAC-SHA256 匿名化所有 Agent 身份,执行严格的字段允许列表,并主动阻止被禁止的字段。原始数据永远不会离开您的部署。使用 `NAVIL_DISABLE_CLOUD_SYNC=true` 可完全退出。参见 [DATA_COLLECTION.md](DATA_COLLECTION.md)。 ## 性能 Navil 的安全管道为实际工作负载增加了**可忽略不计的开销**。我们针对模拟 MCP 服务器对 stdio shim 进行了基准测试,以将安全检查的成本与网络/工具延迟隔离开来。 ### 每条消息的开销 | 组件 | 平均值 | p50 | p99 | |-----------|------|-----|-----| | 完整安全检查 (清理 + 解析 + 策略 + 异常) | **2.7 us** | 2.4 us | 6.1 us | | `orjson` 解析 | 0.9 us | 0.8 us | 2.0 us | | 策略引擎查找 | 0.5 us | 0.4 us | 1.2 us | | 异常门控扫描 | 0.3 us | 0.3 us | 0.8 us | ### 总会话耗时 | 会话大小 | 直接 | 使用 Navil | 开销 | |--------------|--------|------------|----------| | 轻量 (5 次工具调用) | 11.5 ms | 12.0 ms | **+0.5 ms** (4.4%) | | 中等 (50 次工具调用) | 12.8 ms | 14.2 ms | **+1.4 ms** (10.8%) | | 重量 (500 次工具调用) | 28.0 ms | 40.3 ms | **+12.3 ms** | ``` python bench_shim_latency.py # Per-message breakdown python bench_total_latency.py # Full session wall-clock ``` ## 云端仪表板 功能齐全的安全仪表板,用于可视化和管理您的 MCP 群组。可在 [navil.ai](https://navil.ai) 访问。
仪表板 —— 群组概览:Agent 数量、活跃告警、调用、凭据状态、Agent 健康网格和最近的策略决策。
|
网关 —— 配置并启动 MCP 安全代理。实时拦截 Agent 到工具的流量,执行策略并阻止异常。
|
渗透测试 —— 运行所有 11 个 SAFE-MCP 攻击场景,查看您的检测器捕获了哪些威胁。
|
配置扫描器 —— 粘贴任何 MCP 服务器配置,获取 0-100 的安全评分以及可操作的补救步骤。
|
自我修复 AI —— 分析威胁并应用 AI 生成的补救操作及置信度分数。
|
告警 —— 跨 Agent 群组的实时异常告警,支持严重性过滤。
|
更多截图
| 页面 | 截图 | |------|-----------| | 策略引擎 |
|
| 分析 (云端) |
|
| Agent |
|
| 凭据 |
|
| 设置 |
|
由 Pantheon Lab 构建
标签:AI安全, API安全, API集成, Burp项目解析, Chat Copilot, JSON输出, MCP服务器, Python, Rust, Streamlit, 中间件, 事件响应, 代理, 代码分析, 凭证管理, 动态防御, 可观测性, 可视化界面, 威胁情报, 底层分析, 开发者工具, 异常检测, 搜索引擎查询, 无后门, 无文件攻击, 智能体治理, 知识图谱, 策略引擎, 网络安全, 网络安全审计, 网络安全挑战, 网络流量审计, 访问控制, 逆向工具, 隐私保护