Install
openclaw skills install skill-preflight-checker技能预检检查器。在安装任何技能前进行安全检查,验证作者声誉、检查恶意脚本、分析权限需求,防止安装恶意技能。
openclaw skills install skill-preflight-checker用户:帮我检查这个技能是否安全
助手:运行预检检查流程,生成报告
用户:检查我准备安装的 5 个技能
助手:逐个检查,汇总报告
# 查看作者信息
npm view package-name author
# 查看下载量
npm view package-name downloads
# 查看星标
npm view package-name stargazers_count
# 读取 package.json
jq '.scripts' package.json
# 检查可疑脚本
grep -E "postinstall|preinstall" package.json
# 搜索网络调用
grep -r "curl\|wget\|axios\|request" node_modules/
# 搜索危险函数
grep -r "eval\|exec\|spawn" node_modules/
# 搜索敏感文件访问
grep -r "\.ssh\|\.env\|credentials" node_modules/
# 在 Docker 中安装测试
docker run --rm -v $(pwd):/app node:alpine npm install package-name
# 监控文件变化
docker run --rm -v $(pwd):/app node:alpine ls -la
立即拒绝安装的信号:
| 红旗 | 说明 | 风险等级 |
|---|---|---|
| postinstall 脚本 | 安装时自动执行代码 | 🔴 高危 |
| 网络调用 | 安装时访问外部服务器 | 🔴 高危 |
| 读取敏感文件 | 访问 ~/.ssh, ~/.env, 凭证文件 | 🔴 高危 |
| 使用 eval/exec | 动态执行代码 | 🔴 高危 |
| 未知作者 | 首次发布,无历史记录 | 🟡 中危 |
| 代码混淆 | 压缩、编码、混淆 | 🔴 高危 |
| 请求提权 | 需要 sudo/管理员权限 | 🔴 高危 |
| 访问浏览器 | 读取 cookie、session | 🔴 高危 |
| 等级 | 标志 | 操作 |
|---|---|---|
| 🟢 低风险 | 无红旗,作者可信 | 可以直接安装 |
| 🟡 中风险 | 有警告但可解释 | 需要人工审查 |
| 🔴 高风险 | 有严重红旗 | 拒绝安装 |
| ⛔ 极高风险 | 多个严重红旗 | 举报给社区 |
SKILL PREFLIGHT REPORT
═══════════════════════════
技能:[技能名称]
来源:[ClawHub / GitHub / npm]
作者:[作者名]
版本:[版本号]
───────────────────────────
指标:
• 下载量:[数字]
• 星标数:[数字]
• 最后更新:[日期]
• 文件审查:[数字] 个
───────────────────────────
红旗警告:[无 / 列表]
权限需求:
• 文件:[列表或"无"]
• 网络:[列表或"无"]
• 命令:[列表或"无"]
───────────────────────────
风险等级:[🟢 LOW / 🟡 MEDIUM / 🔴 HIGH / ⛔ EXTREME]
建议:[✅ 安全 / ⚠️ 谨慎 / ❌ 拒绝]
备注:[任何观察]
═══════════════════════════
#!/bin/bash
SKILL_NAME=$1
echo "🔍 Preflight Check: $SKILL_NAME"
echo "═══════════════════════"
# 1. Check author
echo "1. Checking author..."
npm view $SKILL_NAME author
# 2. Check scripts
echo "2. Checking scripts..."
npm view $SKILL_NAME scripts
# 3. Download and scan
echo "3. Scanning for red flags..."
npm pack $SKILL_NAME
tar -xzf *.tgz
grep -r "curl\|wget\|eval" package/
# 4. Clean up
rm -rf package *.tgz
echo "═══════════════════════"
echo "✅ Preflight complete"
用户:clawhub install xxx-skill
助手:
1. 暂停安装
2. 运行预检检查
3. 生成报告
4. 如果安全,继续安装
5. 如果有红旗,警告用户
用户:从 GitHub 安装技能
助手:
1. 检查仓库星标和 fork 数
2. 检查作者其他项目
3. 审查 SKILL.md 和代码
4. 生成报告
5. 给出建议
用户:我要安装这 10 个技能
助手:
1. 逐个检查
2. 汇总报告
3. 分类(安全/谨慎/拒绝)
4. 给出优先级建议
| 问题 | 解决方案 |
|---|---|
| 无法获取作者信息 | 手动检查 GitHub/npm 页面 |
| 容器测试失败 | 检查 Docker 配置和网络 |
| 误报红旗 | 调整检查规则,添加白名单 |
| 检查时间太长 | 优化脚本,缓存结果 |
scripts/preflight_check.sh - 预检脚本scripts/scan_package.py - 包扫描脚本references/red-flags.md - 红旗模式库references/trusted-authors.md - 可信作者白名单references/checklist-template.md - 检查清单模板