stevenkozeniesky02/agentsid-scanner

GitHub: stevenkozeniesky02/agentsid-scanner

MCP 服务器专属安全扫描器,检测 Prompt 注入、权限配置、认证缺陷等问题并输出分级报告。

Stars: 14 | Forks: 0

AgentsID Scanner

Agent 安全的灯塔。
扫描任意 MCP server。获取安全评分报告。

AgentsID License

您的 MCP server 向 AI agents 暴露了工具。它的安全性如何? 大多数 MCP server 在发布时没有任何身份验证,没有针对每个工具的权限控制,没有输入验证,而且工具描述容易受到 prompt injection 攻击。**您只是还没意识到而已。** AgentsID Scanner 会告诉您。 ## 快速开始 ``` npx @agentsid/scanner -- npx @some/mcp-server ``` 就这样。您将获得一个字母等级和详细的发现报告。 ## 扫描内容 | 类别 | 检查项 | 为何重要 | |----------|---------------|----------------| | **注入 (Injection)** | 检查工具描述中的 11 种 prompt injection 模式 | 恶意的工具描述可以劫持 agent 的行为 | | **权限 (Permissions)** | 根据风险(破坏性、执行、金融、凭证)对工具名称进行分类 | 没有访问控制的 50 个工具意味着 50 个攻击面 | | **验证 (Validation)** | 检查输入 schema 是否缺少约束、字符串是否无限制、参数是否仅可选 | 无验证 = 任意输入直接传递给您的 tool handler | | **认证 (Auth)** | 工具层面的认证指标 | 无需认证的工具 = 未经验证的 agent 调用您的工具 | | **机密信息 (Secrets)** | 可能在输出中暴露凭证的工具 | 响应中泄露的 API key、token、密码 | | **输出 (Output)** | 未过滤的文件/数据输出 | 未经脱敏处理即返回敏感文件内容 | ## 报告 ``` ╔══════════════════════════════════════════════════════════════╗ ║ AgentsID Security Scanner — Report ║ ╚══════════════════════════════════════════════════════════════╝ Server: my-mcp-server v1.0.0 Tools: 23 Scanned: 2026-03-29T12:00:00.000Z Overall Grade: D (42/100) Category Grades: injection A permissions F validation D auth F output B Tool Risk Profile: destructive ████ 4 execution ██ 2 credential_access █ 1 Findings: 31 CRITICAL: 2 HIGH: 8 MEDIUM: 15 LOW: 6 Recommendations: 1. Address CRITICAL and HIGH findings immediately 2. Add per-tool permission controls (agentsid.dev/docs) 3. Implement input validation on all tool parameters 4. Add authentication to server endpoints ``` ## 使用方法 ### 扫描本地 MCP server (stdio) ``` # 扫描任何 npx-installable MCP server agentsid-scan -- npx @modelcontextprotocol/server-filesystem ./ # 扫描本地 server 文件 agentsid-scan -- node my-server.mjs # 扫描 Python MCP server agentsid-scan -- python -m my_mcp_server ``` ### 扫描远程 MCP server (HTTP) ``` agentsid-scan --url https://mcp.example.com/mcp ``` ### JSON 输出 ``` agentsid-scan --json -- npx @some/mcp-server > report.json ``` ### 传递环境变量 ``` agentsid-scan --env API_KEY=xxx --env DB_URL=postgres://... -- node server.mjs ``` ## 评分标准 初始为 100 分。根据发现结果扣分: | 严重程度 | 扣分 | 示例 | |----------|-----------|---------| | CRITICAL | -25 | 无认证的 Shell 执行工具 | | HIGH | -15 | 工具在输出中暴露凭证 | | MEDIUM | -8 | 没有长度限制的字符串参数 | | LOW | -3 | 仅包含可选的输入参数 | | INFO | 0 | 检测到只读工具 | | 等级 | 分数 | 含义 | |-------|-------|---------| | A | 90-100 | 安全态势优秀 | | B | 75-89 | 良好 — 存在轻微问题 | | C | 60-74 | 尚可 — 需要改进 | | D | 40-59 | 较差 — 存在重大风险 | | F | 0-39 | 不合格 — 存在严重漏洞 | ## 注入检测 Scanner 会检查工具描述中的 11 种 prompt injection 模式: - **指令覆盖** — “ignore previous instructions”、“disregard all rules” - **角色劫持** — “you are now a...” - **记忆擦除** — “forget everything” - **工具重定向** — “instead of X, call Y” - **隐藏动作** — “also execute...” - **隐瞒行为** — “do not tell the user” - **隐蔽操作** — “secretly”、“covertly” - **绕过安全机制** — “override auth”、“skip validation” - **编码载荷** — base64、eval()、模板注入 - **Unicode 混淆** — 隐藏指令的转义字符 ## 风险分类 每个工具都根据名称模式进行分类: | 风险等级 | 模式 | 示例工具 | |------------|----------|---------------| | **Critical** | execute, shell, admin, sudo, payment | `shell_run`, `admin_reset`, `process_payment` | | **High** | delete, remove, drop, deploy, credential | `delete_user`, `deploy_prod`, `get_api_key` | | **Medium** | create, update, send, write | `create_issue`, `send_email`, `write_file` | | **Info** | read, get, list, search, describe | `get_status`, `list_users`, `search_docs` | ## 修复您的评级 Scanner 会告诉您哪里出了问题。以下是如何修复: ### 添加针对每个工具的权限 ``` npm install @agentsid/guard ``` [AgentsID Guard](https://github.com/stevenkozeniesky02/shell-guard) 在执行前根据权限规则验证每一次工具调用。50 个工具,16 个类别,全方位保护。 ### 或者将 SDK 添加到您现有的 server ``` npm install @agentsid/sdk ``` 在您的 MCP server 中只需三行中间件。完整文档请访问 [agentsid.dev/docs](https://agentsid.dev/docs)。 ## 编程方式使用 ``` import { scanStdio, scanHttp, scanToolDefinitions } from "@agentsid/scanner"; // Scan a local server const report = await scanStdio("npx @some/server", { json: true }); // Scan a remote server const report = await scanHttp("https://mcp.example.com", { json: true }); // Scan tool definitions directly (no server needed) const report = scanToolDefinitions(myToolArray, { json: true }); ``` ## 贡献 发现了我们未检测到的模式?提交 issue 或 PR。规则引擎位于 `src/rules.mjs` —— 添加新模式只需一个正则表达式。 ## 链接 - [AgentsID](https://agentsid.dev) — AI agents 的身份验证与认证 - [AgentsID Guard](https://github.com/stevenkozeniesky02/shell-guard) — 受保护的 50 工具 MCP server - [文档](https://agentsid.dev/docs) ## 许可证 MIT
标签:AI Agent安全, AI基础设施, API密钥检测, CISA项目, GraphQL安全矩阵, Lighthouse, MCP服务器, MITM代理, PE 加载器, 反取证, 大模型安全, 安全扫描器, 安全评估, 工具安全, 数据可视化, 文档结构分析, 暗色界面, 权限分析, 注入风险, 结构化查询, 自动化安全, 自定义脚本, 身份认证检测, 输入验证, 风险分级