ssecutils
Security / Browser-native guide

Red Hat npmパッケージ汚染(Miasmaワーム)詳解 - 従業員GitHub乗っ取りからの自己増殖サプライチェーン攻撃

11Zero tracking reading surface

信頼できる大手ベンダーが公開しているパッケージなら安全——その思い込みが突き崩される事案が、また起きた。2026年6月1日、npmの@redhat-cloud-services名前空間で、Red Hatの正規パッケージにバックドアが仕込まれて公開されるサプライチェーン攻撃が発覚した。攻撃者はRed Hat従業員のGitHubアカウントを乗っ取り、CIの仕組みを悪用してコードレビューを丸ごと迂回。混入したのは、開発者の認証情報を盗みながら自己増殖する4.2MBのワーム「Miasma」だった。本稿では、この攻撃の何が新しく、開発組織が何を確認すべきかを解説する。

概要

  • 発覚日:2026年6月1日。
  • 対象:npmの@redhat-cloud-services名前空間。32パッケージ・96バージョンが汚染。合計の週間ダウンロードは約116,991回
  • 侵入経路:Red Hat従業員のGitHubアカウント乗っ取り。攻撃者が悪性のワークフローファイルとスクリプトをリポジトリに注入し、コードレビューを完全に迂回
  • 公開手段:改ざんしたci.yamlワークフローがGitHub Actions のOIDCトークンを使って、バックドア入りパッケージを正規に公開した。
  • ペイロード:4.2MBの難読化された認証情報窃取ワーム「Miasma」。npmインストール時のpreinstallスクリプトで実行される。

何が起きたのか

@redhat-cloud-servicesは、Red Hatのクラウドサービス関連のnpmパッケージが置かれた名前空間だ。2026年6月1日、この名前空間の複数パッケージに、攻撃者がバックドアを仕込んだ新バージョンを公開した。汚染は32パッケージ・96バージョンに及び、週あたり10万回以上ダウンロードされる規模だったため、影響は広範に及びうる。

攻撃の起点は、Red Hat従業員のGitHubアカウントの乗っ取りだった。攻撃者はその権限を使ってリポジトリに悪性のワークフローファイルとスクリプトを直接注入し、本来必要なはずのコードレビューのプロセスを一切通さずに変更を反映させた。さらに巧妙なのは公開の方法だ。改ざんされたci.yaml(GitHub Actionsの定義ファイル)が、GitHub Actionsの OIDC トークンを悪用してnpmへバックドア入りパッケージを公開した。これは「正規のCIパイプラインが正規のトークンで公開した」形になるため、外形上は何の異常もない正規リリースに見える。

混入したマルウェアは「Miasma」と名付けられた、4.2MBの難読化された認証情報窃取ワームだ。npmでインストールされる際のpreinstallスクリプトとして実行され、開発者やCI環境の機密情報を収集する。そして、被害者アカウントがアクセスできる他のパッケージにバックドア版を再公開することで感染を連鎖させる——典型的なワーム(自己増殖型)の挙動だ。

技術的な解説

「コードレビュー迂回」と「正規CIによる公開」が肝

通常、パッケージの公開には複数の安全装置がある。プルリクエストのレビュー、ブランチ保護、二要素認証などだ。今回の攻撃は、これらを正面から破るのではなく横から回り込んだ

  • アカウント乗っ取りで正規開発者になりすませば、リポジトリへの書き込み権限を得られる。
  • ワークフローファイル(CI定義)自体を改ざんすると、レビュー対象の「アプリケーションコード」ではなく「ビルド・公開の仕組み」を乗っ取れる。多くの組織はアプリコードはレビューしても、CI定義の変更を同じ厳格さでレビューしていない。
  • OIDCトークンによる公開は、長期の固定トークンを使わずに済む正規のモダンな仕組みだが、ワークフロー自体が汚染されていればそのまま悪用される。

結果として、「信頼された大手ベンダーが、正規のCIで、正規の方法で公開した」パッケージの中身だけが悪性、という最も見抜きにくい形が成立した。

preinstallスクリプトという実行トリガー

Miasmaはpreinstallライフサイクルスクリプトで動く。npmはパッケージのインストール時にpreinstall/install/postinstallといったスクリプトを自動実行する仕様で、ここに悪性コードを置けば、開発者がnpm installした瞬間に——コードを一行も呼び出していなくても——マルウェアが走る。これはnpm系サプライチェーン攻撃の常套手段だ。

何を盗み、どう広がるのか

Miasmaが収集する対象は、現代の開発・クラウド環境の「鍵束」そのものだ。

  • AWS/GCP/Azureのクラウド認証情報
  • GitHub Actionsのシークレット、npm/PyPIの公開トークン
  • SSH鍵、GPG鍵
  • Kubernetes設定(kubeconfig)、Docker認証情報
  • .envファイル(環境変数に書かれた各種シークレット)

これらを盗むと、被害者アカウントの権限で別のパッケージにバックドア版を再公開し、感染を次の開発者・組織へ広げる。1人の開発者の侵害が、その人が管理する全パッケージの利用者へ波及する構造だ。

Mini Shai-Huludとの関係

Miasmaは、2026年5月にTeamPCPがオープンソース化した「Mini Shai-Hulud」と強い類似性があるとされる。攻撃ツールが公開されると、他の攻撃者がそれを複製・改変して再利用できるようになり、同種の攻撃が増殖する。自己増殖ワームのコードが出回ったことで、「Red Hatという別の標的に対する新たな波」が生まれた、という構図だ。npmの自己増殖ワームが一過性の事件ではなく、繰り返し襲来する脅威になったことを示している。

