關閉選單
惡意 Visual Studio Code 擴充功能將木馬隱藏在偽造的 PNG 檔案中

資安研究人員發現了一項針對 Visual Studio Code(VS Code)應用程式商店開發者的持續性、高複雜度攻擊活動。此活動涉及 19 個惡意擴充功能,它們利用「木馬程式」(Trojan)的經典手法,將惡意酬載巧妙地偽裝成無害的檔案和受信任的程式碼依賴項。最令人擔憂的策略是,攻擊者篡改了一個下載量高達數十億次的熱門依賴項,並將最終的惡意 JavaScript 程式碼隱藏在一個副檔名為 .png 的圖片檔案中,對開發者和自動化安全工具造成極大的迷惑。

 

針對 VS Code 開發者的供應鏈攻擊

網路安全公司 ReversingLabs (RL) 偵測到一項針對 Visual Studio Code (VS Code) 應用程式商店開發者的複雜且持續時間較長的攻擊活動。該活動共發現 19 個惡意擴充程序,每個擴充功能都隱藏著一個木馬程式。 這些惡意擴充功能透過模仿合法且受歡迎的工具名稱來誘騙開發者安裝,一旦安裝,即為攻擊者提供了潛入開發環境的立足點。

 

惡意軟體隱藏與傳播機制

惡意軟體的隱藏機制設計得極為巧妙,利用開發者對既有工具和依賴項的信任:

據RL威脅研究員Petar Kirhmajer稱,攻擊者使用了經典的木馬技術,即將惡意軟體偽裝成無害的檔案。在本例中,惡意軟體隱藏在擴充功能的依賴項資料夾中,該資料夾包含擴充功能正常運作所需的必要預先包裝程式碼。

攻擊者採取了一項聰明的策略。他們沒有添加新程式碼,而是篡改了一個非常流行且受信任的依賴 path-is-absolute,該依賴項自 2021 年以來已累積下載超過 90 億次。


他們先修改了這個受信任的軟體包,然後再將其打包到惡意擴充功能中,並添加了新的程式碼。這段新程式碼的唯一作用就是在 VS Code 啟動時立即執行,並解碼隱藏在名為 lock 的內部檔案中的JavaScript投放器。這意味著,那些盲目信任依賴清單中這個熱門名稱的用戶不會發現任何異常

 

偽裝成 PNG 檔案的最終酬載

該攻擊活動最具有欺騙性的部分是惡意酬載的最終偽裝:

最後也是最具迷惑性的階段涉及一個名為 .png 的檔案 banner.png。雖然 .png 擴展名表明這是一個標準的圖像文件,但強化學習研究人員指出,這只是一個偽裝。當嘗試用普通的圖片檢視器開啟它時,會顯示錯誤訊息。

這個偽裝成圖像檔案的惡意酬載,實際上是一個未經編碼的惡意 JavaScript 程式碼或投放器。攻擊者利用開發者對常見檔案格式的信任,以及許多安全掃描工具可能忽略非執行檔內容的盲點。由於惡意程式碼位於一個被視為圖片的檔案中,使得傳統的靜態分析和手動檢查難以發現其真實意圖。

 

安全建議與業界行動

研究人員證實,所有被標記的擴充功能都已上報給微軟。開發者在安裝擴充功能之前,務必仔細檢查,尤其是那些下載量低或評論少的擴充功能

針對這類複雜的供應鏈攻擊,開發者社群和企業應採取更嚴格的安全措施:

  • 仔細審查: 即使是知名工具的擴充功能,也應檢查其發佈者名稱、最新更新時間、下載量和評論,特別是新發布或不知名的擴充功能。

  • 沙箱環境: 在受限制的沙箱或非生產環境中測試新安裝的擴充功能,以防止潛在的惡意行為滲透到核心開發工作流程。

  • 依賴項監控: 對應用程式所使用的所有開源依賴項進行持續監控,不僅檢查其版本,還要警惕任何對核心程式碼的意外修改,實施軟體成分分析(SCA)。

  • 零信任原則: 假設所有擴充功能和依賴項都可能存在風險,限制它們在網路中的權限和存取範圍。

這起事件突顯了惡意行為者正不斷尋找新的、更具規避性的方法來滲透軟體供應鏈,開發者環境已成為一個高價值的攻擊目標。


註:
VS Code 是許多開發者的必備工具,因此其應用程式市場(用於分發擴充功能)也成為了網路犯罪分子的主要目標。就在幾週前,該應用程式市場上出現了一個偽造的「Prettier」擴充程序,該程式會植入 Anivia Stealer 漏洞。


資料來源:https://hackread.com/malicious-vs-code-extensions-trojan-fake-png-files/
 
針對 Visual Studio Code 開發者的複雜供應鏈攻擊活動,攻擊者將木馬程式隱藏在看似無害的 VS Code 擴充功能中,並利用篡改的熱門依賴項和偽裝成 PNG 檔案的惡意酬載,藉此滲透開發環境。