stevenkozeniesky02/agentsid-scanner
GitHub: stevenkozeniesky02/agentsid-scanner
MCP 服务器专属安全扫描器,检测 Prompt 注入、权限配置、认证缺陷等问题并输出分级报告。
Stars: 14 | Forks: 0
AgentsID Scanner
Agent 安全的灯塔。
扫描任意 MCP server。获取安全评分报告。
您的 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 加载器, 反取证, 大模型安全, 安全扫描器, 安全评估, 工具安全, 数据可视化, 文档结构分析, 暗色界面, 权限分析, 注入风险, 结构化查询, 自动化安全, 自定义脚本, 身份认证检测, 输入验证, 风险分级