やじうまの杜

そこまでやる? 170万DLの人気「Visual Studio Code」拡張機能に巧緻なマルウェア

「Ethereum」のスマートコントラクト言語「Solidity」の開発が楽になるとの触れ込み

 「やじうまの杜」では、ニュース・レビューにこだわらない幅広い話題をお伝えします。

プログラミング言語「Solidity」の「Visual Studio Code」拡張機能にマルウェアが混入

 プログラミング言語「Solidity」の「Visual Studio Code」拡張機能にマルウェアが混入しているとのこと。つい「そこまでやる?」と言いたくなる巧妙なやり口も話題になっています。

 このマルウェアを報告した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サイトで拡張機能がないことを明言したほうがよいかもしれません。

「Visual Studio Code」拡張機能を利用する際は、開発元の身元確認を。発行元所有権の確認があるものは、比較的信頼できる