Visual Studio Code Marketplace の侵害は容易:悪意のエクステンションの登録方法とは?

VSCode Marketplace can be abused to host malicious extensions

2023/01/06 BleepingComputer — 悪意の Visual Studio Code エクステンションを、VSCode Marketplace に驚くほど簡単にアップロードできることを、そして、この弱点を脅威アクターたちが、すでに悪用している兆候を、研究者たちは発見した。Visual Studio Code (VSC) とは、Microsoft が公開しているソースコード・エディタであり、世界中のプロフェッショナル・ソフトウェア開発者の約 70%が使用しているものだ。Microsoft は、VSCode Marketplace とという名の、IDE 用のエクステンション・マーケットを運営することで、アプリ機能の拡張や、多様なカスタマイズ・オプションをアドオンとして提供している。


これらのエクステンションの中には、数千万もダウンロードされているものもある。したがって、このプラットフォームに簡単になりすますことが可能ならば、脅威アクターたちは容易に、大量の被害者を獲得できるだろう。

このような悪意のエクステンションは、被害者のマシンを感染させた上で、ユーザー権限の奪取/追加プログラムのインストール/VSCode IDE ソースコードの窃盗と改竄などを行い、さらには、開発者の SSH キーによる GitHub リポジトリへの不正アクセスなどを可能にし得るものとなる。

AquaSec の最新レポートによると、Microsoft の Visual Studio Code Marketplace へ向けて、悪意のエクステンションを容易にアップロードできること、そして、すでに非常に疑わしいエクステンションが存在していることを、研究者たちは発見している。

悪意のエクステンションの配布

AquaSec チームは実験として、VSCode Marketplace に悪意のエクステンションをアップロードし、タイポスクワッティングを仕掛けてみた。その際に用いたのは、2700万以上のダウンロード数を誇る、[Prettier] という人気のコードフォーマット・エクステンションである。

そして、このエクステンションを作成する際に、本物のロゴや説明文を再利用し、本物のエクステンションと同じ名前を付けられることに気づいた。

The real extension (left) and fake extension (right)
The real extension (left) and fake extension (right) (AquaSec)


どうやら、エクステンションの発行者に対しては、[displayName] というプロパティの仕様が許されるようであり、Marketplace ページに表示されるアドオンの名前は、ユニークなものである必要は無いようだ。

AquaSec が発見したのは、GitHub の統計情報を表示するプロジェクトの詳細において、そのためのセクションが、GitHub から自動的に更新される点である。しかし、エクステンションの発行者は、この統計情報を自由に編集できる。したがって、それらの情報を改ざんすることで、長い開発歴史を持つアクティブなプロジェクトを装うことも可能となる。

つまり、偽のエクステンションであっても、改ざんしたダウンロード数を表示できる。具体的に言うと、研究者たちの実験では、正規のエクステンション GitHub プロジェクト名/最終コミット時間/プルリクエスト/オープンイシューなどを複製できたという。ただし、検索順位に関しては偽装できなかったという。

AquaSec の研究者たちは、「時間が経つにつれて、私たちの偽エクステンションをダウンロードするユーザーのプールが増加していった。この数字が大きくなるにつれて、このエクステンションへの信頼が増加していく。さらに、ダークウェブを使えば、多様なサービスの購入も可能であるため、熟練した攻撃者であれば、ダウンロード数とスター数を膨らませるサービスを購入し、偽装を進化させることも可能だ」と説明している。

研究者たちの発見には、プラットフォーム上の検証バッジの問題も含まれる。それは、ドメインの所有権を証明する際の青いマークのことだが、ドメインを購入する全ての人々が取得できるものであり、何の意味もないことだ。また、そのドメインは、ソフトウェア・プロジェクトに関連するものである必要性すらない。

AquaSec が作成したエクステンションの PoC エクスプロイトは、48時間以内に 1,500以上のインストールを獲得し、[被害者] である世界中の開発者たちが利用した。

