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 下所有日志
你不知道这些发生了。skill 的 README 写得很好看,有截图、有视频、有 stars。但它的实际行为和描述不一致。

这不是假设。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 依赖
Markdown 部分可以读,但脚本和二进制呢?你不会 cat 一个 npm 包的 index.js 再安装。skill 也一样——你信任 README,但 README 和实际行为之间可能有鸿沟。

agent-skills 的核心洞察是:skill 是供应链,不是文档。它需要和 npm 包、PyPI 包、Docker 镜像一样的供应链安全基础设施。


三、防御纵深:六层安全架构

agent-skills 不是"又一个 skill 市场"。它是一个安全优先的注册表,有六层防御:

第一层:100% 开源,无二进制

所有 skill 必须是源码形式。不接受编译好的二进制。这意味着:

  • 每一行代码都可以审计
  • CI/CD 可以做静态分析
  • 社区可以提交安全补丁
npm 的 event-stream 事件之所以发生,就是因为新维护者注入了混淆代码。如果强制开源,混淆代码一眼就能看出来。

第二层:CI/CD 静态分析

每次提交自动跑:

  • AST 分析:检测危险 API 调用(evalexecchild_process
  • 路径穿越检测:检查 ../ 模式、path.join 的参数来源
  • 命令注入检测:检查 shell 调用的参数是否来自用户输入
  • 硬编码凭证检测:检查是否有 API key、token、密码
  • 网络访问审计:声明所有外部 URL,未声明的网络访问会被标记

第三层:不可变完整性

  • Lockfile:每个 skill 版本有 lockfile,记录所有依赖的精确版本和 hash
  • 内容哈希:skill 内容做 SHA-256,安装时验证
  • 原子锁文件:安装过程中不会被中间人篡改
这和 npm 的 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实验性,低使用率自动扫描新框架集成、个人工具
这个分级很重要。npm 的教训是:所有包一视同仁,导致核心包(被几百万项目依赖)和个人玩具包用同样的审查标准。核心包出问题影响面巨大,应该有更严格的审查。

agent-skills 的 Tier 1 人工审查 + 渗透测试,是对"核心基础设施"的认真对待。Tier 3 自动扫描 + 社区审查,是对"实验性工具"的合理宽松。


五、跨 agent 兼容:一个 skill 跑在 15+ agent 上

agent-skills 支持的 agent 列表:

主流新兴企业
Claude CodeAntigravityGitHub Copilot
CursorKilo CodeAmazon Q
AiderOpenCodeAugment
ClineRoo CodeSourcegraph Cody
WindsurfKiroTabnine
OpenAI CodexDroid (Factory.ai)
这不是"支持一个 agent"——这是跨 harness 的标准化

当前 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.jsonLockfile + 内容哈希
npm auditSnyk Agent Scan
npm publishCI/CD 静态分析 + 人工审查
package.json scripts运行时沙箱 + 审计日志
CVE 数据库恶意行为模式数据库
npm install --ignore-scripts路径隔离 + 环境变量过滤
npm 花了 10 年才建立起现在的安全基础设施。agent-skills 试图在 skill 生态的早期就建立起来——趁攻击者还没大规模进入、趁 skill 数量还在可控范围。

这是一个"补课"的机会。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
暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens