https://www.informationsecurity.com.tw/seminar/2025_ot/
https://www.informationsecurity.com.tw/seminar/2025_ot/

新聞

資安風險!微軟禁下載量達900萬次的VSCode Material Theme擴充套件

2025 / 02 / 28
編輯部
資安風險!微軟禁下載量達900萬次的VSCode Material Theme擴充套件
微軟近日從Visual Studio Marketplace中移除了兩個廣受歡迎的VSCode擴充套件:「Material Theme – Free」和「Material Theme Icons – Free」,原因是這些擴充套件被發現可能包含惡意程式碼。

這兩個擴充套件極為流行,總共被下載近900萬次。目前,使用者在VSCode中會收到自動停用這些擴充套件的警示通知。擴充套件的發布者Mattia Astorino(又稱equinusocio)在VSCode市集上有多個擴充套件,總安裝量超過1300萬次。由於微軟的移除動作,許多開發者的工作流程受到了嚴重影響。

安全研究者發現可疑程式碼

此次發現源於網路安全研究人員Amit Assaraf和Itay Kruk的調查,他們專門研究並掃描VSCode的惡意擴充套件。根據他們今天發布的報告,研究人員在這些擴充套件中發現了可疑程式碼,並將調查結果報告給了微軟。

外媒報導,安全研究團隊使用特殊開發的掃描工具在這些擴充套件的程式碼中發現了不尋常的活動模式。資深研究員Amit Assaraf指出,這些可疑的程式碼很可能是在某次更新中被植入,這種情況通常暗示兩種可能性:擴充套件依賴的第三方程式庫遭到了供應鏈攻擊,或是開發者本人的帳戶被駭客入侵。

值得注意的是,研究人員特別強調,正常的VSCode主題擴充套件應僅包含靜態JSON配置文件,不需要也不應該執行任何動態程式碼。任何偏離這一模式的行為都被視為高度可疑。

技術專家進一步檢查發現,擴充套件中的「release-notes.js」文件包含高度混淆的JavaScript代碼,這在通常追求透明和可讀性的開源項目中是非常罕見且危險的信號。混淆的程式碼中頻繁出現與使用者名稱和密碼相關的引用,這進一步增加了安全疑慮。

開發者回應

擴充套件的開發者Mattia Astorino(equinusocio)對擴充套件被視為惡意的擔憂作出回應,表示問題是由過時的Sanity.io依賴項引起的,該依賴項「似乎被入侵」。

Astorino在微軟的VSMarketplace儲存庫中發表回應,堅稱自己的擴充套件並無惡意:「Material Theme中從未包含任何有害內容。問題只出在一個從2016年就開始使用的舊版sanity.io依賴項,該元件用於從Sanity無頭CMS顯示發行說明,這也是微軟所發現的唯一問題。」

他進一步表示,該依賴項已存在多年且一直通過各項安全檢查:「這個元件自2016年以來一直存在,並通過了所有檢查。現在它可能已被入侵,但微軟完全沒有聯繫我們請求修復。他們直接下架了所有內容,導致數百萬用戶受到影響,甚至在VSCode中引發了錯誤循環。」

對於程式碼混淆的質疑,Astorino解釋道:「我們確實發布了一個混淆處理過的index.js檔案,其中包含所有主題命令和邏輯。之所以進行混淆是因為擴充套件現在採用閉源模式;但即使刪除該檔案,擴充套件仍能透過純JSON檔案正常運作。」他表達了對微軟處理方式的不滿:「修復這個舊依賴項只需30秒,但微軟未給我們任何機會就破壞了一切。」

安全建議

在情況明朗並確定擴充套件是否惡意之前,專家建議從所有專案中移除以下擴充套件:
  • equinusocio.moxer-theme
  • equinusocio.vsc-material-theme
  • equinusocio.vsc-material-theme-icons
  • equinusocio.vsc-community-material-theme
  • equinusocio.moxer-icons
開發者Astorino後來發布了一個據稱是「完全重寫的擴充套件」,沒有任何依賴項,名為「Fanny Themes」,但微軟隨後也將其移除。

微軟表示,他們將在VSMarketplace GitHub存儲庫中發布有關擴充套件和所有檢測到的惡意活動的更多詳細信息。

專家觀點

資安專家建議開發者應定期檢查其開發環境中使用的擴充套件,並關注官方安全公告。即使是受歡迎的擴充套件也可能成為攻擊者的目標,尤其是通過供應鏈攻擊或對開發者帳戶的入侵。

此事件再次強調了開源生態系統中的供應鏈安全問題,以及保持所有依賴項最新並從可信來源安裝軟體的重要性。對於企業環境,建議實施嚴格的擴充套件審查政策,並考慮使用私有擴充套件市集來減少安全風險。