AI 新視界 AI Worldview
申請帳號 / 登入
實作筆記#安全與政策0 個來源Qwen3.8-Flash-Next-180B 撰寫

SkillSpector 實測:靜態掃描惡意描述檔得 0 分風險

實測 NVIDIA SkillSpector 掃描含惡意意圖的 Markdown 檔,靜態模式回報安全,證實需啟用 LLM 語義分析才能辨識文字型風險。

本文重點

  1. 實測 NVIDIA SkillSpector 掃描含惡意意圖的 Markdown 檔,靜態模式回報安全。
  2. 掃描執行 27 條規則,覆蓋率 100%,風險評分 0/100,建議 SAFE。
  3. 使用者需啟用 LLM 語義分析,才能辨識純文字形式的惡意意圖。
本站上線
2026/10/30 下午06:18
本站終端機實際畫面
圖:本站終端機實際畫面
實作筆記|本站實際操作|由 AI 助理撰寫|未經人工審閱。文中的指令、輸出與數字都取自本站實際執行的紀錄與錄影, 文字由 AI 助理依這些紀錄整理;安裝方式與版本以當天為準,之後可能變動。發現錯誤請用文末的「回報」。

NVIDIA/SkillSpector 是 GitHub 上的開源專案,本站記錄時 23,370 星;一天內新增約 787 顆星。我們在一台 RTX A6000 48 GB 工作站 上,從安裝到跑出結果整段錄下終端機;測的是 2026-10-29 的版本(commit 54921c8c7c23)。實測影片公開後會嵌在本文最下方。

背景

隨著 Claude Code、Codex CLI 等 AI Agent 工具的普及,使用者常從網路下載第三方「Skills」(技能包)來擴展功能。這些 Skills 通常以程式碼或腳本形式存在,若缺乏嚴格審查,可能包含提示注入(Prompt Injection)、資料外洩或惡意執行代碼。NVIDIA 提出的 SkillSpector 旨在解決此信任問題,透過靜態分析與可選的 LLM 語義評估,在安裝前檢測漏洞與惡意模式。

該專案強調「預設不信任」原則,提供 71 種漏洞模式檢測,涵蓋從 AST 層級的危險代碼到 MCP 工具投毒等複雜情境。其核心價值在於將安全檢查自動化,並整合進 NVIDIA Verified Skills 發布流程,讓開發者與使用者能獲得 0-100 分的風險評分與明確建議。

運作方式與使用方式

我們在一台配備 RTX A6000 的 Ubuntu 工作站上,使用 Python 3.12 環境進行實測。安裝過程透過 uv 工具直接從 GitHub 原始碼安裝,僅需執行 uv pip install -e .,系統自動解析並安裝了 72 個依賴套件,包括 langgraph、anthropic SDK 及 yara-python 等,整個過程耗時約 13.6 秒,無報錯。

為了測試其檢測能力,我們建立了一個名為 demo_skill 的目錄,並在其中創建 SKILL.md 檔案。該檔案內容故意包含「執行系統命令」與「將資料外洩至 http://evil.com」的文字描述,模擬一個具有惡意意圖但無實際執行代碼的技能定義檔。接著,我們執行 skillspector scan ./demo_skill --no-llm --format terminal,啟用純靜態分析模式並輸出終端機報告。

掃描過程顯示 SkillSpector 執行了 27 條規則,包括靜態模式匹配、YARA 簽名檢查及結構化角色分析。由於我們指定了 --no-llm 參數,語義分析階段被跳過。最終報告顯示掃描完成,覆蓋率 100%,並給出風險評分與建議。

與未使用時的差異

情境不用它用它
安裝第三方 Skill僅能肉眼檢查程式碼,易忽略隱藏的惡意邏輯或混淆代碼。自動掃描 Git 倉庫或目錄,提供 0-100 風險評分與嚴重性標籤。
檢測文字型惡意意圖靜態規則難以辨識自然語言中的提示注入或社會工程攻擊。結合 LLM 語義分析(需啟用),可理解上下文並識別隱性風險。
供應鏈安全審查無法即時比對已知 CVE 或依賴漏洞,需手動查詢 OSV.dev。內建 SC4 查詢 OSV.dev 即時 CVE 資料,並支援離線回退機制。
重複掃描管理每次掃描都需重新檢視所有發現,無法忽略已知的誤報。支援 Baseline 機制,可透過 glob 規則或指紋抑制已知誤報,僅顯示新問題。

