はじめに
「TigerJack」と名乗る脅威アクターが、MicrosoftのVisual Studio Code (VSCode) マーケットプレイスおよびOpenVSXレジストリを悪用し、開発者を標的とした悪意ある拡張機能のキャンペーンを継続しています。これらの拡張機能は、仮想通貨の窃取やバックドアの設置、さらには任意のコード実行を可能にするもので、セキュリティコミュニティに深刻な懸念を投げかけています。
脅威の概要
Koi Securityの研究者らによると、TigerJackは今年初めから少なくとも11の悪意あるVSCode拡張機能を配布してきました。特に注目すべきは、VSCodeマーケットプレイスから17,000回以上のダウンロード後に削除された2つの拡張機能、「C++ Playground」と「HTTP Format」が、OpenVSXでは依然として利用可能である点です。さらに、TigerJackはこれらの悪意あるコードを新しい名前でVSCodeマーケットプレイスに再公開していることも判明しています。
OpenVSXは、Microsoftのプラットフォームに代わるコミュニティ主導のオープンソース拡張機能マーケットプレイスであり、CursorやWindsurfといった人気のVSCode互換エディタのデフォルトのマーケットプレイスとして機能しています。
悪意ある拡張機能の詳細
TigerJackが配布する拡張機能は、その機能によっていくつかのカテゴリに分類されます。
- C++ Playground: この拡張機能は、C++ファイルの編集時に「onDidChangeTextDocument」リスナーを登録し、編集後約500ミリ秒で発火することで、ソースコードを複数の外部エンドポイントに流出させ、ほぼリアルタイムでキーストロークを捕捉します。
- HTTP Format: この拡張機能は、宣伝通りの機能を提供する一方で、バックグラウンドでCoinIMPマイナーを密かに実行します。ハードコードされた認証情報と設定を使用し、ホストの処理能力を最大限に利用して仮想通貨をマイニングします。
- 動的コード実行型拡張機能: 「cppplayground」、「httpformat」、「pythonformat」といった拡張機能は、ハードコードされたアドレス(
ab498.pythonanywhere.com/static/in4.js)からJavaScriptコードをフェッチし、ホスト上で実行します。このリモートアドレスは20分ごとにポーリングされるため、拡張機能を更新することなく任意のコード実行が可能となります。
Koi Securityは、この第三のタイプの拡張機能が最も危険であると警告しています。「TigerJackは、拡張機能を更新することなく、任意の悪意あるペイロードを動的にプッシュできます。これにより、認証情報やAPIキーの窃取、ランサムウェアの展開、侵害された開発者マシンを企業ネットワークへの侵入ポイントとしての利用、プロジェクトへのバックドアの注入、リアルタイムでの活動監視などが可能になります。」
OpenVSXの役割と課題
OpenVSXは、独立したベンダーニュートラルなレジストリとして重要な役割を担っていますが、今回の件では課題が浮き彫りになりました。Koi SecurityはOpenVSXに調査結果を報告しましたが、記事公開時点ではレジストリの管理者は応答しておらず、問題の2つの拡張機能はダウンロード可能な状態のままです。
TigerJackの手口
研究者らは、TigerJackが「調整された多アカウント運用」であると指摘しています。彼らは、GitHubリポジトリ、ブランディング、詳細な機能リスト、正規のツールに似た拡張機能名など、信頼できる背景を持つ独立した開発者であるかのように装い、巧妙に活動しています。
開発者への推奨事項
OpenVSXなどのプラットフォームを利用してソフトウェアを調達する開発者は、評判が良く、信頼できる発行元からのパッケージのみをダウンロードするよう強く推奨されます。不審な拡張機能は、開発環境に深刻なセキュリティリスクをもたらす可能性があります。
