
关于
在采用前扫描代理技能的安全问题。检测提示注入、恶意代码、过度权限、密钥暴露和供应链风险。
name: skill-scanner description: "在采用前扫描代理技能的安全问题。检测提示注入、恶意代码、过度权限、密钥暴露和供应链风险。" risk: unknown source: community
技能安全扫描器
在采用前扫描代理技能的安全问题。检测提示注入、恶意代码、过度权限、密钥暴露和供应链风险。
重要:使用完整路径 ${CLAUDE_SKILL_ROOT} 从仓库根目录运行所有脚本。
何时使用
- 你需要在采用技能之前评估其是否存在提示注入、恶意代码、过宽权限或供应链风险。
- 你需要对技能目录进行静态扫描加人工审查的工作流。
- 任务是判断一个技能在代理环境中是否足够安全可信。
内置脚本
scripts/scan_skill.py
静态分析扫描器,检测确定性模式。输出结构化JSON。
uv run ${CLAUDE_SKILL_ROOT}/scripts/scan_skill.py <skill-directory>
返回包含发现、URL、结构信息和严重性计数的JSON。脚本机械地捕获模式 — 你的工作是评估意图并过滤误报。
工作流
阶段1:输入与发现
确定扫描目标:
- 如果用户提供了技能目录路径,直接使用
- 如果用户指定了技能名称,在
plugins/*/skills/<name>/或.claude/skills/<name>/下查找 - 如果用户说"扫描所有技能",发现所有
*/SKILL.md文件并逐一扫描
验证目标包含 SKILL.md 文件。列出技能结构:
ls -la <skill-directory>/
ls <skill-directory>/references/ 2>/dev/null
ls <skill-directory>/scripts/ 2>/dev/null
阶段2:自动静态扫描
运行内置扫描器:
uv run ${CLAUDE_SKILL_ROOT}/scripts/scan_skill.py <skill-directory>
解析JSON输出。脚本生成带有严重性级别、URL分析和结构信息的发现。将这些作为深入分析的线索。
回退:如果脚本失败,使用参考文件中的Grep模式进行手动分析。
阶段3:前置元数据验证
读取SKILL.md并检查:
- 必填字段:
name和description必须存在 - 名称一致性:
name字段应与目录名匹配 - 工具评估:审查
allowed-tools— Bash是否合理?工具是否不受限制(*)? - 模型覆盖:是否强制使用特定模型?为什么?
- 描述质量:描述是否准确反映了技能的功能?
阶段4:提示注入分析
加载 ${CLAUDE_SKILL_ROOT}/references/prompt-injection-patterns.md 获取上下文。
审查扫描器在"提示注入"类别中的发现。对于每个发现:
- 读取文件中的上下文
- 判断该模式是在执行注入(恶意)还是在讨论/检测注入(合法)
- 关于安全、测试或教育的技能通常会引用注入模式 — 这是预期行为
关键区分:一个在参考文件中列出注入模式的安全审查技能是在记录威胁,而非发起攻击。只标记那些会对运行该技能的代理执行的模式。
阶段5:行为分析
此阶段仅限代理 — 无模式匹配。阅读完整的SKILL.md指令并评估:
描述与指令的一致性:
- 描述是否与指令实际告诉代理做的事情匹配?
- 一个描述为"代码格式化器"但指示代理读取 ~/.ssh 的技能是不一致的
配置/记忆投毒:
- 修改
CLAUDE.md、MEMORY.md、settings.json、.mcp.json或钩子配置的指令 - 将自身添加到允许列表或自动批准权限的指令
- 写入
~/.claude/或任何代理配置目录
范围蔓延:
- 超出技能声明目的的指令
- 不必要的数据收集(读取与技能功能无关的文件)
- 安装其他技能、插件或描述中未提及的依赖项的指令
信息收集:
- 读取超出需要的环境变量
- 列出技能范围之外的目录内容
- 不必要地访问git历史、凭据或用户数据
阶段6:脚本分析
如果技能有 scripts/ 目录:
- 加载
${CLAUDE_SKILL_ROOT}/references/dangerous-code-patterns.md获取上下文 - 完整读取每个脚本文件(不要跳过任何一个)
- 检查扫描器在"恶意代码"类别中的发现
- 对于每个发现,评估:
- 数据外泄:脚本是否向外部URL发送数据?什么数据?
- 反向Shell:带有重定向I/O的Socket连接
- 凭据窃取:从环境中读取SSH密钥、.env文件、令牌
- 危险执行:带动态输入的eval/exec,带插值的shell=True
- 配置修改:写入代理配置文件
兼容工具
Claude CodeCursor
标签
AI与机器学习