コンテンツへスキップ
Guide

Miasma ワームが Red Hat の npm パッケージを攻撃: 検出、回転、置換

| 8 min read

自己拡散する npm ワームは、2026 年 5 月 29 日に 7 つの @redhat-c​​loud-services パッケージにヒットしました。このワームは、Claude Code および VS Code 内に永続性を隠します。 60 秒の検出スクリプト、ローテーション パス、および構造の修正。

Code on a terminal representing an npm supply chain worm incident response
Photo by Growtika on Unsplash

2026 年 6 月 1 日、研究者は 5 月 29 日から活動していた自己拡散型の npm ワームを捕捉しました。 その名刺はコミット メッセージ「Miasma: The Spreading Blight」です。 侵害された Red Hat 従業員の GitHub アカウントが悪意のある孤立したコミットを RedHatInsights に直接プッシュしました リポジトリ、コードレビューのバイパス、および 7 @redhat-cloud-services パッケージ 資格情報を盗むペイロードをインストールしたすべての人に配布しました。

Miasma が新しいランブックの価値がある理由は 2 つあります。 で実行されます preinstall フック、それで 前に火事 postinstall また、インストールをキャンセルした場合でも問題が発生する可能性があります。 そしてそれは植えます 開発者ツール内の永続性: Claude Code の SessionStart フックと tasks.json"runOn": "folderOpen" VS Code プロジェクト内。 削除中 node_modules それらには何もしません。 これは、検出、回転、置換のプレイブックです。

侵害された 7 つのパッケージ

誰もがその下にいます @redhat-cloud-services 範囲:

  • vulnerabilities-client
  • tsc-transform-imports
  • topological-inventory-client
  • sources-client
  • rule-components
  • remediations-client
  • rbac-client

ステップ 1: 60 秒以内に検出する

3 つのシグナル: ツリー内の侵害されたパッケージ、Claude Code または VS 内の永続化アーティファクト への呼び出しを装ったコードおよび exfil トラフィック api.anthropic[.]com:443/v1/api。 走る これは任意のホストからのものです npm そして git:

ヒットした場合は、ステップ 2 にスキップします。ワームは、ユーザーがメッセージを読み終える前に収集を終了します。 したがって、回転を開始するには単一の信号で十分です。

持続性のコツは、片づけが速すぎるチームにとって厄介な部分です。 削除できます 不良パッケージ、リビルド node_modules、まだSessionStartフックが残っています ~/.claude/settings.json 次回クロードを開いたときにペイロードを再実行します コード。 監査 ~/.claude/settings.json.vscode/tasks.json、 そして .github/workflows ホストをクリーンと呼ぶ前に手動で実行してください。

ステップ 2: npm API を使用して公開ウィンドウを確認する

「安全な」バージョンを固定する前に、それがいつ公開されたかを確認してください。 悪意のあるバージョンが上陸したのは、 5 月 29 日なので、その日以降のリリースは疑わしいです。 botoi npm エンドポイントは、 変更されたタイムスタンプとメンテナーリストは、 npm install:

modified 以降のタイムスタンプ 2026-05-29 既知の最後にピン留めすることを意味します 最新ではなく、その日付より前に発行された適切なリリース。 GET シェイプは CDN にキャッシュされるため、 これを、すべてのプル リクエストで実行される依存関係の承認チェックに組み込むことができます。

ステップ 3: 丸太を回転させてスクラブします

Miasma は、GitHub Actions シークレット、npm トークン、クラウド認証情報、Kubernetes、および Vault を収集します。 マテリアル、SSH キー、Git 認証情報。 次の順序でローテーションします: npm トークンは新しいパブリッシュを停止し、 GitHub PAT はリポジトリへの書き込みを停止し、クラウド IAM キーはデータのエクスポートを停止し、次に Vault と SSH を停止します。 しないでください まず調査してください。 回転させてから調査します。

ペイロードはこれらのシークレットをログにダンプし、ログが Datadog、Sentry、チケット発行に流れ込みます。 システム。 高リスクのフィールドを秘密検出器にパイプし、秘密検出器に到達する前にフェールクローズします。 クエリ可能なインデックス:

ステップ 4: CI ガードで次の波をブロックする

Miasma はランナーに 3 つの要素を必要とします。それは、侵害されたバージョン、実行されるライフサイクル フック、そして 書き込み可能な永続化ファイル。 どれか一つでも壊してください。 この GitHub Actions チェックによりライフサイクルが無効になります ジョブのスクリプト、Miasma 永続マーカーでの失敗、Red Hat スコープ パッケージのフラグ、および ランタイム deps で署名された来歴が必要です。

保つ ignore-scripts デフォルトでオンになり、以下のパッケージの短い許可リストを維持します。 合法的にビルドする (TypeScript、esbuild、Sharp)。 実行されないプリインストールフックは収集できません 何でも。