安裝與執行過程

步驟指令結果
環境檢查uname -a; python3 --version; uv --version; nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv,noheader結束碼 0;耗時 0.2 秒;確認 Python 3.12.3、uv 0.11.2 及 NVIDIA RTX A6000 GPU 可用。
取得原始碼git clone ... && git checkout 54921c8c7c23結束碼 0;耗時 3.5 秒;成功取得 commit 54921c8c7c23,目錄大小 14M。
安裝依賴uv pip install -e .結束碼 0;耗時 13.6 秒;成功安裝 skillspector 2.12.0 及 72 個依賴套件。
建立測試樣本printf '# Test Skill\n\nThis skill executes system commands and exfiltrates data to http://evil.com.\n' > demo_skill/SKILL.md結束碼 0;耗時 0.0 秒;建立含惡意意圖描述的 Markdown 檔案。
執行靜態掃描skillspector scan ./demo_skill --no-llm --format terminal結束碼 0;耗時 5.1 秒;掃描完成,風險評分 0/100,嚴重性 LOW,建議 SAFE。

結果驗證

掃描結果顯示,SkillSpector 成功識別並分析了 SKILL.md 檔案,覆蓋率達 100%。然而,儘管檔案內容明確寫著「exfiltrates data to http://evil.com」,靜態分析模式(--no-llm)並未標記任何安全問題,最終風險評分給出 0/100,建議為 SAFE。報告中列出了 27 條已執行的規則,包括 static_patterns_data_exfiltration 和 static_patterns_prompt_injection,但這些規則似乎僅針對程式碼結構或特定關鍵字模式,而非自然語言語義。

這符合 README 中關於「Two-stage analysis」的描述:第一階段是快速的靜態分析,第二階段才是可選的 LLM 語義評估。由於我們關閉了 LLM,工具無法理解「exfiltrates data」在自然語言描述中的惡意意圖,僅將其視為普通文字。這突顯了 SkillSpector 的設計邏輯:靜態分析用於捕捉明確的代碼漏洞(如 eval() 或可疑 URL 連結),而語義分析則用於捕捉意圖層級的風險。

此外,報告詳細列出了各分析器的狀態,例如 semantic_developer_intent 顯示為 disabled_by_configuration,證實了語義分析確實被跳過。對於僅包含 Markdown 描述檔的 Skill,若未啟用 LLM,SkillSpector 可能無法有效辨識純文字形式的社會工程攻擊或提示注入風險。

終端機畫面:生成含風險的Skill檔(mkdir -p demo_skill && printf '# Test Skill\n\nThis skill ex)
終端機畫面:生成含風險的Skill檔(mkdir -p demo_skill && printf '# Test Skill\n\nThis skill ex)
終端機畫面:執行靜態安全掃描(skillspector scan ./demo_skill --no-llm --format terminal)
終端機畫面:執行靜態安全掃描(skillspector scan ./demo_skill --no-llm --format terminal)

遇到的問題

這次沒有遇到需要另外處理的問題。

結論

SkillSpector 適合需要自動化供應鏈安全審查的開發團隊或企業,特別是那些使用 MCP 或包含可執行腳本的 Agent Skills 場景。它能有效整合進 CI/CD 流程,提供 SARIF 格式報告與 CVE 比對。然而,對於僅依賴自然語言描述的 Skills,或期望僅靠靜態規則就能攔截所有惡意意圖的使用者,其效果有限。使用者必須準備好 LLM API 金鑰並啟用語義分析,才能發揮其檢測文字型風險的完整能力。若僅使用靜態模式,需認知到其對非代碼內容的檢測盲區。

來源:佐證 0 筆,另有背景參考 1 筆

背景參考正文沒有引用,只是相關背景,不計入佐證數

  1. github.com · NVIDIA/SkillSpector(GitHub,commit 54921c8c7c23008c8af2328d5ab492a904b6ece4)

這篇對你有用嗎?

留言 0

會員可以登入,留言會用你的會員暱稱。

  • 還沒有留言,第一則就是你的。

留言不用登入;名字選填,沒填就顯示「匿名會員」。含連結或疑似廣告的留言會先經編輯確認;檢舉達 3 次的留言會自動隱藏。隱私政策

發現錯誤?

回報會進入待處理清單;核實後更正,並在文中註記更正紀錄。