可疑 — 风险评分 45/100
上次扫描:2 天前 重新扫描
45 /100
skill-security-vet
技能安全審核 - 整合本地掃描 + VirusTotal 雲端威脅情報
安全扫描工具存在重大文档-行为差异:vet.ts 支持扫描整个本地驱动器、自动隔离/删除文件,但 SKILL.md 完全未声明这些能力
技能名称skill-security-vet
分析耗时33.6s
引擎pi
谨慎使用
要求开发者补充完整文档,明确声明本地驱动器扫描范围、自动隔离功能及配置路径。若仅用于扫描技能目录,应移除系统驱动器扫描代码

安全发现 4 项

严重性 安全发现 位置
高危
未声明的本地驱动器完整扫描能力
vet.ts 的 scanLocalComputer 函数实现对整个系统驱动器(C:/D:/E:/F: 或 /)的递归扫描(深度5层,最大10000文件),但 SKILL.md 完全未声明此功能
const SYSTEM_DRIVES = process.platform === "win32" ? ["C:", "D:", "E:", "F:"] : ["/"]
→ 在 SKILL.md 中明确声明扫描范围,或移除本地驱动器扫描代码,仅保留技能目录扫描
vet.ts:152
高危
未声明的自动隔离/删除功能
quarantineFile 和 removeFile 函数可自动删除或隔离文件,但 SKILL.md 未声明此文件操作能力
async function quarantineFile(filePath: string): Promise<boolean>
→ 明确声明自动隔离/删除功能,并说明触发条件
vet.ts:179
中危
深度递归扫描可能影响系统性能
scanLocalComputer 支持 depth > 5 递归扫描,最多 10000 个文件,在大驱动器上可能消耗大量资源
if (depth > 5 || results.filter(r => r.status === "danger").length >= 10) return
→ 考虑添加扫描限制说明或用户配置选项
vet.ts:159
中危
config.autoRemove 与 whitelist 机制存在绕过风险
whitelist 在扫描循环中被检查,但如果 config.autoRemove=true,危险技能会被自动删除而不经过 whitelist 检查
if (status === "danger" && (autoMode || config.autoRemove))
→ 确保 whitelist 在所有自动操作前生效
vet.ts:246
资源类型声明权限推断权限状态证据
文件系统 NONE WRITE ✗ 越权 vet.ts:179-193 quarantineFile
网络访问 NONE READ ✓ 一致 vet.ts:127 VirusTotal API
环境变量 NONE READ ✓ 一致 startup-scan.ts:24 Bun.env.HOME
命令执行 NONE NONE 无 shell 执行
2 项发现
🔗
中危 外部 URL 外部 URL
https://virustotal.com
SKILL.md:46
🔗
中危 外部 URL 外部 URL
https://www.virustotal.com/api/v3/files/$
vet.ts:127

目录结构

3 文件 · 29.6 KB · 885 行
TypeScript 2f · 768L Markdown 1f · 117L
├─ 📝 SKILL.md Markdown 117L · 3.0 KB
├─ 📜 startup-scan.ts TypeScript 284L · 10.0 KB
└─ 📜 vet.ts TypeScript 484L · 16.6 KB

安全亮点

✓ 代码结构清晰,使用 Bun 原生 API,无传统 child_process 调用
✓ 包含完善的高风险模式检测(eval、动态代码执行等)
✓ VirusTotal API 集成提供云端威胁情报
✓ 安全工具的合法用途,可检测其他技能风险