IronWorm蠕蟲入侵npm:976KB Rust惡意程式內建eBPF核心層Rootkit

作者:默思編輯部 發布:2026-09-16

2026年6月初,資安研究人員發現一款名為IronWorm的新型npm供應鏈攻擊蠕蟲,透過遭入侵的帳號「asteroiddao」散布至37個npm套件當中。這款惡意程式以Rust語言撰寫,編譯成976KB大小的ELF二進位檔案,透過套件安裝過程中的preinstall掛鉤(hook)自動執行,其技術複雜度被資安圈稱為「Shai-Hulud蠕蟲的更硬派表親」。

為什麼用Rust寫惡意程式是一種技術升級

過去多數npm供應鏈攻擊使用的是JavaScript直譯式的postinstall腳本,這類腳本相對容易被靜態掃描工具偵測,也較容易被資安研究人員逆向分析。IronWorm改用編譯型的Rust語言撰寫核心惡意邏輯,不僅執行效率更高,編譯後的二進位檔案也大幅增加了逆向工程分析的難度,同時內建客製化改造的UPX壓縮外殼以規避特徵碼比對式的防毒工具偵測,每個內部字串更使用獨立的呼叫點加密金鑰處理,進一步提高分析門檻。

eBPF核心層Rootkit:從使用者層攻擊升級到核心層

最值得資安從業者警惕的技術細節,是IronWorm內建一個eBPF(extended Berkeley Packet Filter)核心層Rootkit,能夠隱藏自身的行程、網路連線,並具備反除錯偵測機制。傳統的惡意程式偵測往往仰賴在使用者層級監控可疑行程或網路行為,但eBPF是Linux核心提供的合法機制,原本設計用於在不修改核心原始碼的情況下,安全地擴充核心層級的監控與過濾功能——IronWorm濫用這項機制,讓惡意行程能從標準Linux工具(如ps、ss等指令)的偵測範圍中完全隱形,同時過濾/proc/net/tcp與netlink介面回報的網路連線資訊,任何嘗試以ptrace追蹤該行程的偵錯行為都會被立即終止。

竊取範圍:從雲端憑證到2026世代AI供應商金鑰

IronWorm會系統性掃描86項環境變數與超過20種常見憑證檔案路徑,涵蓋AWS、GCP、Azure、HashiCorp Vault、Kubernetes、npm、Docker、GitHub等主流雲端與開發工具的存取憑證,更特別鎖定2026世代各大AI服務供應商的API金鑰,包括Anthropic、OpenAI、Gemini、Cohere、Mistral、Groq、Perplexity、xAI等——這反映出攻擊者已經意識到,隨著愈來愈多企業與個人開發者的日常工作流程仰賴這些AI服務,其API金鑰本身已經成為具有直接變現價值的攻擊目標,不亞於傳統的雲端基礎設施憑證。惡意程式甚至內建針對Exodus桌面錢包的專屬掛鉤,削弱Electron應用程式的沙盒隔離機制,在錢包解鎖瞬間擷取助記詞。

通訊機制:完全透過Tor隱藏行蹤

IronWorm的指揮控制(C2)通訊完全透過Tor網路進行——惡意程式會自動下載Tor專家版套件、自行撰寫torrc設定檔、建立Tor迴路,再向攻擊者控制的隱藏服務回報竊取到的資料。這種設計讓防禦方難以透過傳統的網路流量分析(例如監控可疑的IP位址或網域名稱)來追蹤攻擊者的基礎設施,進一步提高了溯源與阻斷攻擊的難度。

對開發者的實務防範建議

對於日常使用npm生態系套件的開發者而言,這起事件再次凸顯了供應鏈攻擊防範的急迫性:建議定期稽核專案依賴套件的維護者帳號異動紀錄、避免自動執行未經審查的preinstall/postinstall腳本、將各類雲端與AI服務的API金鑰改用短期憑證或密鑰保管庫(如Vault)管理而非直接存放在環境變數中,並在開發環境中部署能偵測異常核心層行為(例如非預期的eBPF程式載入)的端點防護工具,作為對抗這類日益技術化供應鏈攻擊的基本防線。

想建立扎實的資安與程式基礎,歡迎參考Python課程。