Microsoft VSCode 調査:数百万回もインストールされた悪意のエクステンションを発見!

Malicious VSCode extensions with millions of installs discovered

2024/06/09 BleepingComputer — Visual Studio Code マーケットプレイスの、セキュリティを調査していたイスラエルの研究者グループが、人気の公式テーマである “Dracula Official” のコピーに、実験として悪意のコードを取り込んだトロイの木馬により、100以上の組織を擬似的に感染させることに成功した。さらに、彼らが VSCode マーケットプレイスを調査したところ、数千もの悪意のエクステンションが、数百万もインストールされていることが判明した。


Visual Studio Code (VSCode) は、Microsoft が提供するソースコード・エディタであり、世界中の多くのソフトウェア開発者たちに利用されているものだ。そして、Microsoft が運営する、Visual Studio Code Marketplace と呼ばれる市場では、アプリケーション機能を拡張するカスタマイズ・オプションのアドオンが、IDE (Integrated Development Environment) 用のエクステンションとして販売されている。

これまでに、VSCode においては、様々なセキュリティの問題が報告されてきた。具体的に言うと、エクステンションやパブリッシャーのなりすまし/開発者の認証トークンを盗むエクステンション/パスワード窃取やリモートシェルを確立するエクステンションなどの事例がある。

人気テーマ “Dracula” のタイポスクワッティング実験

最近におことだが、研究者である Amit Assaraf/Itay Kruk/Idan Dardikman が、”Dracula Official” テーマをタイポスクワットするという、検証用のエクステンションを用いる実験を行った。この ”Dracula Official” とは、各種のアプリケーションをカスタマイズするための人気のカラースキームであり、VSCode Marketplace で 700万以上のインストール数を誇っているものだ。

Dracula は、高コントラストのカラーパレットを用いて、視覚的に魅力的なダークモードを備えているため、多くの開発者に愛用されている。このモードは目に優しく、長時間のコーディング作業による目の疲れを軽減してくれるという。

研究者たちは、偽のエクステンションに “Darcula“ と名付け、“darculatheme.com“ というドメインを取得した。彼らは、このドメインによって VSCode マーケットプレイスで認証されたパブリッシャーとなり、偽のエクステンションの信憑性を高めることに成功した。

The Darcula extension on VSC Marketplace
VSCode マーケットプレイス上の Darcula エクステンション
Source: Amit Assaraf | Medium

彼らのエクステンションは、正規の Dracula テーマの実際のコードを使用しているが、そこに加えられた悪意の機能を用いて、ホスト名/インストールされているエクステンションの数/デバイスのドメイン名/OS のプラットフォームなどのシステム情報を収集する。続いて、HTTPS POST リクエストを介してリモート・サーバに、それらの窃取した情報を送信するためのスクリプトも備えている。

Risky code added to the extension
Darcula エクステンションに追加された危険なコード
Source: Amit Assaraf | Medium

開発/テストのシステムという性質上、VSCode は寛大に扱われるため、悪意のコードは EDR (endpoint detection and response) ツールのフラグを回避すると、研究者たちは指摘している。

Amit Assaraf は、「残念なことに、従来の EDR は、この活動を検知しない (情報公開の過程で、一部の組織に対して RCE の例を示したように)。VSCode は、多くのファイルを読み取り、多くのコマンドを実行し、子プロセスを作成するように構築されている。したがって EDR は、VSCode にける活動が正当な開発者の活動なのか、悪意のエクステンションなのかを理解できない」と述べている。

この偽のエクステンションは急速に普及し、時価総額 $483B の上場企業/大手セキュリティ企業/全国司法裁判所ネットワークなど、価値の高い複数のターゲットにインストールされた。

研究者たちは、これらの企業名は公表しないとしている。

この実験には悪意がなかったため、彼らは識別情報のみを収集し、エクステンションの Read Me/ライセンス/コードに開示情報を記載した。

Location of victims after 24 hours
VSC マーケットプレイスでの Darcula の公開から 24時間後の被害者の分布
Source: Amit Assaraf | Medium
VSCode マーケットプレイスの現状

実験を成功させた研究者たちは、VSCode Marketplace の脅威の調査を行った。彼らは、自身が開発した “ExtensionTotal“ というカスタム・ツールを使用して、リスクの高いエクステンションを見つけ、それらを解凍し、疑わしいコードスニペットを精査していった。

彼らの調査結果は以下の通りだ:

  • 1,283 件:既知の悪意のコード (2億2,900万インストール)。
  • 8,161件:ハードコードされた IP アドレスによる通信。
  • 1,452件:未知の実行型ファイルの起動。
  • 2,304件:他のパブリッシャーの Github リポジトリを使用しており、模倣犯であることを示している。

以下は、サイバー犯罪者が管理するサーバへの、リバース・シェルを開く悪意のコードの一例である。これも、Visual Studio Code Marketplace エクステンションで見つかったものだ。

Reverse shell found in a code beautifying extension (CWL Beautifer)
CWL Beautifer (コード整形用のエクステンション) で発見されたリバース・シェル
Source: Amit Assaraf | Medium

Microsoft が持っていないものとして、VSCode Marketplace 上での厳格な管理やコード・レビューの仕組みが挙げられる。したがって、このプラットフォームの悪用が横行しており、その利用頻度が高まるにつれて悪用も増加している。

研究者たちは、「この数字からわかるように、Visual Studio Code マーケットプレイスには、組織にリスクをもたらすエクステンションが大量に存在している。VSCode エクステンションは、脅威アクターに悪用され易いオープンな攻撃経路であり、可視性がゼロであり、影響が大きく、リスクが高い。ユーザー組織に対して、この問題はダイレクトな脅威をもたらすものであるため、セキュリティ・コミュニティは関心を払うべきだ」と警告している。

研究者たちが検出した、すべての悪意のエクステンションに関しては、Microsoft への削除要求が行われている。しかし、現状の VSCode マーケットプレイスでは、その大部分がダウンロード可能な状態を維持している。

来週に研究者たちは予定しているのは、ExtensionTotal という無料のツールであり、潜在的な脅威を検出するための、有効なスキャンを提供するものだという。

BleepingComputer は Microsoft に問い合わせ、Visual Studio Marketplace のセキュリティを再検討し、タイポスクワッティングやなりすましを、より困難にする追加対策を導入する予定があるかどうかを尋ねたが、現時点では回答は得られていない。