概要
2026年5月22日、「TrapDoor」と命名されたサプライチェーン攻撃が発覚した。npm・PyPI・Crates.ioの3つの主要パッケージレジストリを横断し、34の悪意あるパッケージ(384バージョン以上)が短期間で一斉に公開された。暗号通貨・DeFi・Solana・AIコミュニティの開発者を狙った命名を採用し、正規の開発ツールを装うことで標的の信頼を獲得する典型的なタイポスクワッティング型の手口だ。窃取対象はSSH鍵、クラウド認証情報、暗号通貨ウォレット(Sui・Solana・Aptos)、ブラウザのログインデータ、環境変数・APIキーなど開発者が日常的に扱う広範なシークレット情報に及ぶ。
エコシステム別の技術的手法
攻撃者はパッケージレジストリごとに固有の実行経路を悪用し、検出を困難にしている。
**npm(21パッケージ)**では、postinstallフックを利用してインストール直後にtrap-core.js(1,149行の認証情報収集スクリプト)を実行する。このペイロードはFernet暗号とECDH鍵交換を用いた高度な暗号化を施しており、窃取した認証情報をAWSおよびGitHubの正規APIへのリクエストで検証してから外部へ送信する。さらにGitフック、シェルフック、systemdサービス、cronジョブ、SSHを用いた横断的な侵入経路を確立し、感染環境への持続的なアクセスを維持する。
**PyPI(7パッケージ)**では、モジュールのインポート時に攻撃者管理下のGitHub Pagesドメイン(ddjidd564[.]github[.]io)からリモートのJavaScriptペイロードをダウンロードして実行する。リモートロード方式を採用しているため、パッケージを再公開することなくペイロードの内容を事後に変更でき、静的スキャンによる検出をより困難にする。
**Crates.io(6パッケージ)**では、Rustのビルドシステムが提供するbuild.rsスクリプトを悪用し、コンパイル時に自動実行されるコードでローカルのキーストアを探索する。窃取したデータはXOR暗号(ハードコードされた鍵cargo-build-helper-2026)で暗号化された後、GitHub Gistへ送信される。
AIアシスタントを操る新手口
本攻撃の特筆すべき点は、AIコーディングツールを悪用する新たな攻撃ベクターの実装だ。攻撃者は.cursorrulesやCLAUDE.mdファイルにゼロ幅Unicode文字を使って隠しインストラクションを埋め込み、CursorやClaudeなどのAIアシスタントが「セキュリティスキャン」として認識・実行するように仕向けることで、開発環境内の機密データを収集・外部送信させようとする。さらに攻撃者のGitHubアカウント(ddjidd564)はlangchain-aiやOpenHandsなどのAIプロジェクトにプルリクエストを送り、悪意あるファイルを広く普及させようとした形跡も確認されている。
背景と対策
本キャンペーンはSocket社の調査により発覚し、同社は複数エコシステムをまたぐ組織的な攻撃として公表した。暗号通貨・DeFi・AIという高価値な領域の開発者を集中的に狙った点、そして3つのレジストリで同時多発的にパッケージを公開した点は、攻撃者が十分な準備と自動化インフラを有していることを示唆する。開発者は見覚えのないパッケージのpostinstallスクリプト・build.rs・インポート時の実行コードを精査し、CI/CD環境やローカル開発環境のシークレットを定期的にローテーションすることが強く推奨される。また、プロジェクトに含まれる.cursorrulesやCLAUDE.mdファイルにゼロ幅文字などの不審なデータが含まれていないか確認することも重要な対策となる。