Skill 装前安全检查(skill-security-scan)
背景:2026-08-14 WorkBuddy 教程教训——第三方 skill 可能带毒、偷密钥、被提示词注入劫持。本机装任何第三方 skill 前,一律先过本扫描,不许直接装。
扫描脚本
scripts/scan_security.py(Python 3,无第三方依赖)
python scan_security.py <目标路径> [--json]
四道扫描
- 扫代码(.py/.js/.ps1/.sh/.bat 等):系统命令执行、动态执行(eval/exec)、删除操作、网络外发、注册表/计划任务/自启、读取敏感配置(.env/config.json)、隧道/暗网/外传粘贴站
- 查密钥(所有文本文件):硬编码 API Key / Token / 私钥(sk-、AKIA、ghp_、xox、AIza、ya29、BEGIN KEY、Bearer 等)
- 查注入(.md/.txt/.json 等):提示词劫持——忽略指令、角色伪装成系统/管理员、套取 system prompt、隐藏行为、把数据发送到外部 URL
- 查外联:列出所有 http(s) 地址与内网地址,供人工判断
结论分级
- REJECT 拒绝装:隧道/暗网/外传站地址、私钥硬编码、提示词劫持(高)、数据外发指令
- REVIEW 需审查:高危系统命令+读敏感配置的组合、密钥硬编码、内网探测、模糊外链(人工看上下文)
- OK 可装:无高危命中,或仅信息级外链(如官方文档地址)
执行流程(死规则)
- 用户要求装任何非自研 skill → 先跑扫描脚本,不许跳过
- 汇报结论 + 关键命中(文件|类型|级别|命中片段)
- REJECT 直接拒绝并说明理由;REVIEW 列风险点交用户拍板;OK 才允许装
- 自研 skill 安装前也扫一遍(防自己带病);新下载的脚本同样适用
- 扫描执行留痕到技能触发日志
联动
- 被 skill-guard 命中触发词时必须真跑脚本,跑完留痕
- 向用户说「检查过/安全」必须附脚本输出证据,否则按落地监督算空话