ブログ一覧に戻る
ベストプラクティス2026年2月4日3分で読めます

npx混乱攻撃:開発者が自分のパッケージ名を登録し忘れた脆弱性

npx Confusion: Packages That Forgot to Claim Their Own Name

ベストプラクティス

この記事のポイント

## 概要...

概要

AIKIDO Securityの研究により、npmエコシステムにおいて存在しないパッケージ名への「npx」コマンド実行が大規模に発生していることが判明しました。研究者は128個の「幽霊パッケージ」を予防的に登録し、7ヶ月間で121,539回のダウンロードを記録しました。この攻撃手法では、攻撃者がドキュメントで参照されているが実際には存在しないパッケージ名を登録し、開発者が無意識にマルウェアをインストールしてしまう危険性があります。

技術的な詳細

  • 攻撃対象の上位3パッケージ: openapi-generator-cli(48,356回)、cucumber-js(32,110回)、depcruise(15,637回)が全体の79%を占める
  • 攻撃手法: 存在しないパッケージ名を登録し、postinstallスクリプトで環境変数(npmトークン、クラウド認証情報、APIキー等)を窃取
  • 発見方法: npmレジストリ全体のpackage.jsonとREADMEを解析し、npxコマンドを抽出して実際の登録状況と照合
  • 成長パターン: 2025年7月から開始し、2026年1月16日にピーク(4,236回/日)を記録
  • データソース: npmパッケージ参照、GitHubコード検索結果、実際のダウンロード数の3つの指標で分析

影響と対策

影響範囲: 開発者ワークステーション、CIサーバー、ビルド環境など、認証情報を含む環境変数を持つシステムが標的となります。ピーク時には週間約4,000台のマシンが感染する可能性があります。対策: ドキュメント作成時の正確なパッケージ名確認、npx実行前の慎重な確認、CI/CDパイプラインでの依存関係検証、環境変数の最小権限化が推奨されます。

重要なポイント

  • フィッシングや既存パッケージの侵害は不要で、単純にパッケージ名を登録して待つだけの攻撃手法
  • npmにはタイポスクワッティング保護機能があるが、完全に存在しない名前に対しては無効
  • ドキュメントのみの参照でも数百回のインストールが発生(mikro-orm-esmで314回)

重要ポイント

  • ベストプラクティスに関する最新のセキュリティ情報をAIKIDOが検出・報告

原文を読む

AIKIDO Security Blog

英語で詳細な技術情報を確認

原文を読む

コメント・質問

この記事についてのコメントや質問を投稿できます

コメントを投稿するにはログインが必要です

ログインする

読み込み中...