最近,Mend.io 研究團隊發現一個假冒的 VS Code擴充套件「truffelvscode」,這個套件名稱刻意拼錯,藉此冒充廣受歡迎的「truffle」擴充套件。這個套件實際上是一個多階段木馬(惡意程式)。本文章會深入解析這個惡意擴充套件的運作方式、混淆手法,以及相關攻擊指標(IOC)。
VS Code 擴充套件是用來增強 VS Code 功能的小工具,能基於這些小工具為 VS Code 加入新的功能、主題、除錯工具,還有其他整合服務。這讓開發者能客製化工作流程、提升程式碼品質,還能跟 Git、Docker,甚至 AI 編碼助手等工具結合。這些擴充套件都是從 VS Code 市集安裝的。
該套件於 2025 年 2 月 1 日發布。經過檢查,套件內僅包含兩個檔案:package.json 與 index.js。package.json 看起來很正常,沒有可疑的安裝腳本,但描述卻和原版 truffle 擴充套件一模一樣:「Build, debug and deploy smart contracts on EVM-compatible blockchains(在 EVM 相容的區塊鏈上建置、除錯及部署智能合約)」。
圖 2. 合法的 package.json 檔案,內含原版擴充套件描述
查看 index.js 檔案時,發現裡面程式碼高度混淆。進一步用解混淆工具分析後,Mend.io 研究團隊揭露了檔案最後有一段 exec 指令,會連接外部主機下載並執行惡意軟體的第一階段。
圖 3. 混淆後的 index.js 檔案,內含惡意的 exec 指令
這次攻擊分成好幾個階段,攻擊者會一步步累積控制權,最後能遠端操控受害系統。
當執行那個混淆過的 index.js 檔案時,它會下載一個同樣經過混淆的批次檔。這個批次檔是用 Abobus 混淆工具處理過,讓靜態分析變得非常困難。這種混淆不僅隱藏了腳本的真實功能,也讓自動化偵測和逆向工程變得更棘手。
圖4. 混淆過的批次檔
為了了解這個混淆批次檔的行為,Mend.io 研究團隊在隔離環境中執行了它。執行後發現,該批次檔會利用隱藏的 PowerShell WebRequest 下載一個動態連結庫(DLL)檔案,這就是惡意軟體的第二階段。下載完成後,批次檔會立即執行這個 DLL,這是攻擊鏈中的關鍵組件,也是啟動下一波感染的載體。
圖 5. 隱藏的 PowerShell 執行,下載第二階段 DLL
為了分析可疑的 DLL,Mend.io 研究團隊使用 any.run 服務,一個能自動動態分析惡意軟體行為的線上沙盒。根據分析報告顯示,這個 DLL 的主要目的就是下載並執行惡意軟體的第三階段,也是最後階段。
圖 6. Any.run 分析報告,揭露惡意軟體第三階段行為
這個階段會下載並執行 ScreenConnect 安裝程式,ScreenConnect 通常是一款合法的遠端桌面應用程式。Mend.io 研究團隊在解壓縮安裝程式後,發現其中有一個 system.config 檔案,裡面包含了預先設定好的遠端主機位址、連接埠和加密金鑰,這些設定會讓 ScreenConnect 立即建立一條連線,將受感染的電腦與攻擊者的主機連接起來。
圖 7. ScreenConnect 設定檔,預先配置遠端主機和連接埠
最後,為了證明連線確實建立,執行了指令「netstat -ano | findstr 8041」,結果顯示連線成功,驗證了 Mend.io 研究團隊的分析。
圖 8. Netstat 指令回應,證實 Mend.io 團隊的分析結果
此次發現的 truffelvscode 偽裝擴充套件,凸顯了軟體供應鏈攻擊對開發者日益嚴重的威脅。攻擊者透過打字錯誤模仿(typosquatting)手法,散布多階段惡意軟體,進而遠端控制受害系統。這起事件提醒我們,安裝 VS Code 擴充套件時必須格外謹慎,尤其是來自公開套件註冊平台如 npm 的套件。
為了降低此類威脅,開發者與資安團隊可採取以下措施:
隨著攻擊手法不斷進化,主動防禦更顯重要。持續更新資訊並善用適當的資安工具,能幫助你保護開發環境,避免遭受類似的軟體供應鏈攻擊。
Mend.io 可即時掃描應用程式中的 OSS 套件,識別其中的安全漏洞和合規性風險,並提供修復漏洞和解決合規性問題的建議。同時,Mend.io 也具備授權合規性管理功能,可自動識別軟體中的開源授權,確保符合企業內部政策與法規要求,避免潛在的法律風險。此外還能生成軟體物料清單(SBOM),並提供持續監控和更新。
透過 Mend.io 企業可將開源安全與合規檢測無縫整合至 CI/CD 開發流程,在開發早期就能發現與解決問題,減少修復成本與合規性風險並提升開發效率。
• 快速搜尋弱點、元件,輕鬆收集完整資訊
• 提供弱點修復建議與完整風險評估資訊
• 多面向報表,有效透析問題
• Shift Left,降低修補成本
• 持續追蹤資安弱點與惡意程式威脅