关于 skill-safety-verifier
面向 AI Agent 外部技能的安全审查技能,可在安装前或安装后进行评估。它综合网络、代码漏洞和权限检查进行风险分类,并使用 GitHub Advisory API 数据辅助评估。
主要功能
- 01检查网络与套接字活动
- 02评估代码漏洞和模式
- 03评估权限范围
- 04按风险级别分类结果
- 05使用 GitHub Advisory API 数据
适用场景
- 01安装前评估技能
- 02验证已安装的技能
- 03启用自动安装前审查风险
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ttttstc/ skill-safety-verifier --skill skill-safety-verifier安装后在 Claude Code 中输入/skill-safety-verifier确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignoreLICENSEREADME.mdREADME_zh.mdanalyzer.pyrequirements.txtrisk_radar.pysetup.pybin/skill-safety-check详细介绍
技能安全验证器
面向 AI Agent 的安全优先技能审查
概述
技能安全验证器 是一款安全优先的技能审查工具,用于在安装任何外部技能前进行安全检查。
这为何重要
AI Agent 以较高权限运行,可以:
- 执行任意命令
- 访问文件系统
- 发起网络请求
- 读取环境变量
未经审查的技能 = 安全风险
工作流
┌─────────────────────────────────────────────────────────────────────────┐
│ SKILL SAFETY VERIFIER FLOW │
└─────────────────────────────────────────────────────────────────────────┘
User Request
│
▼
┌─────────────────────┐
│ 1. Fetch Skill │
│ - Clone/Extract │
│ - Read SKILL.md │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ 2. Parallel Scan │
│ ┌───────────────┐ │
│ │ Socket Check │ │ ← Check outbound connections
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ Vuln Scan │ │ ← Query GitHub Advisory API
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ Code Patterns │ │ ← Scan dangerous functions
│ └───────────────┘ │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ 3. Risk Score │
│ - Calculate total │ ← Network + Vuln + Permission
│ - Classify level │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ 4. Present Result │
│ - Risk Radar │
│ - Warnings │
│ - Recommendation │
└─────────────────────┘
│
▼
User Decision
核心职责
1. 风险评估
从三个维度评估技能:
| 维度 | 检查内容 | 风险等级 |
|---|---|---|
| Socket/网络 | 出站连接、API 调用 | 严重 |
| 代码质量 | Snyk 漏洞、依赖项 | 高 |
| 权限 | 文件访问、命令执行 | 高 |
2. 危险信号检测
常见的可疑模式:
red_flags:
network:
- "Suspicious domain (non-standard TLD)"
- "Hardcoded IP addresses"
- "DNS lookups to unknown domains"
- "Excessive outbound connections"
execution:
- "os.system() / subprocess without sanitization"
- "eval() / exec() usage"
- "Shell injection patterns"
- "Download and execute code"
data:
- "Reading sensitive env vars"
- "Exfiltrating files"
- "Logging keystrokes"
- "Credential harvesting"
permissions:
- "Overbroad file permissions"
- "sudo/root without prompt"
- "Full disk access requests"
3. 风险分类
┌─────────────────────────────────────────────────────────────┐
│ RISK CLASSIFICATION │
├──────────────┬──────────────┬─────────────────────────────┤
│ Level │ Score │ Action │
├──────────────┼──────────────┼─────────────────────────────┤
│ 🟢 Safe │ 0-10 │ Install & use freely │
│ 🟡 Low │ 11-30 │ Install with caution │
│ 🟠 Medium │ 31-60 │ Review code, then decide │
│ 🔴 High │ 61-100 │ Do not install │
└──────────────┴──────────────┴─────────────────────────────┘
评估标准
Socket/网络风险
| 警报数量 | 风险分数 |
|---|---|
| 0 | 0 |
| 1-2 | 10 |
| 3-5 | 25 |
| >5 | 50 |
代码/漏洞风险
| 严重程度 | 分数 |
|---|---|
| 严重 | 25 |
| 高 | 15 |
| 中 | 10 |
| 低 | 5 |
GitHub Advisory API 集成
使用 GitHub Advisory API 获取真实漏洞数据,且不阻塞安装流程。
API: https://api.github.com/advisories
认证: 无需 Token(匿名每小时 60 次)
TTL: 本地缓存 24 小时
流程:
1. 用户触发安装 → 立即返回 "安检中..."
2. 后台并行: 克隆代码 + 查缓存 + 异步请求 API
3. 缓存命中? Yes → 直接返回 | No → 等 API (超时 5s)
4. 合并 Socket分析 + 代码模式 + 漏洞数据 → 呈现
权限范围风险
| 范围 | 分数 |
|---|---|
| 只读 | 0 |
| 网络调用 | 10 |
| 文件写入 | 15 |
| 命令执行 | 25 |
| 完整系统访问权限 | 50 |
工作流
User: "Install skill X"
│
▼
┌─────────────────────┐
│ 1. Fetch Skill │
│ - Clone/Extract │
│ - Read SKILL.md │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ 2. Security Scan │
│ - Socket alerts │
│ - Snyk vulnerabilities│
│ - Code patterns │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ 3. Risk Score │
│ - Calculate total │
│ - Classify level │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ 4. Present Result │
│ - Risk level │
│ - Warnings │
│ - Recommendation │
└─────────────────────┘
│
▼
User Decision
输出格式
进度条样式(推荐)
✅ weather - Risk Assessment
┌─────────────────────────────────────────┐
│ 📊 Risk Radar │
├─────────────────────────────────────────┤
│ Network [░░░░░░░░░░░] 0/50 🟢 │
│ Vulnerabil. [░░░░░░░░░░░░] 0/25 🟢 │
│ Permissions [░░░░░░░░░░░░] 0/50 🟢 │
│ ───────────────────────────────────── │
│ TOTAL [░░░░░░░░░░░░] 0/100 🟢 │
├─────────────────────────────────────────┤
│ Dependencies: curl, wttr.in │
│ Recommendation: ✅ Safe to install │
└─────────────────────────────────────────┘
实现逻辑
# Progress bar rendering
def render_bar(score, max_score, label, width=10):
percent = score / max_score
filled = int(percent * width)
bar = '█' * filled + '░' * (width - filled)
emoji = get_risk_emoji(percent)
return f" {label:<12} [{bar}] {score}/{max_score} {emoji}"
# Color mapping
def get_risk_emoji(percent):
if percent < 0.2: return '🟢'
if percent < 0.5: return '🟡'
if percent < 0.8: return '🟠'
return '🔴'
安全技能
✅ skill-name - Risk Assessment Complete
┌─────────────────────────────────┐
│ 🟢 LOW RISK │
│ Socket Alerts: 0 │
│ Snyk Issues: 0 │
│ Code Patterns: Clean │
└─────────────────────────────────┘
Recommendation: Safe to install and use.
What's included:
- Feature A
- Feature B
中等风险技能
⚠️ skill-name - Risk Assessment Complete
┌─────────────────────────────────┐
│ 🟠 MEDIUM RISK │
│ Socket Alerts: 2 │
│ Snyk Issues: 1 (Medium) │
│ Notes: Network calls detected │
└─────────────────────────────────┘
Warnings:
- Makes API calls to external service
- Stores credentials in config file
Recommendation: Review the code before installing.
高风险技能
🚫 skill-name - Risk Assessment Complete
┌─────────────────────────────────┐
│ 🔴 HIGH RISK │
│ Socket Alerts: 5 │
│ Snyk Issues: 3 (Critical) │
│ Red Flags: Command execution │
└─────────────────────────────────┘
🚨 DO NOT INSTALL
Reasons:
1. Multiple critical vulnerabilities found
2. Executes shell commands
3. No input sanitization
If you must proceed:
- Review every line of code
- Run in sandboxed environment
- Never expose credentials
用法
安装前检查
# Before installing any skill
skill-safety-check --source <skill-url>
# Example
skill-safety-check --source github.com/user/skill-repo
安装后验证
# Verify installed skill
skill-safety-check --verify --skill-name <name>
交互模式
User: "Install jina-cli"
Agent: [Runs skill-safety-verifier]
→ Analyzes skill
→ Presents risk assessment
→ User decides
集成
与 ClawdHub 集成
# Install with auto-verification
npx skills add <owner/repo> --verify
与 OpenClaw 集成
在配置中启用后,验证器会在安装技能前自动运行。
配置
设置
# .openclaw/config.yaml
skill_safety:
enabled: true
auto_check: true
block_high_risk: false # Set true to auto-block
scan_depth: full # quick | full
环境变量
SKILL_SAFETY_LOG_LEVEL=info
SKILL_SAFETY_CACHE_TTL=3600
最佳实践
- 始终验证 - 绝不安装未经审查的技能
- 阅读代码 - 自动检查还不够
- 最小权限 - 只授予必要的权限
- 隔离运行 - 在容器中运行高风险技能
- 监控 - 记录所有技能活动
相关内容
- ClawdHub - 技能市场
- OpenClaw 安全 - 平台安全文档
- 技能编写指南 - 如何编写安全技能
许可证
MIT 许可证 - 详情请参阅 LICENSE 文件
评论
支持 Markdown