AI駆動型コードエディタCursorのユーザーが、ソフトウェアサプライチェーン攻撃の標的となりました。Anthropic社の拡張機能Claude Codeの悪意あるバージョンがエディタ専用のストアに掲載され、発見・削除されるまで約11日間(※原文では11時間)にわたって存在し続けました。
技術データによると、このインシデントには識別子anthropic.claude-codeを持つ拡張機能のバージョン2.1.312と2.1.313が含まれていました。セキュリティ研究者のケヴィン・ボーモント(Kevin Beaumont)氏は、削除される前にmacOSおよびWindows環境で作業する開発者の約5,000台のシステムにマルウェアが配布された可能性があると推測しています。
攻撃のメカニズムと偵察の試み
攻撃者は、拡張機能のパッケージがエディタ内に読み込まれると自動的に実行されるJavaScriptコードを組み込む手法を採用しました。攻撃の初期段階は、ホストシステムに関する機密情報を収集することによる開発環境の偵察に焦点を当てており、以下が含まれていました。
- デバイス名(ホスト名)、ユーザー名、オペレーティングシステムのタイプ、アーキテクチャ。
- 現在の作業ディレクトリのパス。
- バージョン管理ツールGitにグローバル登録されているメールアドレス。
Microsoft社が観測した内容を含む分析結果によると、このコードはその後、SSHキーのインストール、被害者のデバイス上でのローカルSSHサーバーの有効化、攻撃者がファイアウォールをバイパスできるようにするリバースSSHトンの確立を試みたほか、システムの再起動後も侵害が確実に維持されるようにするための自動起動ファイルの植え付けを行いました。
完全な侵害の失敗と対応策
Cursorの運営側は、SSHトンを介してシステムを制御しようとした攻撃者の試みは、ほとんどのケースにおいて完了しなかったと断言しました。拡張機能はデフォルトでは大半のmacOSやWindowsデバイス上で管理者(Admin/Root)権限を持たないため、ローカルのSSHサービスを有効化できず、攻撃者がリモートログインのステップを完了するのを防いだためです。
一方、Anthropic社は、エンジニアのフェリックス・リースバーグ(Felix Rieseberg)氏を通じて、これらの偽バージョンは同社によって開発・公開されたものではなく、Visual Studio Marketplace、Open VSX、NPMレジストリなどの他の公式ストアにも提供されていないと説明しました。バージョン番号の重複を避けるため、Anthropic社は公式バージョンの番号を直接2.1.314に引き上げました。
封じ込めの手順と開発者が取るべき対応
Cursorプラットフォームは、不審な2つの拡張機能を速やかに削除し、ストアを一時停止してレビューを行いました。また、ストアを再開する前にすべてのセキュリティキーをローテーションし、ストアの環境を再構築するとともに、攻撃者が使用した制御サーバーを停止させるためにクラウドホスティングプロバイダーとの連携を行いました。
同社は、悪意あるペイロードがシステム内に常駐するための独立したスクリプトを作成するため、エディタから拡張機能をアンインストールするだけでは侵害されたシステムのクリーンアップとしては不十分な可能性があると強調しました。Cursorは、スキャン用のスクリプトを侵害の兆候(IoCs)とともに提供し、感染の疑いがあるデバイスの隔離、未承認のSSHキーの削除、稼働中のトンネル経路の停止、およびマルウェアの形跡を確実になくすためのシステム全体の再フォーマットの必要性の評価を推奨しています。