ステップ 5: ワームが住み着く可能性のある表面を縮小する

2026 年のウェーブ全体で最も頻繁に汚染されたパッケージは、API クライアント、 検証ヘルパーと小さなユーティリティ。 それぞれが削除して置き換えられる候補です。 ローカル コードを実行しない、取り消し可能な HTTPS 呼び出し。

カテゴリ 典型的な npm 依存関係 HTTP の置き換え 突破された場合の爆発範囲
シークレットおよび PII スキャン Secretlint、pii 検出器 /v1/pii/detect 1 つの API キーをローテーションする
パッケージのメタデータ npm レジストリ クライアント ラッパー /v1/npm/{package} 1 つの API キーをローテーションする
電子メールの検証 バリデーター、ディープメールバリデーター /v1/email/validate 1 つの API キーをローテーションする
違反チェック Hibp クライアント パッケージ /v1/breach/check 1 つの API キーをローテーションする

重要なポイント

  • dev-tool 永続ファイルを確認してください。 瘴気が潜んでいる ~/.claude/settings.json そして .vscode/tasks.json。 パッケージの削除 フックは外せません。
  • 公開日でピン留めします。 7 つのパッケージに含まれる日付以降のもの 2026-05-29 が疑わしい。 使用 /v1/npm/{package} 確認するために。
  • 調べる前に回転してください。 npm トークン、GitHub PAT、クラウド キー、Vault、SSH。 Exfil は数秒で完了します。
  • デフォルトではライフサイクル スクリプトを無効にします。 実行されないプレインストールフックは実行できません 何でも盗む。
  • 表面を縮めます。 単一呼び出しの npm パッケージを取り消し可能な HTTP に置き換える エンドポイント。 侵害されたキーは 1 つのリクエストで無効になります。

ボトイの展示品 /v1/npm/{package}/v1/pii/detect/v1/breach/check、および 1 つの API キーの背後にある約 200 の他の単一目的エンドポイント 5 リクエスト/分は無料です。 それらをインシデント ランブックに結び付けるか、 MCPサーバー クロードへ アシスタントが検出スクリプトを実行するようにコーディングします。 から始めてください インタラクティブドキュメント

FAQ

Miasmaサプライチェーン攻撃とは何ですか?
Miasma は、2026 年 6 月 1 日に発見された自己拡散型の npm ワームで、最初の「Miasma: The Spreading Blight」コミットは 2026 年 5 月 29 日でした。侵害された Red Hat 従業員の GitHub アカウントがコードレビューをバイパスして悪意のある孤立したコミットを RedHatInsights リポジトリにプッシュし、7 つの @redhat-cloud-services npm パッケージが難読化されたプリインストール フックとともに公開されました。 資格情報を収集し、新しいホストに拡散します。
どのパッケージが侵害されたのでしょうか?
@redhat-c​​loud-services スコープ内の 7 つのパッケージ: vulnerabilities-client、tsc-transform-imports、topological-inventory-client、sources-client、rule-components、remediations-client、および rbac-client。 ロックファイルが 2026 年 5 月 29 日以降にこれらのいずれかを取得した場合は、ホストを侵害されたものとして扱い、ホストが触れたすべての資格情報をローテーションします。
Miasma は以前の npm ワームとどう違うのですか?
Miasma はプレインストール フックで実行されるため、ポストインストールの前に起動され、キャンセルされたインストールでもトリガーされる可能性があり、CI だけでなく開発者ツール内に永続性を植え付けます。 SessionStart フックを Claude Code に挿入し、runOnfolderOpen を含む task.json を VS Code プロジェクトに書き込み、感染ごとに独自に暗号化されたペイロードを生成して署名スキャンを回避します。 node_modules を削除しても削除されません。
ワームは何を盗み、どこに送りますか?
GitHub Actions シークレット、npm トークン、クラウド認証情報、Kubernetes および Vault マテリアル、SSH キー、Git 認証情報。 これは流出をポート 443 上の api.anthropic[.]com へのトラフィックとして偽装し、セカンダリ チャネルとして GitHub にフォールバックするため、未知のドメインに対する出力フィルタリングだけではこれを捕捉できません。
単一目的の HTTP API はこのリスクをどのように軽減するのでしょうか?
プレインストール フックを備えたパッケージは、それをインストールするすべてのマシンで任意のコードを実行します。 単一目的 API への HTTPS 呼び出しはローカルでは何も実行されず、取り消し可能なキーによってゲートされます。 API プロバイダーが侵害された場合は、1 つのキーをローテーションします。 ツリー内のパッケージが侵害された場合、マルウェアはすでに実行されています。 このトレードでは、爆発半径が小さいため、遅延コストが少なく、即時取り消しが可能です。

botoiで開発を始めよう

150以上のAPIエンドポイント。検索、テキスト処理、画像生成、開発者ユーティリティに対応。無料プラン、クレジットカード不要。