Map of developers who downloaded the fake extension
Map of developers who downloaded the fake extension (AquaSec)

すでに 疑わしい VSCode エクステンションは存在する

AquaSec は、VSCode Marketplace 上で、人気のエクステンションを模倣できることを証明しただけでなく、このマーケットプレイスに既にアップロードされている、疑わしい例も発見している。

それらの疑わしいエクステンションのうち、API Generator Plugin と code-tester という名のものは、30秒ごとに外部の robotnowai.top URL に HTTP リクエストを送り、そのレスポンスを eval() 関数で実行するという、非常に気になる挙動を示している。

The code-tester code
Part of the ‘code-tester’ code (AquaSec)

この、外部との情報交換は HTTP を介して行われるため、暗号化もされず、開発者のトラフィックは Man-in-the-Middle 攻撃の対象になっていた。

VirusTotal によると、上記の robotnowai.topドメインは、悪意の VBS/PowerShell スクリプトから Windows/Linux/Android マルウェアにいたるまで、悪質なファイルを配布する長い歴史を持つ IP アドレスでホストされていた。

AquaSec は、この2つのエクステンションを Microsoft に報告したが、この記事の執筆時点では、まだマーケットプレイスに残っている。

悪用されやすい VSCode Marketplace

研究者たちが警告するのは、Visual Studio Code エクステンションに対する、セキュリティ研究者たちの精査が足りない点と、企業ネットワークに侵入するための新しい方法を、脅威アクターたちが常に探している点である。

AquaSec のレポートは、「結論として、悪意の VSCode エクステンションの脅威は、現実のものとなっている。おそらく、過去において、この脅威が大きな影響を与えるようなキャンペーンが発見されていないことで、この脅威に対する注目度は高くなかった。その一方で攻撃者たちは、組織のネットワーク内で悪意のあるコードを実行するための、技術の拡張に取り組み続けている」と指摘している。

さらに悪いことに、Microsoft は Visual Studio と Azure DevOps のエクステンション・マーケットプレイスも提供しているが、それらも悪意のエクステンションに対して脆弱であるように見えると、AquaSec は述べている。

脅威アクターたちは、NPM/PyPi などのパッケージ・リポジトリで、悪意のタイポスクワッティング・キャンペーンを繰り返して実施しているため、将来的に Microsoft のマーケットプレイスに対して、焦点を合わせても不思議ではない。

したがって、VSCode エクステンションを用いる開発者に対しては、警戒を怠らず、プロダクション環境のマシンにインストールする前に、個々のアドオンを十分に精査することが推奨される。

2022年を通じて、GitHub や PyPI といったオープンソース・コードリポジトリを汚染する、悪意のコードという問題が多くの開発者を悩ませてきました。そして、Visual Studio Code にも、同じ問題が起こり始めています。よろしければ、2022年後半の状況を示す、以下のリストを、ご参照ください。

8月 : PyPI のセキュリティ対策:人気パッケージの 1/3 を誤検知するスキャナー
9月 : Docker の調査:TeamTNT 不正イメージが 15万回以上もダウンロード
9月 : OSS リポジトリ攻撃が3年間で 700% 増加:サプライチェーンの危機
9月: PyPI の脆弱性 CVE-2007-4559:35万件のプロジェクトに影響
9月: Auth0 警告:2020年以前のリポジトリが流出したが Okta への影響はなし
10月 : VMware の OSS 調査:新たな懸念はサプライチェーンの効率と安全性の不足
10月 : OSS サプライチェーンの深刻な問題:3年間で悪意のパッケージが 742% 増
10月 : GitHub の名前空間リタイアメント:RepoJacking 攻撃が発生する可能性
11月 : PyPI からドロップされる W4SP Info-Stealer:タイポスクワットで狙う
11月 : Docker Hub に潜む悪意のコンテナ:暗号通貨マイナーやバックドア
12月: OSS の乱用から生じる危険性:アプリ開発の 80% で依存しているという現実

%d bloggers like this: