やじうまの杜
そこまでやる? 170万DLの人気「Visual Studio Code」拡張機能に巧緻なマルウェア
「Ethereum」のスマートコントラクト言語「Solidity」の開発が楽になるとの触れ込み
2024年10月3日 15:14
「やじうまの杜」では、ニュース・レビューにこだわらない幅広い話題をお伝えします。
プログラミング言語「Solidity」の「Visual Studio Code」拡張機能にマルウェアが混入しているとのこと。つい「そこまでやる?」と言いたくなる巧妙なやり口も話題になっています。
えぐすぎ
— serinuntius🐈 (@_serinuntius)October 2, 2024
SolidityのVS Code拡張にハッカーの悪意あるコードが入ってる
今すぐ開発者は確認したほうがいいですhttps://t.co/6RidNaFSGZ
このマルウェアを報告したLorenz Lehmann氏(@LehmannLorenz)によると、マルウェアの概要は以下の通り。
- 「Solidity」プログラミングを容易にすると謳って拡張機能をストアに公開。5/5の高評価と170万を超えるダウンロードを得る
- 難読化された「extension.js」がロシアのサーバーから「1.cmb」という名前の小さなファイル(5MBの)をこっそりダウンロードして実行
- 「1.cmb」ももちろん難読化されている。専用のツールで整形しないと読めない
- 「1.cmb」の実行には、「PowerShell」が必要。完全にメモリ内で実行され、ディスクに痕跡を残さない、いわゆるファイルレスマルウェアになっており、マルウェア対策ソフトウェアが検出するのは困難な仕組みになっている
- サンドボックス環境で検出されるのを防ぐため、仮想マシン(VM)で実行されていたら隠れる機能も実装
とりあえずWindowsでしか動作しないようですが、ここまでできるハッカーであれば気分次第でMacもLinuxも狙えるでしょう。拡張機能を利用する場合は、信頼できるベンダーにより提供されているものかどうかよく確認するとともに、常に情報を収集して、問題がある拡張機能はすぐに使用を中止できるようにすべきです。
ちなみに、「Solidity」は仮想通貨基盤「Ethereum」で動作するスマートコントラクト(ブロックチェーンにおける契約処理)開発のために設計されたプログラミング言語だそう。投票、クラウドファンディング、ブラインドオークション、マルチ署名ウォレットなどの設計に利用できるとのこと。今回標的になった拡張機能の開発元はイーサリアム財団(Ethereum Foundation)を名乗っていますが、公式の「Visual Studio Code」拡張機能を用意している様子はありません。ニーズがあるのであれば公式に拡張機能を開発するなり、Webサイトで拡張機能がないことを明言したほうがよいかもしれません。