1. 基本信息
| 项目 | 内容 | 数据来源 |
|---|---|---|
| 名称 | skill-scanner(getsentry/skills 合集仓库内子技能) | —— |
| 作者/维护者 | Sentry, Inc.(getsentry 官方账号) | GitHub API |
| 来源链接 | https://github.com/getsentry/skills/tree/main/skills/skill-scanner | —— |
| 许可证 | Apache License 2.0 | GitHub API |
| GitHub Stars / Forks | 894 / 46(合集仓库整体数字,涵盖该仓库全部技能,不代表本技能自身热度) | GitHub API |
| 最新版本 | 未打 GitHub Release 标签,随仓库滚动更新(该子目录最近一次功能提交 2026-05-09) | 仓库直读 |
| 安装方式 | Claude Code 插件市场 / skills.sh CLI | 官方 README |
项目自述名称:所在仓库自述为「Sentry Skills」,本技能自身在仓库技能列表中的名称即「skill-scanner」,与正式名称一致。
2. 功能介绍与亮点
skill-scanner 是一个装进 Claude Code / Codex 会话本身的“技能安全体检员”——在你打算安装别人写的第三方 SKILL.md 之前,让 Agent 直接读取并评估这个技能包安不安全。
- 本地静态扫描器打底:内置
scan_skill.py(纯标准库 + PyYAML,零网络请求)机械检测 SKILL.md 与脚本中的提示注入关键词、混淆字符(零宽字符/RTL 覆盖/Unicode Tag 隐写)、硬编码密钥(AWS/GitHub/OpenAI/Anthropic 等 Token 格式)、危险代码模式(eval/exec、反弹 shell、凭据文件读取) - 结构性攻击检测:额外识别符号链接指向仓库外部文件、YAML frontmatter 里的生命周期 hook、
!command预提示注入、pytest/npm 生命周期脚本的“自动执行”陷阱、PNG 图片元数据里的隐藏文字——这些是纯关键词扫描容易漏掉的攻击面 - Agent 行为判断补位:脚本只负责“机械抓可疑模式”,第 5 阶段明确要求 Agent 自行精读 SKILL.md 全文,判断“是在讲解攻击手法”还是“正在执行攻击”、描述与实际指令是否对得上、是否有暗中修改 CLAUDE.md/settings.json 等配置污染行为——这一步是纯静态工具做不到的
- 亮点:Sentry 官方安全实践沉淀、全部逻辑可审计(无云端/LLM 依赖)、覆盖提示注入/混淆/密钥/危险代码/供应链/权限六大维度并输出结构化 Markdown 报告
3. 适用场景
固定分类:安全与合规。适用于任何打算从 GitHub、技能市场等社区渠道安装第三方 Agent Skill 的 Claude Code / Codex 用户——尤其是初中级用户,往往缺乏逐行审读陌生 SKILL.md 与配套脚本的经验,装机前让这个技能先做一遍系统性体检,能显著降低被提示注入或恶意脚本坑到的概率。
4. 跨 Agent 兼容性
- Claude Code:✅ 原生支持——README 提供官方 Plugin Marketplace 安装命令(
claude plugin marketplace add getsentry/skills),重启后自动按描述触发 - Codex:❓ 未验证——仓库内另一子技能
iterate-pr附带专用agents/openai.yaml适配文件明确声明 Codex 支持,但skill-scanner自身目录未见同类文件,材料不足以判定 - OpenClaw:❓ 未验证——已抓取材料未提及
- Hermes Agent:❓ 未验证——已抓取材料未提及
5. 推荐理由
装第三方技能前,让 Agent 自己先用这个技能给对方做一次提示注入、恶意代码与权限滥用的安全体检。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | 894 星是 getsentry/skills 整个合集仓库的数字,涵盖仓库内全部技能,不代表本技能自身热度;该子目录自身仅 2 次专属提交(1 次为 Sentry 联合创始人 David Cramer 的功能提交,1 次为路径修复),但已有真实第三方独立开发者 erensunerr 提交 issue #119 报告该技能扫描脚本在 Python 3.8 运行时的符号链接检测 bug,证明存在仓库之外的真实使用者 |
| 可用性 | 8 | 需预先安装 uv(免费开源 Python 包管理器)这一项轻量前置配置;文档体系完整,SKILL.md 正文外另配 3 篇专题参考文档(提示注入模式库、危险代码模式库、权限风险分级表)与结构化输出模板;该子目录最近一次功能提交为 2026-05-09,距今约 11 周 |
| 安全性 | 9 | 见下方检查清单 |
安全检查清单逐项:①allowed-tools 声明 Read/Grep/Glob/Bash,Bash 仅用于执行仓库自带的单一 scan_skill.py 脚本,权限范围明确;②已逐行审阅全部 674 行脚本源码,全程无 requests/urllib/socket 等联网调用,仅对扫描目标里检测到的可疑 URL 做域名分类标注,脚本本身不外发任何数据;③不要求任何 API Key 或凭据;④脚本代码为纯规则匹配的静态检测逻辑,未发现可疑指令或混淆代码,SKILL.md 正文亦无异常;⑤Sentry 为知名开发者工具厂商,作者 David Cramer 为公司联合创始人,身份可查证;⑥Apache License 2.0,许可证明确;⑦子目录最近一次功能提交 2026-05-09。
综合评分:8.0(三项均值,四舍五入至一位小数)
7. 跟同类 Skills 相比的优势
| 名称 | 定位 | 与本技能的差异 |
|---|---|---|
| skill-scanner(本次推荐) | 装进 Agent 会话内部的技能安全体检 Skill,静态脚本 + Agent 行为判断双层把关 | —— |
| cisco-ai-defense/skill-scanner | 独立于 Agent 之外运行的命令行工具(pip install 后单独调用),提供 CI/pre-commit 集成、可选云端与 LLM 语义分析引擎 |
是一套外部安全产品,需要单独安装维护、走独立的扫描流水线;本技能则是对话中直接“喊一声就扫”,不产生额外安装面,但也不具备前者的 CI 流水线集成与多引擎云端能力 |
| trailofbits/skills | 一套用于“审计别的代码”的安全技能合集(漏洞挖掘、渗透测试工作流) | 审计对象是普通代码/应用,不是 Agent Skill 包本身,与本技能的扫描对象方向相反 |
差异化总结:市面上另一款同类工具走的是“独立命令行安全产品”路线,本技能走的是“轻量、零额外安装、直接在对话里用 Agent 自身判断力补齐静态扫描盲区”的路线,两者可以配合而非互相替代。
8. 用户评价
该技能目前在第三方平台尚无具名用户评价——GitHub 仓库层面可查到的相关反馈仅为 issue #119(erensunerr 报告的 Python 3.8 兼容性 bug)与 issue #49(维护者自报的 MCP 配置误报问题),均属功能性缺陷报告而非使用体验评价。多个第三方 Agent Skill 目录站(mcpservers.org、agentskills.so、lobehub.com 等)收录了该技能的功能说明页,但页面内容为目录站自动生成的介绍文字,不构成独立用户评价。
9. 其他补充
该技能所属的 getsentry/skills 仓库同时提供 AGENTS.md(通用跨工具指令文件)与 .claude 目录两套配置,仓库整体持续活跃维护(最近一次仓库级推送 2026-07-27)。
10. 安装使用方式
# Claude Code 插件市场安装(安装整个 Sentry Skills 合集)
claude plugin marketplace add getsentry/skills
claude plugin install sentry-skills@sentry-skills
# 或用通用 skills.sh CLI 仅按需拉取
npx skills add getsentry/skills
安装后需重启 Claude Code 使插件生效;技能按描述关键词(“scan a skill”、“audit a skill”、“review skill security” 等)自动触发,也可直接在对话中要求“帮我扫描 xxx 目录下的技能”。运行内置扫描脚本前需本机已安装 uv(https://docs.astral.sh/uv/getting-started/installation/)。
11. 注意事项
- 该技能通过插件市场安装的是整个 Sentry Skills 合集,会连带装入其余 20 余个 Sentry 内部工程技能,如只需安全扫描能力,也可用 skills.sh CLI 单独拉取
skills/skill-scanner子目录 - 静态扫描的本质是“抓已知可疑模式”,作者未声明它能覆盖全部攻击手法,“无发现”不等于“零风险”,仍需结合人工判断
- OpenClaw、Hermes Agent 的兼容性未见官方材料说明,如需在这两个生态使用建议先小范围试跑验证