概要
- NPMリポジトリ で100以上の 認証情報窃取パッケージ が発見
- 攻撃者は Remote Dynamic Dependencies (RDD) の脆弱性を悪用
- PhantomRaven キャンペーンで8万回以上ダウンロード実績
- 多くのパッケージが 未検出・未削除 のまま残存
- RDDによる 依存関係の不可視化 と セキュリティツールの盲点
NPMリポジトリの脆弱性と攻撃事例
- 2023年8月以降、 100以上の認証情報窃取パッケージ がNPMリポジトリで発見
- セキュリティ企業 Koi が攻撃手法と影響を報告
- 攻撃者は Remote Dynamic Dependencies (RDD) 機能を悪用
- RDDにより、 未検証・信頼されていないドメイン から依存パッケージを自動取得
- PhantomRavenキャンペーンで 126個の悪意あるパッケージ をNPMにアップロード
- 悪意あるパッケージの 総ダウンロード数8万6,000回超
- 2024年6月時点で 約80個のパッケージが公開中
Remote Dynamic Dependencies (RDD)の仕組みと問題点
- RDDは 依存関係の柔軟な取得 を可能にする機能
- 通常の依存関係は NPM公式インフラ から取得、可視化される
- RDDは HTTP経由の非暗号化通信 も許可
- 攻撃者は http://packages.storeartifact.com/npm/unused-imports などのURLから悪意ある依存関係をダウンロード
- RDD経由の依存関係は 開発者やセキュリティスキャナーから不可視
- NPMの表示上、「 依存関係0件」と誤認されやすい
- パッケージインストール時、 毎回攻撃者サーバーから“新鮮な”依存関係を取得
- 依存関係は キャッシュ・バージョン管理・静的化されず、検知困難
セキュリティ上の盲点とリスク
- RDDの仕組みにより 従来の静的解析ツールが無効化
- 攻撃者は セキュリティ監視の抜け穴 を突いて侵入
- 開発者や利用者は 気付かぬうちに悪意あるコードを実行
- NPMエコシステム全体 への信頼性低下リスク
- 今後さらなる攻撃手法の高度化 が懸念