AI 安全工具比較:promptfoo、garak、PyRIT、MCP 掃描器和 UltraProbe 各管哪一層
更新於 2026-10-12。各工具的功能、授權與語言取自各專案自己的 GitHub README 與官網。
這些工具不是互相取代,而是各測一層。 promptfoo、garak、PyRIT 是動態紅隊:對正在執行的模型或 AI 應用送出攻擊,看它實際怎麼回應。Snyk Agent Scan、Cisco MCP Scanner、mcpscan.ai 這類 MCP 掃描器,看的是 AI 接上的工具伺服器。NeMo Guardrails、Lakera Guard 是上線後的執行期防護。UltraProbe 只做其中一層:上線前讀你寫好的系統提示詞與工具描述,檢查 25 項防禦有沒有寫進去,不呼叫模型、不發動攻擊。
所以選工具的問題不是「哪個最好」,而是「哪一層還沒測」。下面先用一張表看分工,再逐類說明各自適合的時機,最後寫清楚 UltraProbe 做什麼、不做什麼。
一張表看分工
| 工具 | 類型 | 實際測什麼 | 要不要呼叫模型或外部 API | 授權 | 主要語言 |
| UltraProbe | 上線前靜態稽核 | 系統提示詞與工具描述的文字,檢查 25 項防禦是否缺席 | 不用,離線即可執行 | MIT | TypeScript(Node CLI 與 SDK) |
| promptfoo | 評測與動態紅隊 | 產生攻擊,送進你的模型、agent 或 RAG 應用,再評分回應 | 要:需要測試目標,紅隊模式也用模型產生與評分攻擊 | MIT | TypeScript |
| garak | 動態 LLM 弱點掃描 | 用探測(注入、越獄、資料外洩、毒性等)打模型,由偵測器判定失敗 | 要:需要目標模型 | Apache-2.0 | Python |
| PyRIT | 紅隊框架 | 讓紅隊人員用程式組合攻擊策略(含多輪攻擊)、轉換器與評分器 | 要:需要測試目標,常搭配評分模型 | MIT | Python |
| Snyk Agent Scan | Agent、MCP 伺服器與技能掃描 | 找出本機裝的 MCP 伺服器與技能,取回工具描述,檢查提示詞注入、工具投毒、工具遮蔽與有毒資料流 | 要:Snyk token;工具描述等元件資料會送到 Snyk 分析 API | Apache-2.0 | Python |
| Cisco MCP Scanner | MCP 伺服器掃描 | 用 YARA 規則、LLM 分析或 Cisco AI Defense API 掃 MCP 工具、提示與資源,也能掃伺服器原始碼 | YARA 模式可本機執行;LLM 與 API 模式要金鑰 | Apache-2.0 | Python |
| knostic MCP-Scanner | MCP 暴露面探索 | 用 Shodan 找網路上公開暴露的 MCP 伺服器,驗證並列舉它們的工具 | 要:Shodan API key | MIT | Python |
| mcpscan.ai | 線上 MCP 原始碼掃描 | 貼上 MCP 伺服器的 GitHub 網址,檢查原始碼層的漏洞,例如命令注入 | 線上服務,由對方抓取 repo 掃描 | 頁面未標示開源授權 | 網頁服務 |
| NeMo Guardrails | 執行期防護 | 在對話當下套用可程式化的輸入與輸出規則 | 在你的應用裡執行,許多規則會呼叫模型 | Apache-2.0 | Python |
| Lakera Guard | 執行期防護(商業服務) | 以 API 即時檢查輸入內容是否含提示詞注入等攻擊 | 要:Lakera API | 商業授權 | API 服務 |
動態紅隊:promptfoo、garak、PyRIT
三者都要一個「會回話的目標」:你的模型、聊天機器人或 agent 的測試環境。它們送出攻擊、收回應、判定成敗,所以能回答最實際的問題:這個系統現在擋不擋得住。代價是要先有能跑的環境、每次測試會用掉 token,而且模型回應有隨機性,同一組測試重跑,結果可能不同。
promptfoo 是評測加紅隊的 CLI 與函式庫,同一套設定可以做功能回歸與安全測試,也能接進 CI/CD;它的 README 寫明專案現在屬於 OpenAI,仍以 MIT 授權開源。適合已經用設定檔管理測試案例、想把安全測試併進同一條流程的團隊。
garak 是 NVIDIA 維護的 LLM 弱點掃描器,README 自比為 LLM 版的 nmap 或 Metasploit。指定目標模型後,預設會把它知道的探測全部跑一遍,適合想要大範圍、少設定的掃描。
PyRIT 是 Microsoft 的紅隊框架,不是一鍵掃描器:攻擊策略、多輪對話攻擊、輸入轉換、評分方式,都由你用 Python 組合。適合有專人做紅隊、要測複雜情境的團隊。
MCP 伺服器掃描:Snyk Agent Scan、Cisco MCP Scanner、knostic、mcpscan.ai
AI 助理透過 MCP(Model Context Protocol)接上檔案、資料庫、Git 這些工具之後,風險多了一層:工具描述可能被投毒、參數可能被注入、工具權限可能過大。這一類工具看的是伺服器與工具本身,不是你的提示詞。
Snyk Agent Scan(前身是 Invariant Labs 的 mcp-scan)會找出你電腦上裝的 MCP 伺服器與 agent 技能,取回工具描述,檢查提示詞注入、工具投毒、工具遮蔽與有毒資料流。要注意兩件事:它的 README 警告掃描時可能啟動伺服器、執行設定裡的指令,建議在沙盒裡跑;分析時會把工具描述等元件資料送到 Snyk 的 API。
Cisco MCP Scanner 有三種引擎,可以單用或合用:本機的 YARA 規則、LLM 分析、Cisco AI Defense API;也能離線掃預先匯出的 JSON,或掃 MCP 伺服器原始碼的行為。想在 CI 或內網環境掃,YARA 加離線模式是不需要外部金鑰的組合。
knostic MCP-Scanner 和 mcpscan.ai 常被一起提到,用途其實不同。knostic 用 Shodan 搜尋網路上公開暴露的 MCP 伺服器,適合研究暴露面,不是用來審你自己的伺服器;mcpscan.ai 是網頁服務,貼上 MCP 伺服器的 GitHub 網址,檢查原始碼層的漏洞,例如把參數直接接進系統指令的命令注入。
執行期防護:NeMo Guardrails、Lakera Guard
前兩類都在上線前測,這一類在上線後擋。NeMo Guardrails 是 NVIDIA 的開源工具包,在對話流程裡加上可程式化的輸入與輸出規則;Lakera Guard 是商業 API,在內容送進模型前即時檢查是否含提示詞注入等攻擊。它們會增加每次請求的延遲與成本,換來的是上線後仍有一道關卡。
UltraProbe 在哪一層:做什麼、不做什麼
UltraProbe 是上線前的提示詞防禦靜態稽核。它讀系統提示詞或工具描述的文字,檢查 25 項防禦有沒有寫進去:12 項對應 OWASP LLM Top 10,13 項對應 OWASP Agentic Top 10 的 ASI01 到 ASI09。
- 不呼叫模型、不需要 API key:同一段文字永遠得到同樣結果,幾毫秒跑完,可以放進 pre-commit 與 CI,輸出 SARIF 給 GitHub Code Scanning。
- 認得中文寫法:規則同時比對英文與繁體中文的防禦語句,例如「不要透露系統提示」。提示詞用中文寫的團隊,不會因為規則只認英文而被判成零防禦。
- 工具描述也能掃:AI 決定要不要呼叫工具時讀的是描述,所以 MCP 工具描述也是提示詞的一部分,可以用同一套規則檢查。
- 免費、開源:網頁版 /probe 免註冊;CLI 是 npm 套件 ultraprobe,原始碼在 GitHub,MIT 授權。
它不做的事:不發動攻擊,所以無法證明模型真的擋得住,這要靠動態紅隊;不連線、不執行、不讀 MCP 伺服器的程式碼,也偵測不到執行期被換掉的工具,這要靠 MCP 掃描器;規則比對可能漏掉寫法特殊的防禦,也可能把只是提到關鍵字的句子算成有防禦;ASI10(失控的 agent)屬於執行期治理,不在範圍內。
25 項防禦各自檢查什麼、對應哪一條 OWASP,列在 GitHub README 的向量表。
建議的組合
- 寫提示詞與工具描述時:UltraProbe 放進 pre-commit 或 CI,漏寫防禦就擋下。
- 有測試環境之後:用 promptfoo、garak 或 PyRIT 對它跑紅隊,確認實際擋得住。
- 每接一個 MCP 伺服器:用 Snyk Agent Scan 或 Cisco MCP Scanner 在沙盒裡掃,並檢查它要求的權限。
- 上線之後:執行期防護加上最小權限,付款、刪檔、對外寄信這類高風險動作要人工核准。
想先弄懂攻擊怎麼進來,可以讀《提示詞注入是什麼》;MCP 的部分見《我們審計了 7 個官方 MCP server》裡的「MCP 伺服器有什麼風險、怎麼查」。
網站 AI 可見度那一半
UltraProbe 另一半功能是網站健檢:把 SEO、AEO、AAO 合成一個 AI 可見度分數(AVS)。這跟 Semrush 的 AI Visibility、Ahrefs 的 Brand Radar 不是同一件事:後兩者追蹤品牌在 AI 答案裡被提到幾次,UltraProbe 掃的是你的頁面本身讀不讀得到。兩類工具的差別見《品牌提及追蹤 vs 網站技術掃描》,和另一個免費掃描器的比較見《UltraProbe vs TWTools》。
常見問題
- 開源的 AI 安全掃描工具有哪些?
- 依測試層級分:動態紅隊有 promptfoo(MIT)、garak(Apache-2.0)、PyRIT(MIT);MCP 伺服器與 agent 元件掃描有 Snyk Agent Scan 與 Cisco MCP Scanner(都是 Apache-2.0);執行期防護有 NeMo Guardrails(Apache-2.0);上線前的提示詞防禦靜態稽核有 UltraProbe(MIT)。它們測不同層,通常要搭配使用。
- 怎麼檢查我的 AI 聊天機器人會不會被提示詞注入?
- 分兩步。第一步用靜態稽核(例如 UltraProbe)檢查系統提示詞有沒有寫防禦,幾秒內完成、不花 token;第二步用 promptfoo、garak 或 PyRIT 對測試環境裡的聊天機器人實際送出注入攻擊,看它怎麼回。前者告訴你漏寫了什麼,後者告訴你實際擋不擋得住。
- LLM 應用上線前要做哪些安全測試?
- 至少四項:提示詞與工具描述的防禦稽核;對測試環境的紅隊測試,涵蓋注入、越獄與資料外洩;每個 MCP 伺服器與外掛的掃描;權限檢查,確認每個工具能讀寫什麼、哪些動作要人工核准。OWASP LLM Top 10 與 OWASP Agentic Top 10 可以當檢查清單。
- MCP 伺服器有什麼安全風險,怎麼掃描?
- 主要三類:工具描述被投毒(描述裡藏了給 AI 的指令)、參數注入(使用者輸入直接流進系統指令或查詢)、權限過大(工具能碰的範圍超過需要)。工具描述與設定可以用 Snyk Agent Scan 或 Cisco MCP Scanner 掃,伺服器原始碼可以用 mcpscan.ai 或程式碼掃描工具檢查。UltraProbe 只檢查工具描述有沒有寫防禦語句,不掃伺服器本身。
- UltraProbe 可以取代 promptfoo 或 garak 嗎?
- 不行,它們測的是不同層。UltraProbe 不送攻擊,只檢查寫好的防禦,適合每次改提示詞都跑;promptfoo 和 garak 會送攻擊、看模型實際反應,適合在測試環境定期跑。兩者一起用。
- 有沒有認得中文提示詞的 AI 安全檢測工具?
- UltraProbe 由台灣的 Ultra Lab 開發,防禦規則同時比對英文與繁體中文的寫法,網頁版有繁體中文介面,免費、免註冊。它是靜態稽核,要測模型的實際反應,仍要搭配紅隊工具。
免費掃描你的系統提示詞 · 看 GitHub 原始碼 · Trust Center 資料處理說明