Miasmaサプライチェーン攻撃がRed Hatのnpmパッケージを侵害
Miasmaと呼ばれる新たなサプライチェーン攻撃が、Red Hatのnpmパッケージを侵害し、開発者の機密情報を盗むためのクレデンシャル盗難ワームを配布しています。この攻撃は、インストール時の実行、クレデンシャル収集、CI/CDターゲティング、暗号化されたデータの外部送信などの手法を用いています。攻撃者は、GitHubを利用してデータを外部に送信し、悪意のあるコミットを行うことで、ソフトウェア供給チェーンをさらに危険にさらしています。Red Hatの従業員のGitHubアカウントが侵害されたことが、攻撃の発端とされています。
メトリクス
このニュースのスケール度合い
インパクト
予想外またはユニーク度
脅威に備える準備が必要な期間が時間的にどれだけ近いか
このニュースで行動が起きる/起こすべき度合い
主なポイント
- ✓ Miasma攻撃は、Red Hatのnpmパッケージを侵害し、開発者の機密情報を盗むためのワームを配布しています。
- ✓ 攻撃者は、GitHubを利用してデータを外部に送信し、悪意のあるコミットを行っています。
社会的影響
- ! この攻撃は、ソフトウェア供給チェーンの安全性に対する信頼を損なう可能性があります。
- ! 開発者や企業は、セキュリティ対策を強化する必要があります。
編集長の意見
解説
Red Hat名義のnpm侵害で拡散する「Miasma」——インストール時実行×GitHub外送×CI横展開が突いた盲点です
今日の深掘りポイント
- npmのインストール時スクリプトを足がかりに、開発者端末→CI/CD→クラウドIDへと自己増殖的に広がる設計が肝です。
- 外部送信先にGitHubを使うことで、通常業務の通信に紛れ、検知と遮断の難易度が一段上がっています。
- 侵害の起点が開発者アカウント(報道ではRed Hat従業員のGitHub)である点は、サプライヤ信頼モデルの脆弱点を再確認させます。
- 署名・プロビナンス検証、ロックファイル固定、インストールスクリプト無効化、秘密情報の即時ローテーションをセットで回す運用が急務です。
- 指標全体からは、波及可能性と即応必要性が高いと読みます。過去の依存パッケージ悪用型よりも「外送チャネルの巧妙さ」と「CI/CD横展開の設計」が一段洗練されています。
はじめに
依存パッケージの「機能」をそのまま攻撃の「機能」に転用する——サプライチェーン攻撃の本質はいつもここにあります。今回報じられた「Miasma」は、Red Hat名義のnpmパッケージに不正コードを混入し、インストール時スクリプトでクレデンシャルを集め、暗号化してGitHub経由で外送、さらに悪意のコミットで自己増殖を図るという流れです。報道では、侵害の端緒にRed Hat従業員のGitHubアカウントが関与した可能性が指摘されています。既知キャンペーン「Mini Shai‑Hulud」の縮小版という文脈でも語られていますが、ここで重要なのはラベルではなく、攻撃面の構成と運用側の打ち手です。
一次報道として公開された情報は限定的ですが、現場で即応しやすい観点に絞って、事実の整理と実務的な示唆を掘り下げます。
参考: The Hacker News: Miasma Supply Chain Attack Compromises Red Hat npm Packages
深掘り詳細
何が起きたのか(事実の整理)
- npmパッケージにインストール時実行の不正スクリプトが含まれ、開発者端末で動作するよう仕込まれていたと報じられています。
- スクリプトはブラウザやCLIに保存されたクレデンシャル、SSHキー、CI/CD関連のトークン等を収集し、暗号化のうえGitHubを経由して外部送信するとされています。
- 攻撃者はGitHubで悪意のコミットを行い、さらに供給網へ悪性コードを流し込む足場として活用しているとされています。
- 侵害の起点として、Red Hat従業員のGitHubアカウントのコンプロマイズが示唆されています。
- 収集対象にはGCPやAzureのアイデンティティ関連情報も含まれるとされ、クラウド環境への横展開を視野に入れた設計がうかがえます。
- まとめると、開発者のローカル→組織のソースリポジトリやCI/CD→クラウドの順で「踏み石」を増やす自己増殖的ワームの性格を持つ、という理解で差し支えないと考えます。
出典はいずれも上記の一次報道に基づくもので、現時点ではベンダーやレジストリ側の最終的な技術詳細・IOCの公式発表は確認できていません。今後の続報で細部は変わる可能性がある前提で読み解くべきです。
なぜ効いたのか(インサイト)
- 開発者体験とセキュリティのトレードオフ
npmのインストールスクリプトは利便性が高く、CIやローカルでデフォルト有効のことが多いです。攻撃者はこの「正当な機能」に寄り添うことで、EDRやプロキシのしきい値を突破しています。 - GitHubを外送・横展開の中核に据えた設計
多くの組織でGitHubは業務必須の通信先です。そこを外送チャネルに選ぶことで、出口制御やDLPに埋もれやすくなります。さらに、攻撃者が悪性コミットで自己増殖(依存注入やワークフロー改変)を図る点は、検知されても「ロールバック難易度が高い」特性を生みます。 - クラウドIDを最終ゴールに据える合理性
収集対象にGCP/Azureの資格情報が含まれるという報道は、近年の実務に即しています。クラウドIDを得られれば、成果は長期的・広範になります。OIDCや短命トークンの普及で難易度は上がっていますが、ローカルキャッシュや環境変数、CIの長寿命シークレットが残る環境は依然多いです。 - 「サプライチェーン×ワーム性」の危うさ
単発の悪性パッケージではなく、開発者の権限・アクセス範囲を使って自ら伝播する仕掛けは、従来のタイポスクワッティングよりも拡散速度と半減期の両面で厄介です。封じ込めに失敗すると、組織外のエコシステムにも波及します。
総合的にみて、即時の対応可能性は十分ありますが、見逃した場合の波及は大きく、検知の難易度も高めです。対応チームは「早く、小さく、広く」当たるべき案件です。
脅威シナリオと影響
以下は公開情報を土台にした仮説シナリオです。MITRE ATT&CKは技術的に妥当と考える代表例で、実際の事案で必ずしもすべてが当てはまるとは限りません。
- 初期侵入(Initial Access)
- サプライチェーン妥協による初期侵入(Supply Chain Compromise, T1195 仮説)
- 正規パッケージに偽装(Masquerading, T1036 仮説)
- 実行(Execution)
- インストール時スクリプト経由のJavaScript/シェル実行(Command and Scripting Interpreter, T1059 系 仮説)
- ユーザ実行に依存するパッケージ導入(User Execution, T1204 仮説)
- 認証情報アクセス(Credential Access)
- ブラウザやCLIストアからの資格情報取得(Credentials from Password Stores, T1555 仮説)
- ファイル・環境変数からの秘密抽出(Unsecured Credentials, T1552 仮説)
- 発見・横展開(Discovery / Lateral Movement)
- リポジトリ・CI構成の列挙(Discovery, T1087/T1518 系 仮説)
- 取得済みトークンの再利用(Valid Accounts, T1078 仮説)
- CI/CD設定やワークフローの改変(Modify Configuration/Artifacts, T1565 系 仮説)
- 指揮統制・外部送信(C2 / Exfiltration)
- Webサービス(GitHub)を用いたC2/外送(Web Service, T1102; Exfiltration to Web Services, T1567 仮説)
- 外送データの暗号化と難読化(Obfuscated/Compressed Files, T1027 仮説)
- 影響(Impact)
- 悪意コミットによるソース改変と供給網汚染(Subvert Trust Controls/Content Injection, T1553/T1565 系 仮説)
想定インパクトは、開発者個人の資格情報流出にとどまらず、CI/CDキーチェーンの侵食、さらにクラウド環境への横展開による本番資産へのアクセスに及ぶ可能性があります。ソフトウェア供給チェーンの信頼性を支えるはずの「人・リポジトリ・CI」の三点が、攻撃の増幅器に転じるのが最大の懸念です。
セキュリティ担当者のアクション
「いま」止血し、「次に」再発防止を固め、「継続的に」監視で未然防止する——その順番で整理します。
-
0〜72時間:止血と証跡確保
- 対象期間に当該Red Hat名義のnpmパッケージを取得・更新した開発者端末とCIランナーを特定し、ネットワーク隔離を含む暫定対応を検討します。
- GitHub・クラウド・コンテナレジストリのトークン、SSH鍵、PAT(特にクラシックPAT)を強制ローテーションします。組織ポリシーで古いPATを無効化し、細粒度・短寿命トークンに移行します。
- GitHub組織の監査ログで、見知らぬ元IP・地理・オートメーションからのpush/PR/Actions実行、保護ブランチ設定変更の痕跡を確認します。
- 開発端末とCIで、npmインストール直後に生成・実行された未知スクリプト、npm→node→git/curl等のプロセスチェーンをハンティングします。EDRやSysmon/OSQueryのイベントで相関を見るのが有効です。
- 影響範囲が明確になるまで、CIの外向き通信を最小化し、GitHubへのpushやGist投稿など外送に悪用されやすいチャネルを一時制限します。
-
1〜2週間:再発防止の土台づくり
- パッケージ管理の強化
- CIは原則として
npm ci --ignore-scriptsを既定にし、どうしても必要なビルドスクリプトは「厳格な許可リスト」で一時的にだけ有効化します。ローカル開発でもignore-scriptsを既定にし、例外はチーム内でレビュー・記録します。 - ロックファイル(package-lock.json等)を厳格運用し、リビジョンピン止めと整合性チェックを徹底します。第三者レジストリのミラー(社内レジストリ)でキャッシュ・検疫を挟むのも有効です。
- CIは原則として
- 署名とプロビナンスの検証
- npmパッケージは署名とプロビナンス(ソース・ビルド環境・パブリッシャの来歴)を検証可能なものを優先し、社内ポリシーで必須化します。GitHub Actions等のビルドからの発行は、署名付きコミットとビルドの出自が追える形を標準にします。
- GitHubセキュリティの標準化
- 組織強制の2FA/SSO、保護ブランチと必須レビュー、署名付きコミット必須化、機密スキャン(push protection含む)を既定にします。
- 自動化トークンはGitHub App/OIDCを使い、長寿命の静的シークレットを極力排します。
- クラウドIDの「短命化」
- GCP/Azure等の認証はフェデレーション/OIDCを優先し、長寿命キーの撲滅とスコープ最小化を進めます。CIの環境変数にシークレットを静的配置しない運用に切り替えます。
- パッケージ管理の強化
-
継続運用:検知・対応を業務フローに埋め込む
- ハンティング定義
- npm/yarn/pnpm実行直後の外部プロセス起動(git、curl、PowerShell等)、予期せぬ
preinstall/postinstallスクリプトの実行、開発者端末から業務外GitHubリポジトリへのpushイベントを検知します。
- npm/yarn/pnpm実行直後の外部プロセス起動(git、curl、PowerShell等)、予期せぬ
- 出口監視
- GitHub向けトラフィックのうち、通常業務と異なる宛先(個人リポジトリ、Gist、異常頻度のGraphQL/APIアクセス等)を相対評価しアラート化します。
- 変更管理
- 依存パッケージの追加・更新は変更申請にひも付け、SCAの結果、署名・プロビナンス検証の結果を証跡として残します。
- ハンティング定義
-
ガバナンスと教育
- 依存パッケージポリシー(使用許諾、検証、更新周期、緊急撤去手順)を文書化し、CICDゲートで自動適用します。
- 開発者教育では「インストールスクリプトの危険性」「個人トークンより組織発行の短寿命トークン優先」「ローカルに鍵を置かない」行動様式を具体例で伝えます。
最後に、今回の事案は「見慣れた正規プラットフォーム(GitHub)」が攻撃のハブになり得る現実を再認識させます。だからこそ、検知は「禁止」ではなく「異常の相対化」で設計すべきです。開発の速さを折らずに、供給網の信頼を底上げする。ここがCISOとSOC、そして開発組織が同じ方向を向けるポイントです。
参考情報
- The Hacker News: Miasma Supply Chain Attack Compromises Red Hat npm Packages
背景情報
- i Miasma攻撃は、Mini Shai-Huludと呼ばれる攻撃キャンペーンの一環であり、インストール時に実行される悪意のあるコードを含むnpmパッケージを利用しています。これにより、開発者の機密情報が収集され、攻撃者に送信されます。
- i 攻撃者は、GitHubを利用してデータを外部に送信し、悪意のあるコミットを行うことで、ソフトウェア供給チェーンをさらに危険にさらしています。特に、GCPやAzureのアイデンティティを収集する新たなデータコレクターが追加され、クラウドへのアクセスを狙っています。