研究發現與威脅概述
Wiz 首席安全研究員 Rami McCarthy發現 Visual Studio Code 市場揭露了 550 多個獨特的秘密,促使微軟加強安全措施。McCarthy在周三的一篇部落格文章中詳細介紹了其研究團隊如何發現發布VS Code(微軟開發的源代碼編輯器)擴展程序的組織存在機密洩露的模式。研究團隊也研究了 Open VSX Registry,這是Eclipse 基金會管理的VS Code Marketplace 的開源替代品。研究人員發現了來自數百個擴充功能發布者的 550 多個經過驗證的金鑰,其中許多來自 OpenAI、Google Gemini、Anthropic、XAI、DeepSeek、HuggingFace 和 Perplexity 等 AI 供應商。
這項驚人的發現,標誌著開發者工具鏈中的一個嚴重安全盲點。VS Code 作為全球最受歡迎的源代碼編輯器,其擴展生態系統的安全性直接影響數百萬開發者乃至其背後企業的程式碼和基礎設施安全。研究人員的發現不僅限於一般 API 金鑰,而是涉及高價值的存取憑證,構成了對軟體供應鏈完整的關鍵威脅。
機密洩露的技術細節與嚴重性
VS Code 擴充功能以 .vsix 套件的形式在市場上分發,這是一個壓縮的存檔檔案。然而,擴展程序發布者經常在其中包含敏感數據,因為他們不知道這些包是完全公開的,再不是因為他們沒有在提交擴展程序之前掃描硬編碼的機密信息。
這些外洩的機密多達 67 種不同類型,主要可分為三大類:
AI 平台憑證: 由於 AI 工具在開發工作流程中日益普及,大量用於 OpenAI、Google Gemini 等 AI 供應商的 API 金鑰被硬編碼並洩露在擴充功能包中,使攻擊者可以利用這些憑證進行未經授權的存取或濫用服務。
高風險平台令牌: 涉及 Amazon Web Services (AWS)、Google Cloud Platform (GCP)、GitHub、Stripe 和 Auth0 等關鍵雲服務和身份驗證平台的存取令牌。這些令牌一旦洩露,可能導致攻擊者完全接管企業的雲端資源或程式碼倉庫。
資料庫憑證: 包括 MongoDB、Postgres 和 Supabase 等資料庫的密鑰,嚴重威脅到應用程式的底層數據安全。
McCarthy寫道:“內部擴展程序不應該公開分發,但通常是為了方便。在一個案例中,我們發現了一個 VSCode Marketplace PAT,它可以讓我們將目標惡意軟體推送到一家市值 300 億美元的中國巨型企業的員工手中。” 這段描述清楚地揭示了最高等級的風險:發布存取令牌(Personal Access Tokens, PATs)的洩露。在發現的 550 多個機密中,超過 100 個擴充功能洩露了有效的 VS Code Marketplace 或 Open VSX 的 PATs,這些令牌足以影響超過 15 萬個用戶的安裝基數。
供應鏈攻擊的潛在路徑與影響
洩露的 PATs 構成了最直接且具毀滅性的供應鏈攻擊媒介。由於 VS Code 擴充功能預設會自動靜默更新,攻擊者一旦取得這些發布令牌,便能透過官方管道直接發布帶有惡意程式碼的更新包,藉此將惡意軟體植入廣大開發者機器中,實現所謂的「供應鏈投毒」。
資安專家強調,IDE 擴充功能是軟體供應鏈中最為脆弱的一環,它們通常以不受限制的權限執行,能存取開發者的本地檔案系統、SSH 金鑰、源代碼,甚至能運行 OS 級別的 shell 命令。這使得惡意行為者可以利用這些洩露的 PATs,將惡意程式碼(例如竊取憑證或遠端控制的 Payload)偽裝成合法的更新推送給數百萬用戶,從而導致大規模的資料外洩或系統損害,使開發者成為惡意攻擊的受害者。
官方回應與研究建議
面對此一大規模安全問題,微軟迅速做出反應,在接獲通報後立即撤銷了所有被驗證洩露的 PATs,並承諾對市場的安全審核機制進行重大強化。微軟已著手在擴充功能發布流程中實施機密掃描 (Secret Scanning) 功能,旨在動態偵測並阻止任何包含驗證機密的擴充功能上架。此外,微軟也將對所有現有擴充功能進行定期的大規模重新掃描,以確保開發者環境的持續安全。
此外,研究員 McCarthy 也向組織和開發者提出了實用建議:
市場選擇與審查: McCarthy鼓勵各組織使用 VS Code 市場來購買擴展,因為「目前,與 OpenVSX 市場相比,它的審查更加嚴格,控制力更強」。 雖然兩個市場都存在風險,但微軟官方市場在事後處理和控制措施上顯然更具優勢。
限制與清單: McCarthy 還建議限制已安裝的 VS Code 擴充功能的數量,並考慮為其使用允許清單;為整合開發環境 (IDE) 擴充功能建立清單; 組織應實施嚴格的應用程式白名單政策,只允許經過內部安全審核的擴充功能安裝,並對其進行定期審查。
安裝前信任檢查: 並在安裝之前仔細檢查擴充的信任標準,例如安裝、評論、發布者信譽和其他元資料。 開發者應對每一個新增的擴充功能保持高度警覺,特別是對於新發布、低下載量或發布者信譽不明的擴充功能。
發布者責任: 擴充功能發布者必須在打包前,確保所有敏感資訊(如 .env
文件、測試用的 API 金鑰等)已被徹底清除或排除在 .vsix
文件之外,並應使用具備機密掃描功能的最新版發布工具。
總結與安全警示
VS Code 擴展市集的大規模機密外洩事件,是當代軟體供應鏈風險不斷升級的縮影。它清楚地表明,任何第三方套件或擴充功能儲存庫,都必須被視為高風險的潛在攻擊媒介。企業必須將 IDE 擴充功能的安全性提升到與核心程式碼庫、CI/CD 管道同等重要的位置,透過技術工具與嚴格的流程管理,才能有效抵禦來自軟體供應鏈的致命威脅。開發者與企業應當實施最小權限原則,嚴格區隔開發環境與生產環境的憑證,並將所有的 IDE 擴充功能視為不可或缺但充滿風險的依賴項,持續進行安全審核。
資料來源:https://www.darkreading.com/application-security/leaks-microsoft-vs-code-marketplaces-supply-chain-risks