初始註冊階段會先以instanceId=0向註冊端點送出請求,伺服器回傳一組可持久使用的instanceId後,後續輪詢請求會改以該識別碼通訊,讓攻擊者能在多次連線間持續追蹤同一受害端點

微軟發布研究指出,近期觀測到一波鎖定軟體開發者的攻擊活動。駭客將惡意儲存庫偽裝成合法Next.js專案或技術測驗題目,誘使開發者在日常工作流程中開啟或執行專案,讓Node.js在執行階段擷取並於記憶體內執行攻擊者控制的JavaScript,進而建立分階段命令與控制(C2)通道,後續持續派送任務並外流資料。

研究人員起初從端點遙測發現,Node.js程序反覆對外連線至攻擊者控制的C2基礎設施,進一步追查後確認,這些惡意儲存庫就是整起攻擊的源頭。其中一個儲存庫託管於Bitbucket,偽裝成招募用的技術測驗題目,另一個則以Cryptan-Platform-MVP1為名。研究人員再透過命名模式與程式碼結構等線索擴大搜尋,陸續找出更多手法相同的關聯儲存庫。

微軟歸納出三條常見攻擊路徑,目的皆是在開發者日常操作流程嵌入惡意執行程式。第一條是濫用VS Code工作區自動化機制,在使用者開啟並信任專案時即自動執行工作區任務。第二條在看似正常的專案檔案中暗藏木馬,當開發者以npm run dev等方式啟動開發伺服器時觸發載入器。第三條則是把惡意邏輯埋入後端模組或路由,在伺服器啟動或模組載入時外傳環境變數並動態載入程式碼。

三條路徑的起點不同,但後續行為高度一致,微軟指出,這些儲存庫會在執行時向Vercel取得JavaScript載入器,由Node.js在記憶體內直接執行,接著維持與C2伺服器的持續通訊。

攻擊分階段進行,第一階段負責註冊,惡意程式會蒐集受害主機的基本資訊,定期向攻擊者伺服器回報,取得一組識別碼以便後續追蹤,並在收到特定指令後下載下一階段的程式碼於記憶體中執行。第二階段則是常駐的遠端控制模式,程式啟動後會持續向攻擊者取得任務並在記憶體中執行,同時具備瀏覽受害主機檔案與分段上傳資料的能力。

微軟建議將開發流程視為主要攻擊面來管理信任邊界,對來源不明的專案預設採取不信任態度。具體做法包括在授與VS Code工作區信任前先檢視專案內的自動化設定檔,以端點可視性追蹤異常Node.js執行鏈與不尋常的對外連線,並搭配組織內的身分風險排查與權杖處置流程,降低憑證或工作階段遭竊後的擴散風險。

熱門新聞

Advertisement