高度なサイバー犯罪組織が、世界中の開発者エコシステムに侵入している。
Koiのセキュリティ研究者は、TigerJackとして知られる脅威アクターが作成した、少なくとも11個の悪意あるVisual Studio Code(VS Code)拡張機能を発見した。これらの拡張機能にはスパイウェアや暗号資産マイナー、リモートバックドアが組み込まれており、1万7000人を超える開発者がダウンロードしていた。
「このマルウェアは目立たない形で動作し、約束した機能を正確に提供する一方、知的財産を盗み、システムリソースを乗っ取り、リモートアクセス用の永続的なバックドアを維持する」とKoiの研究者は述べた。
信頼されたマーケットプレースがマルウェアの配布経路に
このキャンペーンは、ソフトウェアサプライチェーンにおける見過ごされがちな問題を浮き彫りにしている。それは、開発者が公式および代替マーケットプレースのサードパーティー製拡張機能に寄せる信頼だ。
複数の別名(ab-498、498、498-00)を使うTigerJackは、これらのプラットフォームを利用し、プログラマー向けの生産性ツールを装ったマルウェアを配布した。
最も成功した2つの悪意ある拡張機能「C++ Playground」と「HTTP Format」は、数千台のシステムにダウンロードされた後になって初めて、MicrosoftのVS Codeマーケットプレースから削除された。
しかし、どちらもCursorやWindsurfといった人気のVS Code代替製品が利用するOpenVSXマーケットプレースでは、依然として活動を続けている。つまり、脅威は決して収束していない。
TigerJackのマルウェア作戦の仕組み
TigerJackの作戦は、複数段階にわたるトロイの木馬型の手口だった。
攻撃者は当初、信頼性を築いて高評価を蓄積するため、正規で完全に機能する拡張機能を公開した。
信頼を得ると、同じ拡張機能を悪意あるコードでひそかに更新し、ソースコードの窃取や暗号資産のマイニング、さらには開発者のマシンの遠隔操作まで可能にした。
例えば「C++ Playground」拡張機能は、VS Codeの起動時に自動的に有効化され、C++ファイルへのあらゆる変更を監視していた。
キーストロークのたびに遅延実行される関数が作動し、コードをリアルタイムで取得して、以下を含む流出先サーバーにアップロードしたab498[.]pythonanywhere[.]comおよびapi[.]codex[.]jaagrav[.]in。
この仕組みは非常に正確で、他の言語を使う開発者に検知されないよう、C++ファイルだけを標的にしていた。
一方、「HTTP Format」拡張機能は、埋め込まれたCoinIMPの認証情報を使い、ユーザーのCPUをひそかに暗号資産のマイニングに利用した。
難読化されたコードは複数のCoinIMPエンドポイントに接続して残高を監視し、採掘したコインをTigerJackのウォレットに直接送金していた。
さらに懸念されるのは、追加の拡張機能にリモートコード実行(RCE)バックドアが含まれており、攻撃者が20分ごとに任意のJavaScriptをダウンロードして実行できたことだ。
これにより感染したシステムへの継続的かつ動的なアクセスが可能になり、事実上、開発者のマシンが操作可能なボットへと変えられた。
組織的で執拗な脅威
TigerJackのキャンペーンは一度限りのマルウェア投入ではなく、組織的で持続的な侵入だった。
Microsoftが悪意ある拡張機能を削除した後も、脅威アクターは再公開キャンペーンを開始し、498-00の公開者名で5つの新たな亜種をアップロードした。その中にはC++ Playgroundの再パッケージ版も含まれていた。
この適応型の戦略は、現在のマーケットプレース防御の限界を浮き彫りにしている。
開発者にはMicrosoftによる削除が自動通知されなかったため、自分たちのシステムが侵害されたことに気づかなかった。
研究者はまた、運用上のセキュリティー上の失策とみられる事実も発見した。「Zubaer Ahmed」名義のFacebookプロフィールが、TigerJackのGitHubアカウントにリンクされていたのだ。このアカウントはその後削除されており、露見を受けて痕跡を隠そうとした可能性を示している。
身を守る方法
TigerJackのキャンペーンによる影響を抑え、同様のサプライチェーン攻撃を防ぐため、組織は以下の主要な緩和策によって開発環境のセキュリティーを強化すべきだ。
- 悪意ある拡張機能を監査・削除する:直ちに開発環境全体のVS CodeおよびOpenVSX拡張機能をすべて確認し、ab-498、498、498-00の公開者に関連するものを削除する。
- 侵害されたシステムを再構築する:影響を受けたワークステーションを再イメージ化し、永続的なアクセスを排除するため、漏えいした可能性のある認証情報をすべて更新する。
- ネットワークを監視しエンドポイントのアクティビティを監視するには:EDRおよびネットワーク監視ツールを使い、不審な外向き通信、コード流出の試み、暗号資産マイニングの挙動を検知する。
- 許可リストと最小権限を徹底する:開発者の権限を制限し、アプリケーションの許可リストを適用して、未承認のバックグラウンドプロセスやツールを阻止する。
- 拡張機能の提供元を制限・検証する:信頼できる、または社内でミラーリングしたマーケットプレースからのみインストールを許可し、すべてのサードパーティー製拡張機能にコード署名または検証を義務付ける。
- 開発者のセキュリティー衛生を強化する:安全なコーディング手法や拡張機能の安全な利用、サプライチェーン侵害の兆候の見分け方について開発者を訓練する。
これらを実施すれば、目先のリスクを軽減できるだけでなく、進化を続けるソフトウェアサプライチェーン攻撃に対する組織全体のサイバーレジリエンスも強化できる。
脅威アクターも「左シフト」している
組織がセキュリティーの「左シフト」を進める中、攻撃者もそれに追随し、開発者が頼るまさにそのツールの内部に入り込んでいる。
このキャンペーンは、2020年のSolarWindsのような過去のサプライチェーン侵害を想起させるが、より広範で分散した影響力を持つ。
単一のベンダーに侵入するのではなく、TigerJackは信頼そのものを悪用し、オープンソースエコシステムをマルウェアの配布手段に変えた。
教訓は明白だ。今やあらゆる拡張機能、プラグイン、依存関係が、潜在的な攻撃対象領域となっている。
より強固なソフトウェアサプライチェーンのセキュリティー対策を開発者エコシステム全体で実践することが急務だ。





