VSCode logo in a red vortex

研究者は、悪意のある Visual Studio Code 拡張機能を VSCode マーケットプレースに驚くほど簡単にアップロードできることを発見し、攻撃者がこの脆弱性をすでに悪用している兆候を発見しました。

Visual Studio Code (VSC) は、Microsoft によって公開されたソース コード エディターであり、世界中のプロのソフトウェア開発者の約 70%によって使用されています。

Microsoft は、VSCode Marketplace と呼ばれる IDE の拡張機能マーケットも運営しています。これは、アプリケーションの機能を拡張し、より多くのカスタマイズ オプションを提供するアドオンを提供します。

これらの拡張機能の中には、数千万回ダウンロードされているものもあるため、プラットフォーム上で簡単になりすます方法があれば、悪意のある攻撃者はかなりの数の被害者をすぐに獲得できます。

これらの拡張機能は、感染したマシン上でユーザーの権限で実行され、追加のプログラムをインストールしたり、VSCode IDE のソース コードを盗んだり改ざんしたり、開発者の SSH キーを使用して接続された GitHub リポジトリにアクセスしたりするために使用できます。

AquaSecの新しいレポートによると、悪意のある拡張機能を Microsoft の Visual Studio Code Marketplace にアップロードするのは非常に簡単であり、非常に疑わしい既存の拡張機能をいくつか発見しています。

悪意のある拡張機能の配布

悪意のある拡張機能を VSCode マーケットプレイスにアップロードする実験として、AquaSec チームは、2,700 万回以上ダウンロードされている「 Prettier 」という名前の人気のあるコード フォーマット拡張機能を「typosquat」しようとしました。

ただし、拡張機能を作成するときに、実際の拡張機能のロゴと説明を再利用して、実際の拡張機能と同じ名前を付けることができることに気付きました。

本物のエクステンション(左)と偽のエクステンション(右)
本物の拡張機能(左)と偽の拡張機能(右) (AquaSec)

どうやら、パブリッシャーは「displayName」と呼ばれるプロパティの使用を許可されているため、マーケット ページに表示されるアドオンの名前は一意である必要はありません。

GitHub の統計を表示するプロジェクトの詳細に関して、AquaSec は、このセクションが GitHub から自動的に更新されることを発見しました。ただし、パブリッシャーは引き続き統計を自由に編集できるため、これらを変更して、長い開発の歴史を持つアクティブなプロジェクトの感覚を作り出すことができます.

これにより、偽の拡張機能が同じダウンロード数と同じ検索ランキングでリストされることはありませんでしたが、研究者は正規の拡張機能の GitHub プロジェクト名、最後のコミット時間、プル リクエスト、および未解決の問題を複製することができました。

「しかし、時間が経つにつれて、知らないユーザーのプールが増加し、偽の拡張機能をダウンロードするようになります。これらの数が増えるにつれて、拡張機能は信頼性を得るでしょう」と AquaSec の研究者は説明しています。

「さらに、ダークウェブではさまざまなサービスを購入できるため、非常に決心した攻撃者がサービスを購入することでこれらの数字を操作し、ダウンロード数とスター数を膨らませることができる可能性があります。」

最後に、アナリストは、ドメインを購入したパブリッシャーはドメインの所有権を証明すると青いチェックマークを取得するため、プラットフォームの認証バッジはほとんど意味がないことを発見しました.ドメインは、ソフトウェア プロジェクトに関連している必要さえありません。

AquaSec によって作成された概念実証 (PoC) 拡張機能は、48 時間以内に 1,500 を超えるインストールを獲得し、世界中の「被害者」開発者が使用されました。

偽の拡張機能をダウンロードした開発者の地図
偽の拡張機能(AquaSec)をダウンロードした開発者の地図

疑わしい VSCode 拡張機能は既に存在します

AquaSec は、VSCode マーケットプレイスで人気のある拡張機能を模倣できることを証明しただけでなく、疑わしい例が既にマーケットプレイスにアップロードされていることも発見しました。

これらの拡張機能のうち、「API Generator Plugin」と「code-tester」という名前の 2 つは、非常に懸念される動作を示し、HTTP リクエストを外部の robotnowai.top URL に 30 秒ごとに送信し、「eval()」関数を使用して応答を実行しました。

コードテスターのコード
「コードテスター」コードの一部(AquaSec)

この情報交換は HTTP で行われたため、暗号化すらされていなかったため、開発者のトラフィックは中間者攻撃の対象となりました。

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

AquaSec はこれらの拡張機能を両方とも Microsoft に報告しましたが、この記事の執筆時点では市場に残っています。

悪用の機が熟した VSCode マーケットプレイス

Visual Studio Code の拡張機能はセキュリティ研究者によってほとんど精査されていませんが、攻撃者は通常、企業ネットワークを侵害する新しい方法を探している、と研究者は警告しています。

「究極的には、悪意のある VSCode 拡張機能の脅威は現実のものです。おそらく、これまでこれが最大の注目を集めていなかったのは、おそらく、これが大きな影響を残したキャンペーンをまだ見ていないからでしょう」と AquaSec は結論付けています。報告書。

「しかし、攻撃者は、組織のネットワーク内で悪意のあるコードを実行できるようにするため、常に技術の武器を拡大しようとしています。」

さらに悪いことに、AquaSec によると、Microsoft は Visual Studio と Azure DevOps 拡張機能マーケットプレイスも提供しており、悪意のある拡張機能に対しても脆弱であると思われます。

攻撃者は一般に、NPM や PyPi などの他のパッケージ リポジトリ悪意のあるタイポスクワッティング キャンペーンを実行しているため、今後 Microsoft マーケットプレイスに焦点を当てることは驚くべきことではありません。

このため、VSCode 拡張機能を使用するコード開発者は、アドオンを運用マシンにインストールする前に、十分に注意を払い、アドオンを徹底的に精査することをお勧めします。