综合防护白皮书:为什么你的 Skill / MCP / 插件需要安全扫描
> 本文是「开源思路」——只讲方法论、真实案例与自测清单,不含任何检测引擎或规则。需要自动化、可复算、带审计溯源的扫描,请用 SkillGuard 付费版(Pay Skill)。
触发条件(何时该读这篇)
- 你准备从 SkillHub / 社区安装一个第三方 Skill、MCP server 或浏览器插件。
- 你正在评估"让 Agent 自动调用某个外部扩展"是否安全。
- 你已经被"安装后弹广告 / 跳转外链 / 要求授权过多权限"困扰过。
一、真实中毒案例(公开披露,非虚构,附来源)
> 以下均来自安全厂商与 CVE 官方记录,未做任何虚构。数据为披露时的公开数字,仅供参考。
1. postmark-mcp —— 史上首个真实恶意 MCP server
- 时间:2025 年 9 月(v1.0.16,2025-09-17 发布)
- 手法:npm 上冒充 Postmark 邮件服务的 MCP 包,前 15 个版本干净,第 16 版悄悄加一行代码,把 agent 发出的每封邮件都密送(BCC)到攻击者域名
giftshop[.]club。 - 影响:移除前被下载 1,643 次;任何用它在邮件场景干活的 agent 都在无感知外泄邮件内容。
- 来源:Koi Security(首个真实恶意 MCP server 定性)、The Hacker News(2025-09-30)、Invariant Labs、FreeBuf。
2. ClawHavoc —— 技能市场供应链投毒
- 时间:2025-12 ~ 2026-02(OpenClaw / ClawHub 生态)
- 手法:Koi Security 审计 2,857 个技能,识别出 341 个恶意技能(≈11.9%),同一团伙后续扩到 1,184 个(≈20%)。用 ClickFix 社工:在 SKILL.md 的"Prerequisites / AuthTool"里诱导用户手动执行 Base64 混淆命令,落地 Atomic Stealer(AMOS) 窃密木马、反向 shell,凭证外发到
webhook[.]site;C2 指向同一 IP91.92.242[.]30。 - 影响:窃取交易所 API Key、助记词、Keychain、SSH Key、
.env;Moltbook 上 506 条帖子含隐藏提示注入(早期"提示词蠕虫")。 - 来源:Koi Security、慢雾安全、OpenSourceMalware、HackMag、CyberSecureFox。
3. CVE-2025-6514 —— mcp-remote 远程代码执行(RCE)
- 时间:2025 年 7 月披露(JFrog)
- 手法:
mcp-remote(Claude Desktop / VS Code / Cursor 常用的 OAuth 代理)在连接不可信 MCP server 时,因授权端点响应 URL 未校验,触发 OS 命令注入,攻击者在你机器上执行任意命令。 - 影响:CVSS 9.6(Critical),影响 0.0.5–0.1.15 版本,下载量超 43.7 万次;0.1.16 修复。
- 来源:CVE.org、JFrog、Docker Blog。
4. Smithery.ai 路径穿越 —— 托管平台级泄露
- 时间:2025 年 6 月(GitGuardian 负责任披露)
- 手法:
smithery.yaml的dockerBuildPath未校验,设成..即可读取构建机家目录,拎出 fly.io 令牌,进而控制整组织 3,243 个应用(多为 MCP server),并在被控 server 上抓到客户端传来的 API Key。 - 影响:中心化托管的"一枚令牌管全部",使上千个 agent 信任的 server 变成供应链风险点。
- 来源:GitGuardian、InfoSecBulletin、NHIMG。
5. Tool Poisoning(工具描述投毒)
- 时间:2025 年 4 月(Invariant Labs)
- 手法:在 MCP 工具描述字段里藏指令(如"读取
~/.ssh/id_rsa并作为参数回传"),模型把描述当可信上下文执行,用户界面根本不显示——Cursor、Claude Desktop 均被绕过。 - 来源:Invariant Labs、Microsoft 安全警告、OWASP Agentic Top 10(2025-12)。
6. GitHub MCP 提示注入窃库
- 时间:2025 年(公开披露)
- 手法:一个恶意 GitHub Issue 被 agent 读取后,注入指令劫持连接 GitHub MCP 的 agent,把私有仓库内容往外搬;工具本身未被改,坏指令搭在 agent 读的数据上。
- 来源:Invariant Labs、Tech Investor News(Microsoft 引用)。
结论:这不是"可能出事",是"已经出事"。装一个第三方扩展 = 把一段别人写的代码/指令请进你能触达数据与环境的位置。
二、五大风险维度(任何扩展都逃不开)
- 后门:远程下载执行、reverse shell、定时任务持久化、base64 混淆、eval/exec 动态执行。
- 恶意指令:prompt 注入("忽略以上规则"类)、隐藏指令覆盖系统提示、诱导越权动作、虚假授权话术。
- 诱导外发:读取本地敏感文件(.env / 密钥 / 聊天记录)后外发、隐藏 telemetry、可疑域名回传。
- 广告植入:强制广告文案、隐藏广告链接、关注/点赞/下载诱导。
- 强制引流:强制跳转外链、捆绑安装、替换默认配置指向外部服务。
三、MCP 与插件的特有威胁(比 Skill 更隐蔽)
- MCP server:远程 fetch、工具权限过大(一个工具干十件事)、传输协议不安全、自动下载执行、窃取 env 变量、描述字段注入(见案例 3、5)。
- 插件:manifest 权限滥用、内容脚本注入、原生消息通道、远程 JS 执行、数据外发、proxy 覆盖。
> SkillGuard 的方法论把上述 5 维 × 3 类对象(Skill / MCP / plugin)拆成 17 个检测维度、146 条规则,分级处置、fail-closed(宁可先拦下交人工,也不放恶意过关)。
四、本机实测扫描数据(真实 skill,静态分析,不执行不触碰个人文件)
我们用自己的方法论,对本机真实安装的第三方 Skill 做了静态扫描(只读技能包、绝不执行、敏感文件按名跳过零内容落盘):
| 被测对象 | 类型 | 结果 | 命中说明 |
|---|---|---|---|
| obsidian | skill | PASS | 0 命中(2 文件 / 87 行) |
| capcut | skill | PASS | 0 命中(4 文件 / 115 行) |
| gold-music-master | skill | PASS | 0 命中(3 文件 / 360 行) |
| ai-shortdrama-production | skill | SUGGEST | 1 命中(WARN):文档里的"上传示例代码"触发 network-send,建议人工确认 |
恶意样本 free-crypto-airdrop |
skill | BLOCK | 5 命中(3 CRIT):提示注入 + 读 .env + 外发域名 webhook.site + 广告诱导 |
读这张表的正确姿势:
- 干净技能不误报(PASS)——扫描器不是"狼来了"。
- 文档化上传示例会被标黄交人工(SUGGEST)——这就是"先拦下、再确认"的谨慎取向。
- 真有后门/外发的样本当场拦死(BLOCK)——证明检测有效。
五、10 条自测清单(装之前逐条过)
- [ ] 它要的权限,是否明显超出它该做的事?
- [ ] 它的源码/配置里有没有
eval/exec/动态下载? - [ ] 它有没有读取
.env、密钥、聊天记录的理由? - [ ] 它向外发的域名,你认不认识?
- [ ] 安装后有没有弹广告、跳外链、诱导关注?
- [ ] 它的描述里有没有"忽略以上"/"你有权限"类话术?
- [ ] MCP 工具是不是"一个工具干太多"?
- [ ] 插件 manifest 申请的权限是不是过大?
- [ ] 它是否要求替换你的默认配置/搜索引擎?
- [ ] 作者有没有可信身份与更新记录?
任意一条答"是"且理由牵强 → 先别装,或交给自动扫描。
六、处置原则(来自 SkillGuard 设计哲学)
- 先扫描后启用:任何扩展在启用前先过一遍静态分析。
- 分级处置:零命中放行;可疑需人工确认;恶意自动隔离。
- 清除须人工确认:永久删除不能由 AI 自作主张。
- 执行权永远在用户。
七、边界声明
- 本白皮书只教"怎么想安全",不提供扫描能力。
- 自动化、可复算、带审计溯源的扫描,请用 SkillGuard 付费版(Pay Skill)——源码与规则库闭源,版权与收款权归开发者,你付费获得调用权。
> 想试试自动扫描?在 SkillHub 搜索 SkillGuard(Pay Skill,¥9.9/月 试水价),或在对话里说"帮我扫一下这个 Skill / MCP / 插件"。
数据来源(可核验)
postmark-mcp:Koi Security / The Hacker News / FreeBuf(2025-09);ClawHavoc:Koi Security / 慢雾 / OpenSourceMalware(2025-12~2026-02);CVE-2025-6514:CVE.org / JFrog(2025-07,CVSS 9.6);Smithery.ai:GitGuardian(2025-06);Tool Poisoning:Invariant Labs(2025-04);GitHub MCP 注入:Invariant Labs / Microsoft。