悪意ある npm パッケージ
悪意ある npm パッケージ とは何ですか?
悪意ある npm パッケージインストール時にデータ窃取、マルウェア導入、下流アプリ侵害を狙う隠しコードを含む npm パッケージ。
悪意ある npm パッケージは、JavaScript 開発者が公開 npm レジストリに寄せる信頼を悪用します。攻撃者は新規パッケージを公開する、放置されたプロジェクトを引き取る、メンテナアカウントを乗っ取るなどして、広く使われているライブラリの汚染版を配布します。代表的なペイロードは認証情報・トークン窃取、暗号資産ウォレットの吸出し、npm のライフサイクルスクリプトを利用してインストール時に動作するドロッパーです。著名な事件として 2018 年の event-stream(引き継いだメンテナが Copay ウォレット窃取コードを混入)や 2021 年の ua-parser-js(乗っ取られたバージョンがコインマイナーとパスワード窃取を数百万台に展開)があります。対策はロックファイル、--ignore-scripts、メンテナの 2FA、SBOM、依存スキャナ、来歴(provenance)証明などです。
● 例
- 01
event-stream 2018: 新しいメンテナが flatmap-stream を追加して Copay ウォレットの資金を盗む。
- 02
ua-parser-js 2021: 乗っ取られたバージョンがコインマイナーと認証情報窃取をインストール。
● よくある質問
悪意ある npm パッケージ とは何ですか?
インストール時にデータ窃取、マルウェア導入、下流アプリ侵害を狙う隠しコードを含む npm パッケージ。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
悪意ある npm パッケージ とはどういう意味ですか?
インストール時にデータ窃取、マルウェア導入、下流アプリ侵害を狙う隠しコードを含む npm パッケージ。
悪意ある npm パッケージ はどのように機能しますか?
悪意ある npm パッケージは、JavaScript 開発者が公開 npm レジストリに寄せる信頼を悪用します。攻撃者は新規パッケージを公開する、放置されたプロジェクトを引き取る、メンテナアカウントを乗っ取るなどして、広く使われているライブラリの汚染版を配布します。代表的なペイロードは認証情報・トークン窃取、暗号資産ウォレットの吸出し、npm のライフサイクルスクリプトを利用してインストール時に動作するドロッパーです。著名な事件として 2018 年の event-stream(引き継いだメンテナが Copay ウォレット窃取コードを混入)や 2021 年の ua-parser-js(乗っ取られたバージョンがコインマイナーとパスワード窃取を数百万台に展開)があります。対策はロックファイル、--ignore-scripts、メンテナの 2FA、SBOM、依存スキャナ、来歴(provenance)証明などです。
悪意ある npm パッケージ からどのように防御しますか?
悪意ある npm パッケージ に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
悪意ある npm パッケージ の別名は何ですか?
一般的な別名: 汚染パッケージ, 悪意ある npm リリース。
● 関連用語
- attacks№ 1183
Typosquatting パッケージ
人気ライブラリと非常に似た名前で公開され、開発者が打ち間違いなどで誤って導入してしまう悪意あるオープンソースパッケージ。
- appsec№ 304
依存関係混同攻撃(Dependency Confusion)
攻撃者が組織内部の依存関係と同じ名前の悪意あるパッケージをパブリックレジストリに公開し、ビルドツールにパブリック版を取得させるサプライチェーン攻撃。
- attacks№ 1116
サプライチェーン攻撃
信頼されたサードパーティのソフトウェア・ハードウェア・サービス提供者を侵害し、その下流顧客に到達する攻撃。
- attacks№ 1097
スタージャッキング
悪意あるパッケージが有名な GitHub リポジトリへの偽のリンクを設定し、そのスター数や貢献者、信頼性を見かけ上引き継がせるサプライチェーン手法。
- attacks№ 868
プロテストウェア
オープンソースソフトウェアのメンテナが政治的動機からメッセージ表示や特定国とみなしたユーザーへの妨害コードを意図的に追加するソフトウェア。