Perplexity開源Bumblebee:面向開發者終端的只讀供應鏈掃描器
Perplexity開源了其內部使用的安全工具Bumblebee,這是一個用於macOS和Linux開發者終端的只讀供應鏈掃描器,能夠檢查npm、PyPI、Go模組、MCP配置、編輯器擴充套件和瀏覽器擴充套件,而無需執行任何程式碼或呼叫包管理器。
Perplexity 公司近日在 GitHub 上開源了其內部使用的安全工具 Bumblebee。該工具專為 macOS 和 Linux 系統上的開發者終端設計,是一個只讀的供應鏈資產清單收集器。Bumblebee 完全使用 Go 語言編寫,不依賴任何非標準庫,目前已被 Perplexity 內部用於保護其搜尋產品 Comet、Comet 瀏覽器以及 Computer 代理的開發環境。
隨著攻擊者越來越多地將目標對準開發者機器上的軟體包、編輯器擴充套件和 AI 工具配置,而非僅限於生產系統,安全團隊需要一種能夠快速檢查開發人員本地環境安全風險的工具。Bumblebee 正是為了解決這一痛點而誕生。當一個新的漏洞被公開時,安全團隊面臨的首要問題是:哪些開發者機器當前存在暴露風險?現有的 SBOM(軟體物料清單)和漏洞掃描器覆蓋的是構建產物和程式碼倉庫,而端點檢測與響應(EDR)產品追蹤的是程序執行和網路連線情況。兩者都無法全面檢查開發者本地機器的狀態,例如分散在檔案系統中的鎖檔案、軟體包後設資料、擴充套件清單以及 AI 工具配置。
Bumblebee 填補了這一空白。每當安全公告中提及某個軟體包、擴充套件或版本時,Bumblebee 能夠立即回答哪些機器上的磁碟後設資料與之匹配。該工具所覆蓋的生態系統是經過精心選擇的,對應了近期活躍的供應鏈攻擊活動,包括影響 npm、PyPI、RubyGems、Go 模組和 Composer 包的 Mini Shai-Hulud 系列攻擊,受影響的公司包括 TanStack、SAP 和 Zapier 等。
Bumblebee 採用一次性掃描模式,每次呼叫執行一次掃描後即退出。掃描節奏由操作者控制,可以透過 cron、launchd、systemd 或 MDM 裝置管理工具來安排。其輸出為 NDJSON(換行分隔的 JSON)格式,每行一條結構化的記錄,診斷資訊則輸出到標準錯誤流。
該工具支援三種掃描配置:基線模式掃描常見的全域性和使用者包根目錄、語言工具鏈、編輯器擴充套件、瀏覽器擴充套件及 MCP 配置;專案模式針對配置的開發目錄(如 ~/code 或 ~/src);深度模式則在事件響應期間掃描操作者指定的根目錄,通常為裸露的家目錄。
在 Perplexity 內部,Bumblebee 被整合到一個五步工作流程中:威脅訊號從公開披露或第三方情報源到達;Perplexity Computer 隨後起草目錄更新,將訊號以結構化的條目形式錄入,包括生態系統、包名和版本,並開啟帶有來源連結的 GitHub PR;人類開發者稽核併合並 PR;接著 Bumblebee 在端點執行更新後的目錄,將發現結果共享給安全團隊。
Bumblebee 的掃描覆蓋四個主要領域:語言包管理器(npm、pnpm、Yarn、Bun、PyPI、Go 模組、RubyGems 和 Composer),直接讀取鎖定檔案和已安裝包的後設資料(如 package-lock.json、pnpm-lock.yaml、go.sum 及 *.dist-info/METADATA),但 v0.1 版本不支援 Bun 的二進位制鎖定檔案 bun.lockb,僅支援文本格式 bun.lock;AI 代理配置(MCP JSON 主機配置檔案,包括 mcp.json、.mcp.json、claude_desktop_config.json 等,但非 JSON 格式如 Codex 的 config.toml 和 Continue 的 YAML 暫不支援);編輯器擴充套件(VS Code、Cursor、Windsurf 和 VSCodium 的清單);瀏覽器擴充套件(Chromium 系瀏覽器如 Chrome、Comet、Edge、Brave、Arc 及 Firefox)。
Bumblebee 的只讀特性至關重要。npm 包可能攜帶自動執行的後安裝指令碼,如果掃描器呼叫 npm 來檢查暴露情況,那麼它已經觸發了本應查詢的攻擊。Bumblebee 透過從不執行安裝指令碼或生命週期鉤子、從不呼叫 npm、pnpm、bun 或 pip、從不讀取應用程式原始檔、也不進行程序或網路監控,完全避免了這一問題。它並非 EDR 產品。
每條包記錄包含主機名、作業系統、架構、生態系統、包名、版本、原始檔及置信度欄位。置信度為高表示精確的身份和版本來自規範後設資料,中表示身份可靠但版本或源不完整,低表示僅找到配置路徑或規格引用。安全團隊可以提供自己的暴露目錄,即指定生態系統、包名和受影響版本的簡單 JSON 檔案。當 Bumblebee 發現匹配時,會輸出包含嚴重性、目錄 ID 和證據的發現記錄,每條發現都可追溯到觸發它的目錄條目。此外,倉庫中還包含一個 threat_intel/ 目錄,提供了基於公開供應鏈攻擊報告構建的、持續維護的暴露目錄。
要開始使用 Bumblebee,需要 Go 1.25 或更高版本,安裝命令為:go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest。安裝後,執行 bumblebee selftest 可驗證二進位制檔案功能正常。該工具採用 Apache 2.0 許可證,當前版本為 v0.1.1。