資訊中心管理
假冒 VS Code 擴充攻擊事件: 從拼字錯誤 一路滲透到遠端入侵
前往目錄
最近,Mend.io 研究團隊發現一個假冒的 VS Code 擴充套件「truffelvscode」,這個套件名稱刻意拼錯,藉此冒充廣受歡迎的「truffle」擴充套件,但實際上是一個多階段木馬惡意程式。本文章會深入解析這個惡意擴充套件的運作方式、混淆手法,以及相關攻擊指標(IOC)。

最近,Mend.io 研究團隊發現一個假冒的 VS Code 擴充套件 「truffelvscode」,這個套件名稱刻意拼錯,藉此冒充廣受歡迎的「truffle」擴充套件,但實際上是一個多階段木馬惡意程式。本文章會深入解析這個惡意擴充套件的運作方式、混淆手法,以及相關攻擊指標(IOC)。

惡意擴充套件攻擊鏈
惡意擴充套件攻擊鏈

VS Code擴充套件

VS Code 擴充套件是用來增強 VS Code 功能的小工具,能基於這些小工具為 VS Code 加入新的功能、主題、除錯工具,還有其他整合服務。這讓開發者能客製化工作流程、提升程式碼品質,還能跟 Git、Docker,甚至 AI 編碼助手等工具結合。這些擴充套件都是從 VS Code 市集安裝的。

惡意擴充套件分析

該套件於 2025 年 2 月 1 日發布,經過檢查,套件內僅包含 package.json 與 index.js。package.json 看起來很正常,沒有可疑的安裝腳本,但描述卻和原版 truffle 擴充套件一模一樣。

合法的 package.json 檔案,內含原版擴充套件描述
合法的 package.json 檔案,內含原版擴充套件描述

index.js 檔案裡的程式碼高度混淆,進一步用解混淆工具分析後,Mend.io 研究團隊揭露了檔案最後有一段 exec 指令,會連接外部主機下載並執行惡意軟體的第一階段。

混淆後的 index.js 檔案,內含惡意的 exec 指令
混淆後的 index.js 檔案,內含惡意的 exec 指令

惡意擴充套件的多階段攻擊鏈

這次的惡意擴充套件攻擊分成好幾個階段,攻擊者會一步步累積控制權,最後能遠端操控受害系統。

第一階段:下載混淆的批次檔

當執行混淆過的 index.js 檔案時,它會下載一個同樣經過混淆的批次檔。這個批次檔用 Abobus 混淆工具處理過,讓靜態分析變得非常困難。這種混淆不僅隱藏了腳本的真實功能,也讓自動化偵測和逆向工程變得更棘手。

混淆過的批次檔
混淆過的批次檔

第二階段:執行惡意 DLL

為了瞭解這個經過混淆的批次檔行為, Mend.io 研究團隊在隔離環境中進行執行。結果發現,這個批次檔是透過隱藏的 PowerShell WebRequest 指令,下載一個動態連結函式庫(DLL)檔案,作為惡意程式攻擊的第二階段。下載完成後,批次檔會立刻執行該 DLL,而這個 DLL 是攻擊鏈的重要環節,負責啟動後續的感染程序。

隱藏的 PowerShell 執行,下載第二階段 DLL
隱藏的 PowerShell 執行,下載第二階段 DLL

第三階段:安裝預設配置的 ScreenConnect 遠端連線客戶端,取得被入侵主機的遠端存取權限

為了分析可疑的 DLL,Mend.io 研究團隊 使用 any.run 服務。根據分析報告顯示, 這個 DLL 的主要目的就是下載並執行惡意軟體的第三階段,也是最後階段。

Any.run 分析報告,揭露惡意軟體第三階段行為
Any.run 分析報告,揭露惡意軟體第三階段行為

這個階段會下載並執行 ScreenConnect 安裝程式,ScreenConnect 一般來說是一款合法的遠端桌面應用程式。Mend. io 研究團隊在解壓縮安裝程式後,發現其中有一個 system.config 檔案,裡面包含了預先設定好的遠端主機位址、連接埠和加密金鑰,這些設定會讓ScreenConnect 立即建立一條連線,將受感染的電腦與攻擊者的主機連接起來。

ScreenConnect 設定檔,預先配置遠端主機和連接埠
ScreenConnect 設定檔,預先配置遠端主機和連接埠

最後,為了證明連線確實建立,執行了指令「netstat -ano | findstr 8041」,結果顯示連線成功,驗證了 Mend.io 研究團隊的分析。

Netstat 指令回應,證實 Mend.io 研究團隊的分析結果
Netstat 指令回應,證實 Mend.io 研究團隊的分析結果

防範惡意擴充套件攻擊的關鍵行動

此次發現的 truffelvscode 偽裝擴充套件,凸顯了軟體供應鏈攻擊對開發者日益嚴重的威脅。攻擊者透過打字錯誤模仿(typosquatting)手法,散布多階段 惡意軟體,進而遠端控制受害系統。這起事件提醒我們,安裝 VS Code 擴充套件時必須格外謹慎,尤其是來自公開套件註冊平台,如 npm 的套件。

為了降低此類威脅,開發者與資安團隊 可採取以下措施:

• 驗證套件真實性,確認發佈者資訊、下載次數與使用者評價

• 安裝前仔細分析套件內容,尤其是檔案稀少且含混淆程式碼的擴充套件

• 監控網路流量,留意是否有異常的外部連線行為,可能是惡意軟體在運作

• 採用自動化安全掃描工具,偵測打字錯誤模仿、程式碼混淆與惡意相依性

隨著攻擊手法不斷進化,主動防禦更顯重要。持續更新資訊並善用適當的資安工具,能幫助你保護開發環境,避免遭受類似的軟體供應鏈攻擊。

關於 Mend.io Open Source 管理及檢測平台

Mend.io 是專為企業管理開源軟體(OSS)的安全性和合規性而設計的 SCA 軟體組成分析平台,能幫助企業自動化開源元件風險管理,確保合規並提升軟體供應鏈安全。

Mend.io 可即時掃描應用程式中的 OSS 套件,識別其中的安全漏洞和合規性風險,並提供修復漏洞和解決合規性問題的建議,降低企業因開源套件漏洞而面臨的資安風險。同時, Mend.io 也具備授權合規性管理功能,可自動識別軟體中的開源授權,確保符合企業內部 政策與法規要求,避免潛在的法律風險。此外,還能生成軟體物料清單(SBOM),並提供持續監控和更新。

透過 Mend.io,企業可將開源安全與合規檢測無縫整合至 CI/CD 開發流程,在開發早期就 能發現與解決問題,減少修復成本與合規性風險並提升開發效率。

了解 Mend.io Open Source 管理及檢測平台>>>https://www.gss.com.tw/mend-io