VSCode

イスラエルの研究者グループが、Visual Studio Codeマーケットプレイスのセキュリティを調査し、人気のある「ドラキュラ公式テーマ」のコピーに危険なコードを含ませるトロイの木馬を仕掛けて、100以上の組織を「感染」させることに成功した。さらにVSCodeマーケットプレイスを調査したところ、数千の拡張機能が数百万インストールされていることが判明した。

Visual Studio Code (VSCode)は、マイクロソフト社が公開しているソースコードエディタで、世界中の多くのプロのソフトウェア開発者に使用されている。

Microsoftはまた、Visual Studio Code Marketplaceと呼ばれるIDE用の拡張機能市場を運営しており、アプリケーションの機能を拡張し、より多くのカスタマイズオプションを提供するアドオンを提供しています。

以前のレポートでは、VSCodeのセキュリティにギャップがあり、エクステンションやパブリッシャのなりすましや開発者の認証トークンを盗むエクステンションがあることが指摘されています。また、悪意があると確認された野生の発見もあった。

ドラキュラのテーマのタイポスクワッティング

研究者のAmit Assaraf氏、Itay Kruk氏、Idan Dardikman氏は、最近の実験で、VSCode Marketplaceで700万インストールを超える、さまざまなアプリケーションで人気のある配色である「Dracula Official」テーマをタイポスクワットする拡張機能を作成しました。

Draculaは、ハイコントラストなカラーパレットで視覚的に魅力的なダークモードであるため、多くの開発者に使用されており、目に優しく、長時間のコーディングセッション中の眼精疲労を軽減するのに役立っている。

この研究で使用された偽の拡張子は「Darcula」と名付けられ、研究者たちは「darculatheme.com」に一致するドメインまで登録した。このドメインは、VSCode Marketplaceで認証されたパブリッシャーになるために使用され、偽の拡張子に信頼性を加えた。

The Darcula extension on VSC Marketplace
VSCode Marketplace上のDarcula拡張子
ソースはこちら:アミット・アサラフ|ミディアム

彼らの拡張機能は、正規のDraculaテーマの実際のコードを使用していますが、ホスト名、インストールされている拡張機能の数、デバイスのドメイン名、オペレーティングシステムのプラットフォームなどのシステム情報を収集し、HTTPS POSTリクエストを介してリモートサーバーに送信するスクリプトも追加されています。

Risky code added to the extension
Darcula 拡張機能に追加された危険なコード
ソースはこちら:Amit Assaraf|Medium

研究者は、VSCodeは開発およびテストシステムとしての性質上、寛大に扱われるため、悪意のあるコードはエンドポイント検出および応答(EDR)ツールによってフラグが立てられないと指摘している。

“残念ながら、従来のエンドポイントセキュリティツール(EDR)はこのアクティビティを検出しません(責任ある情報開示プロセスにおいて、一部の組織に対してRCEの例を示しました)。” “VSCodeは、多くのファイルを読み取り、多くのコマンドを実行し、子プロセスを作成するように構築されているため、EDRはVSCodeからのアクティビティが正当な開発者のアクティビティなのか、悪意のある拡張機能なのかを理解することができません。”– アミット・アサラフ

この拡張機能は、時価総額4,830億ドルの上場企業、大手セキュリティ企業、全国司法裁判所ネットワークなど、価値の高い複数のターゲットに誤ってインストールされ、瞬く間に人気を博した。

研究者は、影響を受けた企業名を公表しないことを選択した。

この実験には悪意がなかったため、アナリストは識別情報のみを収集し、拡張機能のRead Me、ライセンス、コードに開示内容を記載した。

Location of victims after 24 hours
VSCマーケットプレイスでのDarculaの公開から24時間後の被害者の位置
ソースはこちら:Amit Assaraf|ミディアム

VSCodeマーケットプレイスの状況

実験が成功した後、研究者たちはVSCode Marketplaceの脅威の状況に飛び込むことにした。彼らが開発した「ExtensionTotal」というカスタムツールを使って、リスクの高い拡張機能を見つけ、それらを解凍し、疑わしいコードスニペットを精査した。

このプロセスを通じて、彼らは以下を発見した:

  • 1,283の既知の悪意のあるコード(2億2,900万インストール)。
  • ハードコードされたIPアドレスで通信している8,161件。
  • 1,452の未知の実行可能ファイルが実行されている。
  • 他のパブリッシャーのGithubレポを使用している2,304 件。

以下は、サイバー犯罪者のサーバーへのリバースシェルを開く、悪意のあるVisual Studio Code Marketplace拡張機能で見つかったコードの例です。

Reverse shell found in a code beautifying extension (CWL Beautifer)
コードを美化する拡張機能(CWL Beautifer)で見つかったリバースシェル
ソースはこちら:Amit Assaraf|Medium

マイクロソフトのVSCode Marketplaceにおける厳格な管理とコードレビューの仕組みの欠如は、脅威行為者によるプラットフォームの横行する悪用を可能にしており、プラットフォームがますます使用されるにつれて悪化している。

「この数字からわかるように、Visual Studio Codeマーケットプレイスには組織にリスクをもたらす拡張機能が数多く存在する」と研究者は警告している。

「VSCodeの拡張機能は、悪用され、公開された攻撃の対象であり、可視性はゼロで、影響が大きく、リスクが高い。この問題は組織に直接的な脅威をもたらすものであり、セキュリティ・コミュニティの注目に値するものです。

研究者によって検出されたすべての悪意のある拡張機能は、削除のために責任を持ってマイクロソフトに報告された。しかし、これを書いている時点では、大部分はVSCode Marketplace経由でダウンロード可能なままである。

研究者らは来週、「ExtensionTotal」ツールをその運用能力に関する詳細とともに公開する予定であり、潜在的な脅威について開発者の環境をスキャンするのに役立つ無料ツールとしてリリースする。

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