瞄準JavaScript開發生態系統的惡意代碼"沙蟲(Shai Hulud)"不斷進化,軟件供應鏈攻擊水平被證實已進一步提升。最新分析顯示,該惡意代碼已超越以往單純滲透個別軟件包的水平,能夠將開發者變成無意識且持續傳播感染的媒介,具備了自動擴散的體系。

根據安全專業公司Expel公開的報告,近期變種的沙蟲具備了自動感染開發者環境,並通過他們管理的npm註冊表進行再擴散的結構。該惡意代碼在安裝階段會執行植入了病毒的npm軟件包,分兩步進行感染程序。首先,若目標環境中未安裝"Bun"JavaScript運行時,則會自動安裝它;隨後,通過複雜混淆的載荷,在後臺誘導進行憑據竊取、數據泄露和再次感染。

此次變種尤其值得注意的是其憑據收集方式非常精巧。它採用了直接訪問AWS Secrets Manager、Microsoft Azure Key Vault、Google Cloud Secret Manager等主要雲基礎設施的祕密管理系統,以額外提取敏感數據的方式。已確認其在本地系統本身也會全面收集NPM發佈令牌、GitHub認證信息乃至雲密鑰。在此過程中使用的工具是TruffleHog,這是一款能自動從源代碼、配置文件、Git記錄等中搜索硬編碼祕密信息的工具。

沙蟲最典型的戰術是濫用GitHub基礎設施。與以往惡意代碼連接命令控制(C2)服務器的方式不同,該惡意代碼會將竊取的信息上傳到公開存儲庫,並將受感染的設備註冊爲GitHub Actions的自託管運行器。這使得外部可以持續進行遠程訪問,攻擊者以受感染開發者的賬戶爲武器,向其他軟件包注入惡意代碼,並通過自動將更改後的版本重新註冊到npm的方式來擴大感染範圍。

報告稱,截至目前,據推測受感染的存儲庫超過2.5萬個,受影響的軟件包達數百個。其中包含開源社區也廣泛使用的流行工具。

Expel通過此案例警告,軟件供應鏈安全的"信任層"已不再是安全區。沙蟲雖然攻擊了JavaScript生態系統,但Python(PyPI)、Ruby(RubyGems)、PHP(Composer)等擁有類似信任基礎的其他語言社區,同樣很可能暴露在類似的攻擊之下。針對開發工具生態系統的自主擴散型惡意代碼的出現,可能在未來引發更持續、更廣泛的威脅,這一點需要警惕。