命令列工具
NVIDIA/SkillSpector avatar
NVIDIA/SkillSpector

SkillSpector:從 README 拆解功能、限制與採用條件

AI 代理技能的安全掃描器。偵測漏洞、惡意模式和安全風險。

17,309 個 Star1,474 個 ForkPythonApache-2.0
GitHub

秒懂

它是什麼?
Security scanner for AI agent skills. Detect vulnerabilities, malicious patterns, and security risks.。本文整理 NVIDIA/SkillSpector 的使用入口、依賴條件、功能邊界與專案專屬核驗方式。
適合誰用?
SkillSpector 適合需要 README 所列能力,且能管理其環境、資料與權限的使用者;不適合把示範結果或文件未說明的行為當成正式保證。先執行:依 Skillspector README 執行安裝與 CLI 入口,對一個含 SKILL.md 的測試目錄執行掃描,核對規則報告、錯誤退出碼和輸出格式;另以故意缺少 frontmatter 的檔案確認檢查器確實能報錯。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

SkillSpector:為什麼技能需要安全掃描器

Claude Code、Codex CLI、Gemini CLI 等工具的 AI 代理技能在隱式信任和極少審查下執行。README 引用的研究《Agent Skills in the Wild: An Empirical Study of Security Vulnerabilities at Scale》(Liu 等人,2026)報告,26.1% 的技能至少包含一個漏洞,5.2% 表現出可能的惡意意圖。SkillSpector 是一個基於 Python 的掃描器,旨在回答「安裝此技能是否安全」這一問題。它是 NVIDIA Verified Skills 管線的一部分,並產生帶有明確建議的風險評分。

依 Skillspector README 執行安裝與 CLI 入口,對一個含 SKILL.md 的測試目錄執行掃描,核對規則報告、錯誤退出碼和輸出格式;另以故意缺少 frontmatter 的檔案確認檢查器確實能報錯。 這項核對只延伸到 NVIDIA/SkillSpector README 已列出的入口、設定和產物;文件未說明的效能或相容性不寫成保證。

SkillSpector:兩階段分析如何運作

SkillSpector 執行兩階段偵測管線。第一階段是靜態分析:跨 11 個靜態分析器進行基於正規表示式的模式比對,對 exec、eval、subprocess 等危險呼叫進行基於 AST 的行為分析,並透過 OSV.dev API 對依賴中的已知 CVE 進行即時漏洞查詢。第二階段是可選的 LLM 語意分析,評估上下文和意圖,過濾誤報,並提供人類可讀的解釋。README 報告這可將精確度提高到約 87%。掃描接受 Git 儲存庫、URL、zip 檔案、目錄或單一檔案。

SkillSpector:它查詢的漏洞模式

SkillSpector 偵測 17 個類別中的 68 種漏洞模式。README 中的完整清單涵蓋提示注入、反拒絕、資料外洩、權限提升、供應鏈、過度代理、輸出處理、系統提示洩漏、記憶中毒、工具誤用、流氓代理、觸發濫用、透過 AST 的危險程式碼、污點追蹤、YARA 簽章、MCP 最小權限和 MCP 工具投毒。範例包括指令覆蓋、環境變數收集、未固定依賴、exec() 呼叫以及工具中繼資料中的隱藏指令。每種模式都有 ID、嚴重性和描述。

SkillSpector:風險評分和機器可讀輸出

掃描器為每個問題分配分值:嚴重 +50,高 +25,中 +10,低 +5,如果存在可執行指令碼則乘以 1.3。總分對應到 0-100 的評分和嚴重性等級:LOW(0-20)建議 SAFE,MEDIUM(21-50)建議 CAUTION,HIGH(51-80)和 CRITICAL(81-100)建議 DO NOT INSTALL。退出碼在評分小於或等於 50 時為 0,DO NOT INSTALL 時為 1,錯誤時為 2。提供 JSON、Markdown 和 SARIF 輸出格式,基線檔案可抑制已知發現,使重新掃描僅顯示新問題。

SkillSpector:安裝和執行 SkillSpector

README 展示了使用 uv 的安裝方式:`uv tool install git+https://github.com/NVIDIA/skillspector.git`,或建立虛擬環境後使用 make install 從原始碼安裝。基於 Python 3.12-slim-bookworm 的 Docker 映像檔可透過 make docker-build 本機建置,並透過將目前目錄掛載到 /scan 來執行。基本用法包括 `skillspector scan ./my-skill/` 掃描目錄、單一 SKILL.md 檔案、Git URL 或 zip 檔案。遠端和封存輸入限制為每次攝取 100 MiB 和 10,000 個 zip 成員;超出限制會以 IngestLimitExceededError 失敗關閉。

SkillSpector:作為 MCP 伺服器執行

SkillSpector 可以作為 Model Context Protocol 伺服器執行,使任何支援 MCP 的代理能夠將掃描作為工具呼叫。`skillspector mcp` 命令(需要 mcp 擴充功能)暴露一個 `scan_skill` 工具,傳回包含風險評分、嚴重性、建議和 safe_to_install 旗標的結構化裁決。HTTP 傳輸沒有驗證,因此 README 建議在繫結到可路由介面時將其放在驗證反向代理後面。透過 HTTP,本機路徑和 file:// URL 會自動被拒絕;僅接受遠端 Git 和 .zip URL。

SkillSpector:信任模型和限制

SkillSpector 是縱深防禦,不是沙箱。它永遠不會執行被掃描的技能;所有分析都是靜態的,外加對檔案內容的可選 LLM 評估。當啟用 LLM 分析時,符合分析條件的檔案內容會傳送到設定的提供者,SC4 將依賴名稱傳送到 OSV.dev。該工具不隔離宿主。已知限制包括遺漏非英語模式、無法分析影像中的文字或加密/二進位程式碼、沒有動態執行,以及當 OSV.dev 不可達時使用靜態回退清單。

SkillSpector:研究背景和授權

README 引用了《Agent Skills in the Wild》研究的資料:檢查了 42,447 個技能,26.1% 存在漏洞,5.2% 可能具有惡意,帶可執行指令碼的技能存在漏洞的可能性高 2.12 倍。SkillSpector 根據 Apache License 2.0 授權。授權摘錄授予永久的、全球性的、非排他性的、免版稅的權利,以複製、準備衍生作品和分發作品;它不涉及安全性、支援或保固方面的聲明。

SkillSpector 第 1 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 2 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 3 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 4 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 5 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 6 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 7 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 8 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 9 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 10 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 11 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 12 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 13 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 14 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 15 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

SkillSpector 第 16 次核對仍使用上述專案命令與檔案,記錄輸入、輸出、退出狀態和日誌差異;若該結果不在 README 描述範圍內,就保留為待確認條件。

編輯結論

SkillSpector 適合需要 README 所列能力,且能管理其環境、資料與權限的使用者;不適合把示範結果或文件未說明的行為當成正式保證。先執行:依 Skillspector README 執行安裝與 CLI 入口,對一個含 SKILL.md 的測試目錄執行掃描,核對規則報告、錯誤退出碼和輸出格式;另以故意缺少 frontmatter 的檔案確認檢查器確實能報錯。 再依具體輸出決定是否納入流程。

官方來源

  1. Official README
  2. Project repository
  3. Release notes
社群筆記

社群筆記