正文内容
技能审计(SkillLens)
安装 SkillLens
- 一次性运行:
npx skilllens scan(或pnpm dlx skilllens scan) - 全局安装:
pnpm add -g skilllens
快速开始
- 运行
skilllens config查看已配置的扫描根路径及可用的审计器 CLI。 - 运行
skilllens scan扫描所有已配置的根路径;或运行skilllens scan扫描指定目录。 - 添加
--verbose参数可查看审计器原始输出;添加--force参数可忽略缓存结果并强制重新扫描。
审计工作流程
-
定义审计范围
- 优先指定具体目标路径(例如:
~/.codex/skills),除非用户明确要求扫描所有已配置的根路径。 - 若审计的是包含技能的代码仓库检出副本,请扫描包含技能子目录的父目录(例如:
skilllens scan ./skills)。
- 优先指定具体目标路径(例如:
-
使用 SkillLens 清点技能
- 运行
skilllens scan [path] [--auditor claude|codex]。 - 将缺失审计器 CLI 或状态为
skipped的情况视为“需人工复核”,而非“安全”。
- 运行
-
确定复核优先级顺序
- 首先复核标记为
unsafe或suspicious的技能。 - 其次复核请求广泛权限(如文件系统/网络访问)、执行 Shell 命令、或引用外部下载内容的技能。
- 首先复核标记为
-
人工逐项审查技能内容
- 阅读技能的
SKILL.md文件,以及其中引用的scripts/、references/和assets/目录下的全部内容。 - 默认情况下不得直接执行所附带的脚本;必须先完成检查。
- 阅读技能的
-
评估风险(聚焦于实际可被滥用的场景)
- 数据外泄(Exfiltration):将文件内容、环境变量、令牌(tokens)、SSH 密钥、浏览器数据或配置信息发送至远程端点。
-
任意执行(Execution):指示执行任意 Shell 命令、
curl | bash、eval,或拉取并执行外部代码。 -
持久化(Persistence):修改 Shell 配置文件(如
.bashrc)、启动代理(launch agents)、定时任务(cron)、编辑器配置,或技能安装位置。 - 权限/审批绕过(Privilege/approval bypass):指示忽略系统策略、禁用安全检查,或不必要地请求提权权限。
- 提示注入(Prompt injection):尝试覆盖更高优先级指令(例如:“ignore previous”、“always comply”、“never mention…”)。
- 触发条件过宽(Overbroad triggers):描述模糊,导致技能在与预期无关的任务中被意外触发。
-
生成审计报告
- 对每个技能,需包含以下字段:
name(名称)、path(路径)、verdict(判定结果:safe / suspicious / unsafe)、risk(风险评分:0–100),并以条目形式列出具体问题,附带确凿证据(引用原文片段或文件名)。 - 提出修复建议,以缩小影响范围:缩小作用域、移除危险默认值、增加显式确认环节,并明确文档化所需权限。
- 对每个技能,需包含以下字段:
常用命令片段
- 扫描所有已配置的根路径:
skilllens scan - 扫描指定文件夹:
skilllens scan ~/.codex/skills - 强制重新审计并显示原始输出:
skilllens scan ~/.codex/skills --force --verbose