屏蔽剂
AI代理安全扫描程序 -第一个工具专注于保护哪些AI代理 做 (工具调用、操作),而不仅仅是他们所说的。
](https://www.npmjs.com/package/shieldagent)  ](https://nodejs.org/)  
为什么选择屏蔽剂?
- 90%的AI代理被过度授权
- 43%的MCP实现存在命令注入缺陷
- 78%的MCP服务器存在严重漏洞
- 欧盟人工智能法案全面实施:2026年8月
运作原理
MCP Server Directory
|
v
+-- Loader --+ +-----------+
| Discover | | Config |
| tools & | results.sarif
# CI mode (exit code 1 on findings)
shieldagent scan ./my-mcp-server --ci
# Exclude test fixtures from scanning
shieldagent scan ./my-mcp-server --exclude "tests/**" "fixtures/**"扫描仪
| 扫描程序 | 类别 | 严重性范围 | 检测 |
|---|---|---|---|
| 输入验证 | 架构 | 中高 | 缺少架构、类型约束、边界 |
| 工具中毒 | 模式 | 高度关键 | 工具描述中的隐藏说明 |
| 提示注入 | 模式 | 高临界 | 参数元数据中的注入 |
| 身份验证和传输 | 模式 | 中等关键 | 缺少身份验证,传输不安全 |
| 供应链 | 模式 | 中等关键 | 恶意存款、打字错误 |
| 命令注入 | AST | 临界 | 对exec/spawn/eval的未初始化输入 |
| 权限过大 | AST | 中高 | 功能过多与描述不符 |
| 数据过滤 | AST | 高临界 | 敏感数据读取+出站网络 |
| 秘密检测 | 模式 | 介质关键 | 硬编码API密钥、令牌、凭据 |
合规框架
- OWASP代理商前10名 -每个发现都对应其OWASP类别
- 广告MCP Top 25 -每个发现都映射到其Adversa类别
配置
创建一个 .shieldagentrc.json 在项目根目录中:
{
"scanners": {
"command-injection": { "enabled": true, "severity": "critical" },
"tool-poisoning": { "enabled": true }
},
"exclude": ["tests/**", "node_modules/**"],
"format": "table",
"ci": false
}程序化API
import {
ScanEngine,
createDefaultRegistry,
loadMCPServer,
formatOutput,
} from 'shieldagent';
const registry = createDefaultRegistry();
const engine = new ScanEngine(registry);
const target = await loadMCPServer('./my-mcp-server');
const result = await engine.scan(target, {
scanners: ['command-injection', 'tool-poisoning'],
format: 'json',
});
console.log(`Found ${result.findings.length} issues`);
const output = formatOutput(result, 'json');GitHub操作集成
name: MCP Security Scan
on: [push, pull_request]
jobs:
security-scan:
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- run: pnpm add -g shieldagent
- run: shieldagent scan . --format sarif > results.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
if: always()CLI参考
shieldagent scan
[options]
Options:
-f, --format Output format: table, json, sarif (default: "table")
-s, --scanners Specific scanners to run
-e, --exclude
Glob patterns to exclude from scanning
-c, --config
Path to config file
--ci CI mode: exit with code 1 if findings detected
-v, --verbose Verbose output
-V, --version Output version number
-h, --help Display help许可证
麻省理工学院