日本企業への影響

npmは日本のWeb開発・クラウド開発で事実上の標準であり、この攻撃は国内の開発組織に直接関係する。

  • 「大手の名前空間だから安全」は通用しない:Red Hatほどの企業でも従業員アカウント経由で汚染された。信頼の根拠を「公開元の知名度」に置くのは危険だ。
  • CI/CDが侵入の本丸になる:日本企業もGitHub ActionsなどでCIを組んでいる。ワークフロー定義の改ざんやシークレット窃取は、自社のパイプラインでも起こり得る。
  • 開発端末・CIに鍵が集中している:クラウド鍵・SSH鍵・.envが開発環境に散在していると、1台の侵害でクラウド本番環境まで連鎖する。
  • 自動アップデートが被害を広げる:バージョンを固定せず最新を取り込む運用だと、汚染版を自動で引き込んでしまう。

今すぐ確認すべきポイント

1. 影響パッケージの利用有無を確認し、シークレットを総ローテーションする

@redhat-cloud-services配下の汚染バージョンを、自社のプロジェクトやCIで取り込んでいないかを確認する。少しでも該当・疑いがあれば、CIシークレット・クラウド認証情報・SSH鍵・npmトークンをただちに再発行(ローテーション)する。Miasmaは鍵束を盗む前提なので、「念のため」ではなく必須の対応だ。

2. インストールスクリプトの自動実行を止める

preinstall/postinstallの自動実行は、サプライチェーン攻撃の主要な発火点だ。次を検討する。

# ライフサイクルスクリプトを実行せずにインストール
npm install --ignore-scripts

# 恒久設定(プロジェクト/組織のnpm設定に)
npm config set ignore-scripts true

スクリプトを本当に必要とするパッケージは限られる。原則オフにし、必要なものだけ個別に許可する。

3. バージョンを固定し、取り込みを遅らせる

lockfile(package-lock.json)でバージョンを固定し、npm ciロック済みの正確なバージョンだけを入れる。公開直後の最新版を即座に取り込まず、一定のクールダウン期間(数日)を置く運用や、内部プロキシ/レジストリファイアウォールで既知の悪性版をブロックする仕組みも有効だ。

4. CI/CDのワークフローと権限を守る

今回の起点はアカウント乗っ取りとワークフロー改ざんだった。次を点検する。

  • 開発者・メンテナのアカウントにフィッシング耐性のあるMFA(FIDO2/Passkey)を必須化する
  • ワークフローファイル(.github/workflows/)の変更を、アプリコードと同等以上に厳格にレビューする。CODEOWNERSで保護する
  • OIDC/公開トークンの権限を最小化し、公開は保護されたブランチ・限定環境からのみ許可する
  • npmパッケージ公開に二要素認証・Trusted Publishingを使い、不審な公開を検知する

5. 開発環境からシークレットを排除する

.envに長期の固定鍵を平置きせず、シークレットマネージャや一時的な認証情報(短命トークン)に移行する。盗まれても短時間で無効になる設計にしておけば、窃取されても被害を抑えられる。インシデントが疑われる場合は、インシデント対応手順に沿って影響範囲の特定と封じ込めを行う。

参考情報

  • Aikido Security: Red Hat npm Packages Compromised to Spread a Credential-Stealing Worm
  • Cybersecurity Dive: Dozens of Red Hat npm packages targeted in supply chain attack
  • GitGuardian: 三つのサプライチェーン攻撃(npm/PyPI/Docker Hub)に関する分析
  • Unit 42(Palo Alto Networks): The npm Threat Landscape — Attack Surface and Mitigations
Related reading

関連記事

Security12
ノートン vs ウイルスバスター 比較2026 - どちらを選ぶべきかNorton 360とウイルスバスタークラウドを料金・機能・サポート・動作の軽さで比較。VPN・バックアップ内蔵のオールインワンか、Pay Guard・24時間日本語電話サポートの国内安心感か。用途別の選び方を解説します。
Security11
Cisco SD-WAN Manager ゼロデイ CVE-2026-20245 解説|パッチなし悪用中・全デプロイタイプに影響2026年6月にCisco Catalyst SD-WAN Manager(旧vManage)で発見されたゼロデイ脆弱性CVE-2026-20245(CVSS 7.8)を解説。netadmin権限を持つ攻撃者がCLIの入力検証不備を悪用してrootコマンドを実行可能。パッチ未リリースの状態で限定的な悪用が確認されており、オンプレ・クラウド・FedRAMP全デプロイタイプが影響を受ける。
Security10
FIFAワールドカップ2026を狙うサイバー詐欺を解説|偽チケット・バンキングマルウェア・19,000ドメイン2026年FIFAワールドカップ開幕に合わせ19,000以上の詐欺ドメインが登録されている。FortiGuard Labsが分析した脅威の全貌を解説。偽チケットサイト・LummaC2/Vidar/RedLineによる認証情報窃取・SNS上の1,700件超なりすまし・バンキングマルウェアなど多層的な詐欺エコシステムへの注意喚起。
Security10
WordPress Everest Forms Pro CVE-2026-3300 解説|CVSS 9.8・eval()インジェクション・3万件超の攻撃WordPressプラグイン「Everest Forms Pro」のComplex Calculation機能に存在するCVSS 9.8のRCE脆弱性CVE-2026-3300を解説。ユーザー入力がeval()に渡ることで未認証攻撃者が任意PHPコードを実行可能。2026年4月から悪用が始まりWordfenceが29,300件超のブロックを記録。修正版1.9.13へのアップデートが急務。