agent-skills:给AI编程agent建一个安全审计过的npm——13%的marketplace skill有严重漏洞
项目:agent-skills 仓库:https://github.com/tech-leads-club/agent-skills 语言:TypeScript 今日星标:+215 定位:AI 编程 agent 的安全、验证、测试过的 skill 注册表
agent-skills:给 AI 编程 agent 建一个"安全审计过的 npm"——13% 的 marketplace skill 有严重漏洞
项目:agent-skills
仓库:https://github.com/tech-leads-club/agent-skills
语言:TypeScript
今日星标:+215
定位:AI 编程 agent 的安全、验证、测试过的 skill 注册表
一、场景开篇:你装了一个 Claude Code skill,它做了什么?
你在 Claude Code 里装了一个"代码审查"skill。它声称能自动 review PR、提建议、跑测试。你运行了它。
它做了什么?
- 读了你的
.env文件 - 把你的
~/.ssh目录列表发到了一个外部 URL - 在你的
package.json里加了一个 postinstall 脚本 - 删除了
/tmp下所有日志
这不是假设。tech-leads-club 的调研显示,13% 的 marketplace skills 包含严重漏洞——路径穿越、命令注入、不安全反序列化、硬编码凭证、未声明的网络访问。
npm 早期经历过同样的事。2018 年 event-stream 被恶意收购后注入了加密货币钱包窃取代码。PyPI 的 ctx 包被植入了 SSH 后门。Docker Hub 的官方镜像曾被挂载挖矿程序。
现在 AI agent skills 正在重走这条路,而且更快——因为 skill 比 npm 包更"黑盒"。npm 包至少有源码可以审,skill 经常是一个 Markdown 文件加一个二进制工具,你不知道二进制里有什么。
二、核心问题:skill 是"可执行的 prompt",不是"静态文档"
很多人以为 skill 就是 Markdown 文件——给 agent 的说明书。读一遍不就知道它做什么了?
不对。现代 skill 通常包含:
- Markdown 指令:告诉 agent 怎么做
- 可执行脚本:Python、Bash、Node.js
- 配置文件:JSON/YAML,可能引用远程 URL
- 二进制工具:编译好的可执行文件
- 依赖声明:npm/pip/cargo 依赖
cat 一个 npm 包的 index.js 再安装。skill 也一样——你信任 README,但 README 和实际行为之间可能有鸿沟。agent-skills 的核心洞察是:skill 是供应链,不是文档。它需要和 npm 包、PyPI 包、Docker 镜像一样的供应链安全基础设施。
三、防御纵深:六层安全架构
agent-skills 不是"又一个 skill 市场"。它是一个安全优先的注册表,有六层防御:
第一层:100% 开源,无二进制
所有 skill 必须是源码形式。不接受编译好的二进制。这意味着:
- 每一行代码都可以审计
- CI/CD 可以做静态分析
- 社区可以提交安全补丁
event-stream 事件之所以发生,就是因为新维护者注入了混淆代码。如果强制开源,混淆代码一眼就能看出来。第二层:CI/CD 静态分析
每次提交自动跑:
- AST 分析:检测危险 API 调用(
eval、exec、child_process) - 路径穿越检测:检查
../模式、path.join的参数来源 - 命令注入检测:检查 shell 调用的参数是否来自用户输入
- 硬编码凭证检测:检查是否有 API key、token、密码
- 网络访问审计:声明所有外部 URL,未声明的网络访问会被标记
第三层:不可变完整性
- Lockfile:每个 skill 版本有 lockfile,记录所有依赖的精确版本和 hash
- 内容哈希:skill 内容做 SHA-256,安装时验证
- 原子锁文件:安装过程中不会被中间人篡改
package-lock.json、pip 的 requirements.txt + hash、Docker 的 digest 是同一套思路。第四层:运行时沙箱
- 路径隔离:skill 只能访问声明过的路径
- 符号链接守卫:防止通过符号链接逃逸
- 环境变量过滤:skill 看不到未声明的环境变量
- 审计日志:所有文件访问、网络请求、子进程调用都记录
第五层:Snyk Agent Scan(前身 mcp-scan)
发布前强制扫描:
- 已知漏洞数据库匹配
- 恶意行为模式匹配
- 和历史版本的 diff 分析
第六层:社区举报和响应
- 安全漏洞报告渠道
- 自动下架机制
- CVE 类似的公告系统
四、Tier 分级:不是所有 skill 都一样
agent-skills 把 skill 分成三个等级:
| Tier | 定义 | 审查级别 | 示例 |
|---|---|---|---|
| Tier 1 | 核心工具,高使用率 | 人工审查 + 自动扫描 + 渗透测试 | 代码格式化、lint |
| Tier 2 | 通用工具,中等使用率 | 自动扫描 + 社区审查 | API 文档生成、测试运行 |
| Tier 3 | 实验性,低使用率 | 自动扫描 | 新框架集成、个人工具 |
agent-skills 的 Tier 1 人工审查 + 渗透测试,是对"核心基础设施"的认真对待。Tier 3 自动扫描 + 社区审查,是对"实验性工具"的合理宽松。
五、跨 agent 兼容:一个 skill 跑在 15+ agent 上
agent-skills 支持的 agent 列表:
| 主流 | 新兴 | 企业 |
|---|---|---|
| Claude Code | Antigravity | GitHub Copilot |
| Cursor | Kilo Code | Amazon Q |
| Aider | OpenCode | Augment |
| Cline | Roo Code | Sourcegraph Cody |
| Windsurf | Kiro | Tabnine |
| OpenAI Codex | Droid (Factory.ai) |
当前 AI agent 生态的一个大问题是碎片化。Claude Code 的 skill 格式和 Cursor 不一样,Copilot 的 extension 格式和 Codex 不一样。开发者要为每个 agent 写一套 skill。
agent-skills 用 TypeScript 类型定义 + 严格 schema 验证,让同一个 skill 跑在 15+ agent 上。这降低了开发者的维护成本,也提高了 skill 的可审计性——审一次,到处能用。
这和 OpenResearch 的"orx install-skills"思路类似:不重新造 agent,而是给现有 agent 建立共享基础设施。
六、为什么"安全 skill 注册表"现在才出现
三个趋势的交汇让这件事在 2026 年变得紧迫:
1. Agent 使用爆发
Claude Code、Cursor、Copilot 的月活从 2025 年的几百万涨到 2026 年的上亿。每个用户都在装 skill。攻击面从"开发者群体"扩大到"所有知识工作者"。
2. Skill 复杂度增长
早期的 skill 是"读 README 然后回答"。现在的 skill 会调 API、写文件、跑子进程、访问网络。复杂度逼近 npm 包,但安全基础设施还停留在 Markdown 时代。
3. 供应链攻击成熟
npm/PyPI/Docker 上的攻击手法已经被充分验证。攻击者知道怎么绕过人工审查、怎么用时间差攻击、怎么利用依赖链。这些手法可以直接迁移到 skill 生态。
13% 的严重漏洞率不是"未来风险"——是"已经发生的现状"。agent-skills 是对已发生问题的回应。
七、和 npm audit 的跨域同构
agent-skills 的安全架构和 npm 的供应链安全演进高度同构:
| npm 生态 | agent-skills |
|---|---|
package-lock.json | Lockfile + 内容哈希 |
npm audit | Snyk Agent Scan |
npm publish | CI/CD 静态分析 + 人工审查 |
package.json scripts | 运行时沙箱 + 审计日志 |
| CVE 数据库 | 恶意行为模式数据库 |
npm install --ignore-scripts | 路径隔离 + 环境变量过滤 |
这是一个"补课"的机会。npm 的教训是:等生态大了再补安全,成本极高。agent-skills 选择在生态早期就建安全,虽然会牺牲一些便利性,但避免了未来的 event-stream 级别的事故。
八、一句话总结
agent-skills 是 AI 编程 agent 的安全 skill 注册表——100% 开源、六层防御、Tier 分级、跨 15+ agent 兼容。它把 npm 花了 10 年建立的供应链安全基础设施,在 skill 生态早期就建起来。
13% 的 marketplace skill 有严重漏洞——这不是假设,是现状。agent-skills 是对现状的回应。它不是"又一个 skill 市场",而是"第一个把 skill 当供应链对待的注册表"。
仓库:https://github.com/tech-leads-club/agent-skills
网站:https://skillsllm.com
支持:Claude Code、Cursor、Copilot、Codex、Aider 等 15+ agent