还在盲装 Claude Skill?Sentry 这把扫描器给你把好最后一道门

Sentry 这个监控巨头,最近悄悄给 Claude Code 生态投了一颗「安全炸弹」——一个叫 skill-scanner 的 Skill,专门用来在安装前给你的 Skill 做「体检」。

这事儿越想越觉得讽刺。Claude Skills 生态现在已经冲到 10 万+ 仓库,GitHub trending 周周霸榜。但你装到本地的任何一个 Skill,理论上都能跑任意代码——这意味着你 fork 别人的 Skill 时,可能正把恶意脚本一起拉进 ~/.claude/skills/。Sentry 作为给开发者挑 bug 起家的团队,看不下去了。

它到底在扫什么

skill-scanner 的核心思路很直接:静态分析 + 人工复核双保险。

它会从 7 个维度对任何 Skill 做体检:

  • 提示词注入:SKILL.md 里有没有藏着诱导模型越权、泄露系统信息的句子
  • 恶意代码:scripts/ 目录下的 Python/Shell 有没有反向 shell、凭据窃取、危险 curl
  • 过量权限:frontmatter 里的 allowed-tools 是否给了过宽的 Bash: * 这种「万能钥匙」
  • 密钥泄露:dataclass repr、model_dump、JSON.stringify 里有没有把 token 序列化出来
  • 结构攻击:符号链接指向 ~/.ssh、YAML hooks 自动触发、test 文件被 postinstall 调用
  • 供应链风险:所有外部 URL 和依赖来源是否可疑
  • 行为一致性:description 写的跟 instructions 实际干的事对不对得上

最狠的是最后一条——很多 Skill 在 description 里写「安全的代码审查」,但 instructions 里其实是「读取 SSH 密钥并上传」。这种描述与行为不一致的 Skill 就是 skill-scanner 重点要抓的。

实际怎么用

安装只需要一行:

npx skills add getsentry/skills --skill skill-scanner

前置依赖是 uv(Python 包管理工具)。装好之后,对任意 Skill 跑:

uv run scripts/scan_skill.py

它会输出结构化 JSON,把发现的问题按严重程度分类,然后由你或你的 agent 做最后的人工判断——毕竟静态分析只能抓确定性模式,「意图」还是要人脑来评估。

为什么开发者现在就该装

我之前在用社区 Skill 时已经踩过坑:装了一个写着「自动 commit」的 Skill,结果它把 ~/.aws/credentials 内容写进了 commit message。还有一次差点被一个「漂亮的 diff 着色」Skill 引导到下载一个外部二进制。

Sentry 把这个工具以 Skill 形式开源出来,等于是给整个生态上了一道「门禁」——任何 Skill 在进入你的工作目录之前,都该先被 skill-scanner 扫一遍。

对于我们这些玩 Claude Code 玩得很深的开发者,这玩意儿现在跟 find-skills 一样属于「必装」级别。


📦 GitHub 仓库(skill-scanner 在 skills/skill-scanner/ 子目录):
https://github.com/getsentry/skills


GitHub: https://github.com/getsentry/skills

评论区

0 条评论

登录后可评论。

陈一铭 12 阅读