Geiger: Inventorying AI Agents and MCP Servers for Machine Security

Geiger 提供單一指令即可對機器上安裝的所有 AI agent、Model Context Protocol (MCP) server、plugin 以及 AI extension 進行清點。它能識別這些工具可以存取哪些資源——例如檔案系統、網路或儲存的憑證——讓使用者在 AI agent harness 快速擴散的時代,能夠理解其機器的攻擊面。

Core Functionality and Security Model

Geiger 作為一個唯讀掃描器,透過分析已知的配置位置與目錄來識別 AI 工具。它不會執行它所發現的 agent,也不會監控其執行時行為;相反地,它會根據其配置來映射其可能獲得的權限。

The Three Security Promises

為了確保該工具本身不會成為安全風險,Geiger 遵循三項嚴格的限制:

  1. Read-only Operation: 工具本身從不寫入磁碟,除非使用者透過 flag 顯式要求生成 JSON 或 HTML 報告。
  2. Zero Telemetry: 沒有任何數據離開機器。該工具沒有外部端點,也不會追蹤使用統計數據。
  3. Secrets Protection: Geiger 會透過「形狀」識別憑證的存在(例如,識別名為 API_KEY 的 key),但它從不輸出憑證的實際值。

Detection Capabilities

Geiger 會跨多個生態系統進行掃描,以提供系統上 AI 足跡的全面視圖。每個發現項都被標記了其來源(registry、git、local script 等)及其暴露程度。

Supported Ecosystems

  • Claude Code & MCP Hosts: 偵測 Claude Desktop、Cursor、Windsurf、VS Code、Cline、Roo Code、Continue 與 Zed 的全域與專案級別的 MCP server、hooks 與 plugin。
  • General AI Agents: 識別 Aider、Open Interpreter、GitHub Copilot CLI、Goose、LM Studio、Ollama 以及來自 Gemini、Grok 與 DeepSeek 的各種 CLI 工具的安裝情況。
  • Editor & Browser Extensions: 掃描 VS Code、Cursor 以及主要瀏覽器(Chrome、Edge、Brave、Firefox)中的 AI extension,包括其獲得的權限。
  • IDE Integrations: 識別 JetBrains IDEs 中的 AI Assistant 與 MCP 設定。

Exposure Labels

發現項根據 agent 獲准的可執行操作進行分類,使用如下標籤:

  • EXECUTES: Agent 可以執行機器上的程式碼。
  • BROAD-FILESYSTEM: Agent 對檔案系統具有廣泛的存取權。
  • HOLDS-SECRETS: Agent 的配置中包含憑證。
  • NETWORK / BROAD-WEB: Agent 具有網路或廣泛的網路存取權。

Usage and Fleet Management

Geiger 以無依賴性的 JavaScript package 分發,可透過 npx geiger-scan 在無需安裝的情況下執行。

Operational Modes

  • Baseline and Drift Detection: 使用者可以將機器狀態儲存至 JSON 檔案(--json baseline.json)並在後續掃描中配合使用 --diff flag。當與 --strict 結合使用時,若有任何新權限(例如程式碼執行)被引入,工具會以 code 2 退出,使其能夠作為機器安全性的「lockfile」。
  • Reporting: 除了終端機輸出外,Geiger 還會生成包含針對每個發現項的白話文修復建議的自包含 HTML 報告。
  • Enterprise Deployment: 對於託管服務提供商(MSPs)或 IT 部門,Geiger 可以作為排程任務執行,將 JSON 報告寫入中央共享空間,以便監控組織內的「Shadow AI」。

Technical Limitations

Geiger 是一個清點工具,而非完整的安全審計。其有效性受限於以下幾點:

  • Known Paths: 它僅讀取已知的配置位置;位於非標準路徑、容器或 WSL(從 Windows 掃描時)中的 agent 並不會被偵測到。
  • Static Analysis: 它讀取的是配置,而非執行時行為。它無法判斷一個 plugin 是否真的做了什麼,只能判斷它被允許做什麼。
  • No Maliciousness Detection: 它識別 package 的來源與其可存取範圍,但它不會判斷 package 是否具有惡意。

Community Insights

Hacker News 使用者強調了執行 AI agent 時隔離的必要性。一位貢獻者指出:

You really want to run these in a way so they cannot touch your system drive/general filesystem that you use to do real work on. Even SOTA models at the end of their context limit behave REALLY illogical and does mistakes frequently.

其他討論也強調了 Geiger 利用於治理公司來追蹤「Shadow AI」——即在企業環境中未經授權使用 AI 工具的行為。

Sources

相關

  • Dispatch
  • 專案
  • 專案
  • 專案
  • 專案