Skill Security Checker
检查 Skill/代码仓库是否存在安全风险,在下载前和运行时进行多维度安全评估。
When to Use This Skill
当用户提到以下情况时使用此技能:
- 检查某个 skill 是否安全
- 扫描仓库是否有恶意代码
- 验证代码安全性
- 检查 npm 包是否有威胁
- 询问某个下载是否安全
Usage
支持的输入类型
- GitHub 仓库:
检查这个仓库安全性: https://github.com/user/repo 检查 skill: github.com/user/repo - 本地文件夹 检查本地: ``
skill: /path/to/skill 扫描这个文件夹
3. **npm 包**:检查这个 npm 包安全性: lodash 检查 npm 包: some-package
### 输出格式
用户可以选择输出格式:
- `json` - 结构化 JSON 报告
- `friendly` - 带 emoji 的友好界面
- `concise` - 简洁摘要(默认)
### 可选参数
- `--runtime` - 启用运行时行为监控(检测 package.json 中的危险脚本)
## How It Works
### 第一阶段:下载前检查(必选)
1. **静态代码分析** - 检测以下模式:
- 恶意代码:base64 编码 payload、eval/exec 调用、加密字符串、反调试技术
- 敏感信息窃取:读取 SSH keys、API tokens、环境变量
- 环境破坏:修改系统配置、删除文件
- 网络可疑:向未知域名发送数据、反弹 shell
2. **仓库信誉度评估**:
- GitHub stars 数量
- fork 数量
- 创建时间
- 最后更新时间
- 贡献者数量
### 第二阶段:运行时监控(可选)
当用户添加 `--runtime` 参数时:
- 检测 package.json 中的危险脚本(preinstall, postinstall 等)
- 检测可疑依赖包
- 在沙箱环境中短暂执行观察行为
### 综合评估
- 计算安全评分(0-100)
- 风险等级:高/中/低
- 推荐结果:可下载/不建议下载
- 详细说明原因
## Example Commands
检查 GitHub 仓库(友好输出)
skill-security-checker github octocat/Hello-World friendly
检查 GitHub 仓库(JSON 格式)
skill-security-checker github https://github.com/lodash/lodash json
检查本地文件夹
skill-security-checker local /path/to/my-skill
检查 npm 包
skill-security-checker npm express
启用运行时检查
skill-security-checker github user/repo friendly --runtime
## Output Example
### Friendly 格式输出:
╔══════════════════════════════════════════════════════╗ ║ Skill 安全检查报告 ║ ╠══════════════════════════════════════════════════════╣ ✅ 风险等级: LOW 📊 安全评分: 85/100 ✅ 推荐: 可下载 ╠══════════════════════════════════════════════════════╣ 📈 仓库信息: ⭐ Stars: 50000+ 🍴 Forks: 5000+ 👥 贡献者: 200+ 📅 创建时间: 2012-01-01 ╚══════════════════════════════════════════════════════╝
### 危险情况输出:
╔══════════════════════════════════════════════════════╗ ║ Skill 安全检查报告 ║ ╠══════════════════════════════════════════════════════╣ 🔴 风险等级: HIGH 📊 安全评分: 15/100 ❌ 推荐: 不建议下载 ╠══════════════════════════════════════════════════════╣ ⚠️ 风险原因: - 检测到恶意代码模式(base64 编码 payload) - 检测到访问 SSH 密钥 - 仓库缺乏社会监督(stars < 10) 📈 仓库信息: ⭐ Stars: 5 🍴 Forks: 0 👥 贡献者: 1 ╚══════════════════════════════════════════════════════╝
## Implementation Notes
此技能使用以下技术实现:
- Node.js + TypeScript
- simple-git: Git 仓库操作
- glob: 文件模式匹配
- GitHub API: 仓库信息获取
- 正则表达式: 恶意代码模式检测
核心检测规则位于 `detectionPatterns.ts`,可以扩展更多检测模式。