Skill Vetter 🔒
AI 代理技能的安全優先審查協議。絕對不要在未審查的情況下安裝任何技能。
何時使用
- 安裝任何來自 ClawdHub 的技能之前
- 執行來自 GitHub repo 的技能之前
- 評估其他代理分享的技能時
- 任何時候被要求安裝未知程式碼時
審查協議
步驟 1:來源檢查
需要回答的問題:
- [ ] 這個技能來自哪裡?
- [ ] 作者是否已知/有信譽?
- [ ] 有多少下載/星星數?
- [ ] 最後更新時間是什麼時候?
- [ ] 是否有來自其他代理的評價?
步驟 2:程式碼審查(必要)
閱讀技能中的所有檔案。檢查以下紅色旗標:
🚨 如果發現以下情況,立即拒絕:
─────────────────────────────────────────
• curl/wget 到未知 URL
• 向外部伺服器發送資料
• 要求憑證/金鑰/API 密鑰
• 無明確理由讀取 ~/.ssh、~/.aws、~/.config
• 存取 MEMORY.md、USER.md、SOUL.md、IDENTITY.md
• 對任何內容使用 base64 解碼
• 使用 eval() 或 exec() 處理外部輸入
• 修改工作區外的系統檔案
• 未列出就安裝套件
• 對 IP 位址而非網域名稱進行網路呼叫
• 混淆的程式碼(壓縮、編碼、壓縮化)
• 要求提升/sudo 權限
• 存取瀏覽器 cookies/sessions
• 接觸憑證檔案
─────────────────────────────────────────
步驟 3:權限範圍
評估:
- [ ] 它需要讀取哪些檔案?
- [ ] 它需要寫入哪些檔案?
- [ ] 它執行哪些指令?
- [ ] 它是否需要網路存取?存取哪裡?
- [ ] 權限範圍是否對其聲明的用途最小化?
步驟 4:風險分類
| 風險等級 | 範例 | 行動 |
|---|---|---|
| 🟢 低 | 筆記、天氣、格式化 | 基本審查,可以安裝 |
| 🟡 中 | 檔案操作、瀏覽器、API | 需要完整程式碼審查 |
| 🔴 高 | 憑證、交易、系統 | 需要人類核准 |
| ⛔ 極高 | 安全設定、root 存取 | 不要安裝 |
輸出格式
審查後,產出以下報告:
技能審查報告
═══════════════════════════════════════
技能名稱:[name]
來源:[ClawdHub / GitHub / 其他]
作者:[username]
版本:[version]
───────────────────────────────────────
指標:
• 下載/星星數:[count]
• 最後更新:[date]
• 已審查檔案:[count]
───────────────────────────────────────
紅色旗標:[無 / 列出]
所需權限:
• 檔案:[清單或「無」]
• 網路:[清單或「無」]
• 指令:[清單或「無」]
───────────────────────────────────────
風險等級:[🟢 低 / 🟡 中 / 🔴 高 / ⛔ 極高]
裁決:[✅ 可安全安裝 / ⚠️ 謹慎安裝 / ❌ 不要安裝]
備註:[任何觀察]
═══════════════════════════════════════
快速審查指令
針對 GitHub 上的技能:
# 檢查 repo 統計
curl -s "https://api.github.com/repos/OWNER/REPO" | jq '{stars: .stargazers_count, forks: .forks_count, updated: .updated_at}'
# 列出技能檔案
curl -s "https://api.github.com/repos/OWNER/REPO/contents/skills/SKILL_NAME" | jq '.[].name'
# 取得並審查 SKILL.md
curl -s "https://raw.githubusercontent.com/OWNER/REPO/main/skills/SKILL_NAME/SKILL.md"
信任層級
- 官方 OpenClaw 技能 → 較低審查(仍需審查)
- 高星數 repo(1000+) → 中等審查
- 已知作者 → 中等審查
- 新的/未知來源 → 最高審查
- 要求憑證的技能 → 永遠需要人類核准
記住
- 沒有任何技能值得犧牲安全性
- 有疑慮時,不要安裝
- 高風險決策要詢問你的人類
- 記錄你審查的內容以供未來參考
偏執是一種特色。 🔒🦀