検索
ニュース

npmサプライチェーン攻撃は新段階に ClaudeやCursorを狙う自己増殖マルウェアの正体開発者を狙う新攻撃

ソフトウェアサプライチェーン攻撃は、AI開発環境も標的にし始めた。AsyncAPI関連パッケージから見つかった悪性コードは、自ら感染を広げるだけでなく、Claude CodeやCursorなどの設定を書き換える機能まで搭載していたという。その詳細とは。

Share
Tweet
LINE
Hatena

 GMO Flatt Securityは2026年7月14日、「AsyncAPI」エコシステムの複数のnpmパッケージに悪性コードが混入したソフトウェアサプライチェーン攻撃について、解析結果と対応指針を公表した。

 AsyncAPIは、イベント駆動型アーキテクチャにおける非同期通信のAPI仕様を定義する業界標準だ。同社が提供するセキュリティツール「Takumi Guard」の解析基盤で観測した情報を基に、攻撃の仕組みや影響、利用者が実施すべき対策をまとめた。

ClaudeなどのAI開発環境を標的に 新型ワーム型マルウェアの危険な仕組み

 同調査の結果、「@asyncapi/specs」「@asyncapi/generator」「@asyncapi/generator-helpers」「@asyncapi/generator-components」の特定バージョンに悪性コードが混入していたことが判明した。一部は週当たり数百万回ダウンロードされる広く利用されるパッケージで、2026年7月14日以降に対象バージョンをインストール・利用した環境では感染している可能性がある。

 解析によると、悪性コードはワーム型マルウェアで、パッケージがrequireやimportされた時点で実行される。開発者の認証情報を窃取するだけでなく、取得したトークンを悪用してnpmや「PyPI」「crates.io」に悪性パッケージを公開し、自律的に感染を拡大する機能を備えていた。ではこの攻撃はどう展開されるのだろうか。

 この攻撃は複数段階で構成される。改ざん済みパッケージは子プロセスを生成してJavaScriptを実行し、「IPFS」経由で第2段階のペイロードを取得する。取得したsync.jsには複数層の暗号化と難読化が施されており、復号後には約9万2000行のJavaScriptコードが展開される。このコードには「Miasma」と呼ばれるワームフレームワークが含まれ、「Linux」ではsystemdユーザーサービス、「macOS」ではシェル設定ファイル、Windowsではレジストリを利用して永続化し、再起動後も動作を継続する。

 感染端末はコマンド&コントロール(C2)サーバと定期的に通信し、自己拡散や認証情報の収集、ペイロード更新、ファイル操作、任意のシェルコマンド実行など計12種類の指令を受信できる。「ShellExec」や「FilePut」にも対応しており、遠隔操作機能も備える。

 窃取対象には「Amazon Web Services」(AWS)や「Kubernetes」「Git」、CI/CD(継続的インテグレーション/継続的デリバリー)、npmの認証情報に加え、環境変数内のシークレットも含まれる。収集した情報は暗号化して外部送信され、取得したトークンを悪用して新たな悪性パッケージの公開も試みる。

 通信経路はC2サーバだけではない。「Nostr」や「libp2p」「BitTorrent DHT」「mDNS」「Ethereum」ブロックチェーンなど複数の通信手段を備えており、C2サーバが利用できなくなっても通信を継続できる設計となっていた。LAN内ではプライベートアドレス空間を探索し、感染ノード同士で通信経路を共有する機能も確認されている。

 さらに「Claude Code」や「Cursor」「Gemini」「Visual Studio Code」などAIコーディング環境の設定ファイルを書き換える機能も実装されていた。.claudeや.vscode、.gemini、.cursorの設定を書き換え、対象リポジトリを開くだけで感染コードを再実行させる仕組みを追加する。加えて、仮想環境や一部のEDR製品、ロシア語ロケール(言語や国・地域ごとの表示形式のルール設定)を検出した場合には動作を停止するサンドボックス回避機能も備えていた。

「provenance」だけでは防げず GMO Flatt Securityが推奨する対策

 GMO Flatt Securityは、感染が疑われる場合、影響を受けたバージョンが利用されていないかどうか「package-lock.json」や「node_modules」を確認するとともに、「sync.js」や「.miasma」関連ファイルなど永続化の痕跡を調査するよう呼び掛けている。

 感染が確認された場合は、安全なバージョンに更新した上で永続化設定を削除し、AWSやKubernetes、Git、npm、CI/CDで利用している認証情報や環境変数内のシークレットを全て更新することを推奨した。また、自身のnpmやPyPI、crates.ioアカウントから身に覚えのないパッケージが公開されていないかどうかも確認する必要があるとしている。

 予防策としては、CI/CD環境でのlifecycle scriptの無効化や、npmのmin-release-age設定を利用した検疫期間の導入、多層防御の実施を推奨した。一方で、今回の攻撃では悪性コードがindex.jsに直接埋め込まれていたため、lifecycle scriptの無効化だけでは防げないという。

 また、改ざんされたパッケージは正規のCI/CDパイプラインを経由して公開されていたため、パッケージの真正性を証明するprovenanceが付与されていても侵害を見抜くことはできなかった。同社は、単一の対策に依存するのではなく、検疫期間の導入や多層防御を組み合わせた運用が重要になると指摘している。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る