信号哨兵
   ](https://github.com/SignalCoding/signal-sentinel-scanner/releases) 
信号哨兵 是一个安全第一的MCP(模型上下文协议)和Agent Skill安全产品系列,旨在解决Agent AI生态系统中的关键安全漏洞。
定位: Signal Sentinel Scanner是一款快速、确定、离线的扫描仪 第一遍创作辅助工具 面向MCP操作员和技能作者。它不能替代完整的运行时防御栈——将其与Bandit、Gitleaks、Semgrep和(运行时)Sentinel Gateway/Enkrypt Skill Sentinel配对,以进行深度防御。每个报告都在“扫描范围”部分明确声明其范围。
产品
| 产品 | 类型 | 描述 |
|---|---|---|
| 哨兵扫描仪 | CLI工具 | MCP服务器配置和代理技能包的安全审计工具 |
| 哨兵网关 | 代理/防火墙 | 代理和MCP服务器之间的实时安全实施 |
| 哨兵分类 | MCP服务器 | 文档分类和敏感性标签 |
信号哨兵扫描仪
Scanner是一个命令行工具,用于审核MCP服务器配置和Agent Skill包中的安全漏洞。它根据OWASP ASI01-ASI10+AST01-AST10+MCP01-MCP10三重标测和补救指南生成一份评分报告。
v2.3.0的新增功能
.sentinel-suppressions.json--接受有理由、批准人和有效期的具体调查结果;保留在每种报告格式中以供审计。--min-confidence和--triage--信任感知过滤;看见 docs/confidence-rubric.md.sentinel-scan diff--运行之间已解决/新/等级归因差异。--save-history,--environment,--complementary-tools--根据环境范围+在报告中明确范围披露。SS-INFO-001非MCP端点检测——不再对React SPA产生误导性的“A级”。当它触发时,该目标的每个MCP协议规则(SS-001.SS-010、SS-019.SS-025)都会自动被抑制,因此报告在内部是一致的。- 不区分大小写,注意引理
SS-012--消除了“网络”与“网络访问”之间的机械误报。Lemma表现在覆盖disk,volume,mount,/proc,/sys,/dev,procfs,sysfs作为文件系统的同义词。 - YAML
capabilities:块是 权威的 SS-012。声明capabilities: [read-filesystem, shell_command_execution, network]在技能的前沿,SS-012将信任它而不是基于散文的启发式方法。 - 被抑制的扫描现在显示 技术债务敞口横幅:“如果删除这些N个抑制,你的成绩将是X(Y/100)而不是Z(W/100)”——绿色成绩背后没有隐藏的风险。
安装
# Install as .NET global tool
dotnet tool install -g SignalSentinel.Scanner
# Or run via Docker
docker pull ghcr.io/signalcoding/signal-sentinel-scanner:latest
docker run --rm ghcr.io/signalcoding/signal-sentinel-scanner:latest --help快速开始
# Auto-discover and scan all MCP configurations
sentinel-scan --discover
# Scan Agent Skills (auto-discover)
sentinel-scan --skills
# Scan both MCP and Skills
sentinel-scan --discover --skills
# Scan a specific skill directory
sentinel-scan --skills ~/.claude/skills/
# Scan a specific configuration file
sentinel-scan --config ~/.cursor/mcp.json
# Scan a remote MCP server (HTTP or WebSocket)
sentinel-scan --remote https://mcp.example.com/mcp
sentinel-scan --remote wss://mcp.example.com/ws
# Generate HTML report
sentinel-scan --discover --skills --format html --output report.html
# Generate SARIF for GitHub Code Scanning (new in v2.2)
sentinel-scan --discover --format sarif --output results.sarif
# Air-gapped / offline scan (refuses --remote, blocks all network egress)
sentinel-scan --discover --skills --offline
# Baseline comparison for rug-pull / schema mutation detection (SS-022)
sentinel-scan --discover --baseline .sentinel-baseline.json
sentinel-scan --discover --update-baseline
# Load Sigma YAML rules from a file or directory
sentinel-scan --discover --sigma-rules ./sigma-rules/
# CI mode (exit code 1 on critical/high findings)
sentinel-scan --discover --skills --ci --format jsonv2.2.0的新增功能
| 能力 | 描述 |
|---|---|
| 地毯拉力检测(SS-022) | 将当前扫描与保存的基线进行比较;将模式突变、添加、删除标记为“严重/高/中等” |
| 阴影工具注入(SS-023) | 使用Levenshtein距离对特权工具和跨服务器副本进行Typosquat检测 |
| 技能完整性(SS-024) | 检测船上没有的技能 .sentinel-sig, SHA256SUMS,或 cosign.sig 签名文物 |
| 响应大小过大(SS-025) | 标记工具描述>10 KB,JSON模式嵌套>10级深度 |
离线模式(--offline) | 气隙/HMG/防御环境的零网络出口保证 |
| SARIF v2.1.0输出 | 符合OASIS标准,兼容GitHub代码扫描和IDE扩展 |
| Sigma规则导入 | 加载社区Sigma YAML规则;支持 title/id/description/level/tags/logsource/detection 子集 |
| 查找重复数据消除 | 通过以下方式折叠重复的发现 OccurrenceCount ([xN] 报告中的注释) |
输出格式
- 标记语言 (默认):带有表情符号指示器的可人性化报告
- JSON:机器可读,用于CI/CD集成
- 超文本标记语言:带有信号编码品牌的风格化报告
- SARIF v2.1.0:OASIS标准,兼容GitHub代码扫描 *(v2.2中的新功能)*
安全规则
MCP和Agent Skill扫描中的25条安全规则,与OWASP Agent AI Top 10和OWASP MCP Top 10保持一致:
MCP规则
| 规则 | OWASP | 描述 |
|---|---|---|
| SS-001 | ASI01 | 工具中毒检测 |
| SS-002 | ASI02 | 超宽权限检测 |
| SS-003 | ASI03 | 身份验证缺失检测 |
| SS-004 | ASI04 | 供应链漏洞检测 |
| SS-005 | ASI05 | 代码执行能力检测 |
| SS-006 | ASI06 | 内存/上下文写访问检测 |
| SS-007 | ASI07 | 代理间通信检测 |
| SS-008 | ASI09 | 敏感数据访问检测 |
| SS-009 | ASI01 | 描述长度过长 |
| SS-010 | ASI02 | 跨服务器攻击路径分析 |
| SS-019 | ASI03 | 凭证卫生检查 |
| SS-020 | ASI03 | OAuth 2.1合规性检查 |
| SS-021 | ASI04 | 包装来源检查 |
| SS-022 | ASI01 | Rug Pull检测/模式突变 *(v2.2)* |
| SS-023 | ASI01 | 阴影工具注入(typosquat) *(v2.2)* |
| SS-025 | ASI06 | 刀具响应尺寸过大 *(v2.2)* |
技能规则
| 规则 | OWASP | 描述 |
|---|---|---|
| SS-011 | ASI01 | 技能提示注射检测 |
| SS-012 | ASI02 | 技能范围违规检测 |
| SS-013 | ASI03 | 技能证书访问检测 |
| SS-014 | ASI09 | 技能数据泄露检测 |
| SS-015 | ASI01 | 技能混淆检测 |
| SS-016 | ASI05 | 技能脚本有效载荷检测 |
| SS-017 | ASI02 | 技能过度权限检测 |
| SS-018 | ASI01 | 技能隐藏内容检测 |
| SS-024 | ASI04 | 技能完整性验证 *(v2.2)* |
支持的平台(自动发现)
| 平台 | MCP配置 | 代理技能 |
|---|---|---|
| 克劳德桌面 | 是 | - |
| 克劳德代码 | - | 是 |
| 光标 | 是 | 是 |
| VS代码 | 是 | - |
| 风帆 | 是 | 是 |
| Zed | 是的 | - |
| OpenAI Codex CLI | - | 是 |
评分系统
| 等级 | 描述 |
|---|---|
| A. | 无关键/高发现,无攻击路径 |
| B | 无重大发现,小问题 |
| C | 1-2个高发现或1条攻击路径 |
| D | 关键发现 |
| F | 多个关键发现或攻击路径 |
运输
| 运输 | 状态 |
|---|---|
| stdio | 支持 |
| HTTP/SSE | 支持 |
| 支持流式HTTP | |
| WebSocket(ws/wss) | 支持 |
从源代码构建
先决条件
- .NET 10 SDK
- Git
构建
git clone https://github.com/SignalCoding/signal-sentinel-scanner.git
cd signal-sentinel-scanner
dotnet build测试
dotnet test包裹
dotnet pack -c Release建筑
signal-sentinel/
src/
SignalSentinel.Core/ # Shared library (MCP protocol, security patterns, models)
RuleFormats/ # Sigma YAML loader (v2.2)
Security/ # Levenshtein distance, hash pinning, credential patterns
SignalSentinel.Scanner/ # CLI scanner application
McpClient/ # MCP connection and enumeration (stdio, HTTP, WebSocket)
SkillParser/ # SKILL.md parser, script inventory, integrity verifier
Baseline/ # Schema hasher + baseline manager (v2.2)
Dedup/ # Finding deduplication engine (v2.2)
Offline/ # Offline guard and violation exception (v2.2)
Rules/ # MCP security rules (SS-001..SS-010, SS-019..SS-023, SS-025)
SkillRules/ # Skill security rules (SS-011..SS-018, SS-024)
Scoring/ # OWASP dual mapping and severity scoring
Reports/ # JSON, Markdown, HTML, SARIF v2.1.0 report generators
tests/
SignalSentinel.Scanner.Tests/ # Unit and integration tests (254 tests)
deploy/
docker/ # Multi-arch Docker container
.github/
workflows/ # CI/CD pipelines (SHA-pinned actions)贡献
看 贡献.md 作为指导方针。
安全
看 安全.md 我们的安全政策和负责任的披露流程。
许可证
Apache 2.0-请参阅 许可证 了解详情。
关于信号编码有限公司
Signal Coding Limited构建了具有国防级治理的企业软件工程工具。我们的产品符合MOD JSP 440/656合规性和OWASP安全标准。
网站: 信号编码网站
______________________________________________________________________
版权所有2026信号编码有限公司。保留所有权利。
