🌐 This article hasn't been translated yet — showing the Japanese version.
Red Hat 公式 npm が汚染:32 パッケージで認証情報窃取ワーム「Miasma」配布 thumbnail

Red Hat 公式 npm が汚染:32 パッケージで認証情報窃取ワーム「Miasma」配布

Importance: High
⏱ approx. 3 min views 41 likes 0 LOG_DATE:2026-06-02
TOC

Red Hat 公式の npm スコープ「@redhat-cloud-services」配下のパッケージが大規模に侵害され、開発者の認証情報を盗み出し、感染環境から横展開していくワーム型マルウェア「Miasma」が配布されていたことが判明した。セキュリティベンダ Aikido の調査では 32 パッケージ・計 96 バージョンが汚染され、週あたりのダウンロード総数は約 11 万 6991 回に達していた。

「正規ルートでの公開」を成立させた GitHub Actions 汚染 #

注目すべきは侵害の到達経路だ。攻撃者は npm のメンテナアカウントを奪うのではなく、Red Hat の開発リポジトリに不正な GitHub Actions ワークフローを忍ばせ、CI から短時間有効な OIDC トークンを引き出して npm の正規公開フローに乗ってバックドア入りパッケージを push していた。npm 側からは何の異常も見えず、公開証跡は正規メンテナの署名で揃う。署名つき公開を「信頼の最終防衛線」と見なしている運用は、この攻撃面に対して脆い。

1. リポジトリ侵入
Red Hat の開発リポジトリへ不正な .github/workflows を追加
2. 短命トークン取得
CI から GitHub の一時認証情報を取り出し、npm への正規公開権限に化ける
3. 正規経路で汚染版を公開
バックドア入り 96 バージョンが @redhat-cloud-services/* として正規に発行
4. install 時に自動発火
利用側の npm install や CI の依存解決時点で約 4.2MB の難読化 JS が走る
5. ワーム伝播
盗んだトークンで別パッケージ/リポジトリに同じバックドアを仕込み拡散

Miasma が狙う「鍵束」の広さ #

実行される 4.2MB の難読化 JavaScript は、.env ファイルから GitHub Actions のシークレット、AWS/GCP/Azure のクラウド認証情報、SSH 秘密鍵、npm/PyPI の公開トークン、Docker の認証情報まで、現代の開発者が当然のように手元に置いている鍵束をひと通り総ざらいする。盗まれた情報は暗号化されて外部に送信されたあと、アクセスできる別リポジトリや別パッケージへも同じ仕掛けを書き戻す。1 台の開発端末や 1 本の CI ランの侵害が、組織が触っている OSS エコシステム全体へ連鎖していく構造になっている。

Aikido は、この Miasma が複数のサプライチェーン攻撃に使われてきた「Mini Shai-Hulud」と類似性を持つ派生版だと評価している。Shai-Hulud → Mini Shai-Hulud → Miasma と、難読化と認証情報収集機能を強化しながらワーム系マルウェアが世代交代している点は脅威の継続性を物語る。

当面の対応:「鍵を回す」より速く動く #

該当パッケージを取り込んだ可能性がある組織は、開発端末と CI/CD が侵害された前提で動くしかない。Aikido は CI シークレット、クラウド認証情報、SSH 鍵、npm トークンの即時ローテーションを呼びかけている。実務的には合わせて npm ci --ignore-scripts での再現性確保、CI の OIDC を範囲を絞った専用ロールに分離、公開トークンの寿命を時間単位まで縮める、といった「短命トークンを掴まれても次段に渡せない」設計への切り替えが要る。署名や 2FA だけでは、CI 経由で正規に汚染を流し込まれるこの種の攻撃は止まらない。

COMMENTS 0

No comments yet — be the first to leave one.

Post a comment