使用说明
守るべきものを、守る。
感觉 是专为MCP(模型上下文协议)生态系统和AI代理工具链构建的安全扫描器。在广泛的表面区域工具松散地扫描一切的地方,Sentori深入研究了快速注射、供应链中毒、MCP配置错误、秘密泄漏和通用扫描仪完全错过的代理攻击媒介。
深度大于广度。从第一天起就是MCP本地人。
🚀 快速开始
# Scan current directory
npx @nexylore/sentori scan
# Scan a specific agent project
npx @nexylore/sentori scan ./path/to/agent
# JSON output for CI/CD pipelines
npx @nexylore/sentori scan ./path/to/agent --json
# Save report to file
npx @nexylore/sentori scan ./path/to/agent --output report.json
# Enable deep scan (OCR on images)
npx @nexylore/sentori scan ./path/to/agent --deep-scan
✨ v0.13.0的新增功能
AI-BOM输出(CycloneDX 1.6)
将扫描结果导出为CycloneDX AI-BOM,以符合欧盟人工智能法案和审计证据:
npx @nexylore/sentori scan . --format cyclonedx --output ai-bom.json
GitHub代码扫描集成
将结果直接上传到GitHub安全选项卡:
- uses: TakumaLee/Sentori@main
with:
upload-sarif: 'true'
MCP注册表IOC自动更新
每次扫描时自动获取最新的已知恶意MCP服务器列表。
A2A协议安全(7条新规则)
涵盖代理卡伪造、身份欺骗、重放攻击、能力升级、, 以及Google A2A多代理环境中的恶意输出模式。
为什么是森托里?
2026年的AI代理使用真正的工具访问:文件系统、API、数据库、代码执行。单个受损的MCP服务器或技能包可以升级为完全的系统访问权限,不需要漏洞利用链。
通用SAST工具无法理解代理攻击面。 他们不会抓住:
- MCP工具描述中嵌入的快速注入
- 对技能登记处的公约抢注攻击
- 代理工具中的隐蔽DNS/ICMP泄漏通道
- 图像元数据中隐藏的视觉提示注入
- 通过知识库中的重复攻击导致RAG中毒
Sentori是专门为这些代理威胁载体而构建的。
🔍 36个安全扫描仪
Sentori船只 36台扫描仪 7个类别:
🔗 供应链和代码完整性
| 扫描仪 | 它能捕捉到什么 |
|---|---|
| 供应链扫描器 | Base64隐藏命令、RCE模式、IOC阻止列表、凭证盗窃、数据泄露、持久性机制 |
| 安装后扫描仪 | 恶意 postinstall 在软件包安装时执行的脚本 |
| LangChain序列化扫描器 | LangChain和代理管道中的不安全酸洗/反序列化 |
| 常规蹲式扫描仪 | 拼写错误、前缀劫持、技能和MCP服务器名称的名称空间混淆 |
| NPM认证扫描仪 | 验证npm包认证和OIDC来源签名,以确保供应链的完整性 |
| IDE规则注入扫描器 | 恶意 .cursorrules, .windsurfrules, .github/copilot-instructions.md 将提示注入开发人员IDE |
💉 快速注射和对抗
| 扫描仪 | 它能捕捉到什么 |
|---|---|
| 快速注射测试仪 | 提示、MCP工具描述和面向用户的文本中的已知注入模式 |
| 视觉提示注射扫描仪 | 图像中嵌入的隐藏指令(alt文本、元数据、隐写术) |
| RAG中毒扫描仪 | RAG知识库中的重复攻击和内容中毒 |
| 红队模拟器 | 模拟越狱、角色扮演漏洞、多回合攻击和间接注入向量 |
🔐 机密和数据保护
| 扫描仪 | 它能捕捉到什么 |
|---|---|
| 秘密泄漏扫描仪 | API密钥、令牌、密码、代码和配置之间的私钥 |
| 剪贴板Exfiltration扫描仪 | 用于无声数据盗窃的剪贴板访问模式 |
| DNS/ICMP工具扫描程序 | 通过代理工具中的DNS隧道或ICMP通道进行隐蔽数据泄露 |
🛡️ 配置和权限
| 扫描仪 | 它能捕捉到什么 |
|---|---|
| DXT安全扫描仪 | 不安全的Claude桌面扩展——执行不受限制,文件/网络访问不受限制 |
| MCP配置审计员 | 危险的MCP服务器配置、特权过高的工具、缺少身份验证 |
| 代理配置审计员 | 危险的代理配置、缺失的安全护栏和速率限制 |
| 卫生审计员 | 权限过宽、缺少访问控制、默认值有风险 |
| 权限分析器 | 权限授予过多,缺少最小权限执行 |
| 环境隔离审核员 | 缺少沙盒、共享环境、容器逃逸风险 |
| Tetora配置审计员 | Tetora代理配置安全——不安全的调度设置、缺少护栏、特权过多的角色 |
🧪 建筑与国防
| 扫描仪 | 它能捕捉到什么 |
|---|---|
| 技能审核员 | 技能包结构问题、不安全模式、缺少验证 |
| 通道表面审计员 | 多通道攻击面,无保护的输入通道 |
| 防御分析器 | 缺少防御层,安全架构存在漏洞 |
🔮 MCP专家套房
| 扫描仪 | 它能捕捉到什么 |
|---|---|
| MCP刀具阴影检测器 | 模仿合法MCP服务器工具拦截调用的工具名称——相似名称(Levenshtein距离)、分隔符交换(read-file 对比 read_file),以及案例差异(Bash 对比 bash) |
| MCP Git CVE扫描程序 | 检查MCP服务器与已知CVE数据库的依赖关系 |
| MCP工具清单扫描仪 | 验证MCP工具清单是否存在架构问题、缺失字段和不安全的默认值 |
| MCP工具结果注入扫描仪 | 在MCP工具结果处理中检测注入向量——从工具返回给LLM的恶意有效载荷 |
🤖 代理框架安全
| 扫描仪 | 它能捕捉到什么 |
|---|---|
| 代理框架扫描器 | 跨多代理框架的安全问题——不安全的委托、缺失的护栏、未经验证的工具输出 |
| A2A安全扫描仪 | Google A2A(代理到代理)协议漏洞——未经身份验证的端点、缺少功能限制、不安全的任务委派 |
即将推出
- 代理环路检测器 --识别多步代理计划中的无限循环/资源耗尽风险
📊 安全评分
Sentori输出a 安全等级 (A+至F)基于4个维度的置信度加权结果:
╔══════════════════════════════════════════╗
║ Sentori Security Report ║
╠══════════════════════════════════════════╣
║ Security Grade: B+ (78/100) ║
║ Findings: 2 high · 5 medium · 3 low ║
║ Scanners: 36/36 active ║
╚══════════════════════════════════════════╝
三维评分
| 尺寸 | 重量 | 测量值 |
|---|---|---|
| 代码安全 | 35% | 供应链、秘密、代码中的注入模式 |
| 配置安全 | 25% | MCP配置、DXT清单、权限、通道 |
| 防御得分 | 25% | 护栏、沙箱、快速硬化 |
| 环境安全 | 15% | 隔离、共享环境风险、容器配置 |
基本规则: 如果任何一个维度得分为F(<60),则总得分上限为该维度的得分+10。安全性取决于最薄弱的环节。
置信水平
每一个发现都有一个 自信 影响其在分数中权重的级别:
| 信心 | 权重 | 分配时 |
|---|---|---|
definite |
1.0× | 直接模式匹配(例如,硬编码API键) |
likely |
0.8× | 低假阳性率的静态分析 |
possible |
0.6× | 推理分析(例如,缺失防御检测) |
第三方代码发现的权重为0.3倍(开发人员不能直接修复供应商提供的代码)。
CLI标志
| 标志 | 描述 |
|---|---|
--include-vendored |
在扫描中包括第三方/供应商目录 |
--json |
以JSON格式输出结果 |
--output <file> |
将JSON报告保存到文件 |
--context <app|framework|skill> |
设置严重性调整的扫描上下文 |
JSON输出
使用时 --json 或 --output,报告包括:
summary.dimensions--每个维度得分(codeSafety,configSafety,defenseScore,environmentSafety)summary.scannerBreakdown--按严重程度统计每个扫描仪的查找次数- 每个发现都包括
confidence现场(definite,likely,或possible)
🆚 Sentori vs其他
| 能力 | Sentori | mcp扫描(Snyk) | MEDUSA | 通用SAST |
|---|---|---|---|---|
| MCP配置审核 | ✅ 深 | ✅ 基础 | ❌ | ❌ |
| DXT(克劳德桌面)扫描 | ✅ | ❌ | ❌ | ❌ |
| 视觉提示注入(OCR) | ✅ | ❌ | ❌ | ❌ |
| IDE规则注入(.cursorules) | ✅ | ❌ | ❌ | ❌ |
| 公约蹲位检测 | ✅ | ❌ | ❌ | ❌ |
| MCP工具结果注入 | ✅ | ❌ | ❌ | ❌ |
| A2A协议安全 | ✅ | ❌ | ❌ | ❌ |
| DNS/ICMP泄漏通道 | ✅ | ❌ | ✅ | ❌ |
| RAG中毒 | ✅ | ❌ | ❌ | ❌ |
| 红队模拟 | ✅ | ❌ | ✅ | ❌ |
| 供应链(npm脚本) | ✅ | ❌ | ✅ | 部分 |
| 秘密检测 | ✅ | ❌ | 部分 | ✅ |
| 零配置,npx就绪 | ✅ | ✅ | ❌ | 变化多样 |
| CI/CD GitHub行动+SARIF | ✅ | ❌ | ❌ | 变化多样 |
| 安全等级评分 | ✅ | ❌ | ❌ | 变化多样 |
- mcp扫描 (被Snyk收购)——轻量级MCP服务器扫描器,现已集成到Snyk平台中
- 水母 --实时代理端点的框架级红队(运行时,而非源)
- 感觉 --部署前将代理代码库的静态扫描程序向左移动(作为运行时工具的补充)
💰 定价
| 计划 | 价格 | 功能 |
|---|---|---|
| 自由 | $0 | 所有36个扫描程序,CLI+npx,JSON/SARIF输出,GitHub Action,无限制本地扫描 |
| 专业云 | 每月29美元 | 免费+云扫描仪表板、团队报告、Slack/GitHub通知、扫描历史记录、优先级支持中的所有内容 |
| 企业 | 自定义 | Pro+中的所有内容自定义扫描程序规则、SSO/SAML、气隙部署、SLA、专用安全审查 |
Pro Cloud和Enterprise将于2026年第二季度上市。 加入候补名单→
🔧 CI/CD集成
GitHub操作
- name: Sentori Security Scan
uses: TakumaLee/Sentori@main
with:
scan-path: '.'
fail-on-critical: 'true'
output-format: 'text'
| 输入 | 描述 | 默认值 |
|---|---|---|
scan-path |
扫描路径 | . |
fail-on-critical |
关键发现的工作流程失败 | true |
output-format |
输出格式(text 或 json) |
text |
并发调优
Sentori并行运行扫描仪。默认并发性为 Math.min(5, cpu_count)在受约束的CI运行程序(例如GitHub Actions 2-core)上,使用OCR+正则表达式繁重的扫描程序减少它以避免OOM:
| 环境 | 推荐 --concurrency |
|---|---|
| GitHub操作(2核运行器) | 2 |
| 地方发展 | 5 (默认) |
通过CLI标志:
npx @nexylore/sentori scan --concurrency 2
通过环境变量:
SENTORI_CONCURRENCY=2 npx @nexylore/sentori scan
🛡️ 安全徽章
使用Sentori徽章直接在README中显示项目的MCP安全状态。
徽章URL格式
https://sentori.nexylore.com/api/badge/:owner/:repo
替换 :owner 使用您的GitHub用户名/org和 :repo 使用您的存储库名称。
Markdown嵌入
[](https://sentori.nexylore.com)
示例 (替换 OWNER 和 REPO 与你的价值观):
[](https://sentori.nexylore.com)
徽章状态级别
| 徽章 | 状态 | 描述 |
|---|---|---|
| 安全 | 未检测到安全问题 | |
| 警告 | 存在中等严重程度的发现 | |
| 关键的 | 检测到高或关键发现 | |
| 未扫描的 | 尚未扫描存储库 |
运作原理
- 跑
npx @nexylore/sentori scan在您的项目上,并通过 Sentori仪表板 - 徽章会自动反映您的最新扫描结果
- 每次新扫描后几分钟内徽章更新
📦 程序化API
import { ScannerRegistry, SupplyChainScanner, DxtSecurityScanner } from '@nexylore/sentori';
const registry = new ScannerRegistry();
registry.register(new SupplyChainScanner());
registry.register(new DxtSecurityScanner());
const report = await registry.runAll('./target-directory');
console.log(report.summary);
配置
.sentoriignore
创建一个 .sentoriignore 项目根目录中的文件,用于从扫描中排除路径(gitignore语法):
# Exclude vendored dependencies
vendor/
third_party/
# Exclude specific directories
docs/
examples/
自定义规则(.sentori.yml)
地点a .sentori.yml 在目标目录的根目录中定义特定于项目的规则、抑制发现或覆盖严重性级别:
version: 1
rules:
- id: no-hardcoded-aws-key
pattern: "AKIA[0-9A-Z]{16}"
severity: critical
message: "Hardcoded AWS access key ID"
files: "**/*.{ts,js,py}" # optional glob — defaults to all files
ignore:
- scanner: "Secret Leak Scanner"
file: "tests/**"
overrides:
- scanner: "Supply Chain Scanner"
severity: high
看 docs/sentori-yml.md 获取完整的模式参考。
IOC阻止列表
内置的IOC阻止列表位于 src/data/ioc-blocklist.json.提供一个外部JSON文件来扩展它:
npx @nexylore/sentori scan ./agent --ioc ./custom-ioc-blocklist.json
发展
npm install
npm run build
npm test
关于Nexylore
感觉 由以下人员建造和维护 Nexylore --一家专注于代理人工智能时代的安全工具公司。
守护应该守护的东西。 --保护必须保护的东西。
许可证
BSL 1.1 ©Nexylore
免费使用 用于扫描您自己的项目、内部CI/CD、教育和研究。 商业限制 仅适用于构建相互竞争的安全扫描服务。 转换为 Apache 2.0 2030年3月16日。