GlassWorm 木馬攻擊

最近有認識的朋友中了木馬,本機 token 被偷光以後,直接往 GitHub 上的 repo 推了惡意程式碼,因為好奇就跑去稍微看了一下。

推的 code 是一段 JavaScript,會在 postinstall 的時候執行,惡意程式碼本身是用 unicode 的不可見字元,再寫一段 JS 還原然後丟給 eval,所以把 eval 改成 console.log 就能看到跑了什麼。

而這段程式碼解出來之後,是一段用 AES fixed key 解密另一個 payload 再丟一次 eval 的程式碼,所以要再改成 console.log 跑一次。

跑完之後還沒結束,會看到一段去呼叫 blockchain 的 API,從 Solana 的某個固定地址拿 memo,拿到的內容是一個 IP,接著連線到 IP 之後又拿一段 payload 回來,再丟到 eval。我連過去的時候被擋掉了,所以也沒看到具體 payload。

上網查了一下發現這是個叫 GlassWorm 的已知木馬,專門打開發者的,透過 VSCode 的擴充套件打進來。而我朋友中的這波是上週才發生的最新一波攻擊。

這次的攻擊是先發佈一些看似無害的套件,接著在升級時偷偷在 manifest 裡面加上惡意的 dependency,升級後 VSCode 就會自動下載,然後就中招了。

中了之後就會把你電腦裡的東西都偷過一輪,然後再去感染其他人。就像我開頭講的那樣,直接把你有權限的 GitHub repo 都 push 一遍,若是有哪個觸發 CI 甚至自動發版了,那就又擴散出去了,因此才會稱為是 worm。

這類攻擊感覺一直不斷發生,無論是 NPM 的 supply chain attack,或是針對 VSCode 套件本身的攻擊,都是專門打開發者,一不小心的話很容易中招。

也因為如此,我自己的 VSCode 幾乎都不安裝套件了,只裝官方而且夠大的,其他就算了。也把自動更新都關掉,避免新版帶奇怪的東西進來。

話說,現在好像越來越多人直接 CLI 寫 code,甚至連 editor 都不用了,因為寫完不用看直接上,其實也算是某種程度防範了這個風險 😆

不過取而代之的就會是一些惡意的 MCP 或 skill 等等,不小心跑了也一樣會有事。相關報導跟這次中招的套件,大家可以自己檢查一波。

評論