Shai-Hulud: サプライチェーンのインシデントがワームに変わるとき

2025年11月26日
Lucie Cardiet
サイバー脅威リサーチマネージャー
Shai-Hulud: サプライチェーンのインシデントがワームに変わるとき

9月に私は NPM インシデントについての記事を公開し、初期エクスプロイトは攻撃の出発点にすぎない理由を説明しました。

その攻撃は、標的型で比較的単純なものでした。メンテナーがフィッシングされ、いくつかのパッケージが汚染され、目的は暗号資産の窃取に限定されていました。

Shai-Hulud は、まったく異なるアプローチを取ります。被害者が何かをクリックすることに依存せず、最初に侵入したマシンで止まりません。代わりに、ソフトウェアエコシステムに組み込まれた「信頼」を利用して、ある環境から次の環境へと移動します。その結果、サプライチェーンそのものが配布ネットワークへと変えられてしまうのです。

平然と潜むワーム

Wiz Research は、Shai-Hulud の背後にある技術的な挙動について優れた分析を公開しました。ここでは、このワームが実際にどのように機能するのかを簡単に振り返ります。

1. インストールがそのまま実行になる

開発者や CI パイプラインが感染したパッケージをインストールした瞬間、ペイロードは自動的に実行されます。何か異常が起きていることを示すプロンプトや分かりやすい兆候はありません。ワームは通常のビルド手順の中に隠れているため、最初の実行は気付かれずに進行します。

2. ランタイムを切り替えることで一般的なセキュリティ対策を回避する

多くの JavaScript 開発は、npm の基盤であり、多くのチームが監視対象としている Node.js に依存しています。セキュリティツール、ログ取得、スキャンは Node.js を前提に構築されています。

Shai-Hulud はこれを回避するため、より新しく高性能なランタイムである Bun を使ってペイロードをダウンロードし実行します。Bun はシステムから見ると単なる開発者向けツールの 1 つに見えますが、攻撃者にとっては監視や制御がはるかに少ない静かな通路になります。

この単純なランタイムの切り替えによって、チームが頼りにしている多くのガードレールをすり抜けることが可能になります。

3. 見つかるあらゆるアクセス情報を収集する

実行されると、マルウェアは体系的にアクセス情報を探索します。具体的には次のようなものです。

  • NPMトークン
  • GitHubの認証情報
  • CI/CDシークレット
  • APIキー
  • メタデータサービスからのクラウド認証情報

開発者のノート PC、ビルドサーバー、クラウドマシンは区別されません。システムが何らかのアクセス権を持っていれば、ワームはそれを収集します。

4. 意図的に盗んだデータを公開する

データを C2(コマンド&コントロール)サーバーに送信する代わりに、ワームは被害者のアカウント配下で公開 GitHub リポジトリを作成し、盗んだシークレットをそこにアップロードします。これにより、秘匿されたインフラは不要となり、機密情報は「場所を知っていれば誰でも見られる」状態で公開されます。

Shai-Hulud に関するポッドキャスト収録中に当社のセキュリティリサーチャーのDmitriy が語った言葉を借りると「盗んだインテリジェンスを公共ラジオで放送しているようなものです。」

5. 被害者がすでに持つ信頼を利用して拡散する

侵害されたメンテナーが複数のパッケージを管理している場合、Shai-Hulud はそれらすべてに悪意あるバージョンを再公開します。GitHub トークンが複数のリポジトリへのアクセス権を持っていれば、それらが次の注入ポイントになります。ワームは、被害者がエコシステム内ですでに築いている信頼に便乗することで成長します。こうして、数個のパッケージから数百へと拡大していくのです。

6. GitHub Actions を使って永続的なバックドアを設置する

マルウェアは被害者のマシン上にセルフホスト型の GitHub Actions ランナーをインストールし、GitHub Discussion が開かれるたびに実行されるワークフローを配置します。これにより、静かで持続的な足掛かりが確保されます。

ディスカッションスレッド経由で実行されるコマンドは、侵害されたシステム上で直接実行されながら、通常の自動化処理に紛れ込みます。

7. 破壊的なフォールバックとしてワイパー機能を備える

特定の条件下では、このマルウェアはホスト上のファイルを消去することができます。すべての環境で発動するわけではありませんが、この機能はリスクをさらに高めます。攻撃は窃取にとどまらず、開発そのものを破壊する可能性も持っているのです。

より深い問題:サプライチェーンは、防御側が監視できる速度を超えて信頼を拡散する

Shai-Hulud の行動はすべて、通常の開発や自動化ワークフローと一致しています。

  • 依存関係のインストール
  • スクリプトの実行
  • パッケージの公開
  • GitHubとの通信
  • クラウドAPIのクエリ

これらの行動は、単体ではどれも不審ではありません。日常的な操作です。

これこそが、このワームが効果的である理由です。マルウェアのように振る舞わず、「開発」のように振る舞い、開発ワークフローがデフォルトで継承している信頼に依存します。

  • 開発者のマシンには長期間有効なトークンが保存されている
  • CI パイプラインはコードを自動実行する
  • クラウドロールは広範な権限を持つ
  • ソース管理は、コラボレーション基盤であると同時に自動化エンジンでもある

Shai-Hulud は、ただその信頼の流れに従っているだけなのです。

シグネチャではなく「振る舞い」でワームを見る

現代のサプライチェーン攻撃は、静的な指標ではなく、行動のパターンとして姿を現します。Shai-Hulud は次のようなシグナルを残します。

  • 突然、数十のリポジトリを作成する GitHub トークン
  • ジョブ内容に見合わない量のクラウドシークレットを読み取る CI ランナー
  • 新しい自動化ランナーを突然実行し始めるワークステーション
  • これまで使ったことのないサービスを利用するクラウドキー
  • 大量のデータを GitHub にアップロードするマシン

それぞれの行動は普通です。しかし、その連なりは普通ではありません。ここで重要になるのが Vectra AI です。このプラットフォームは、パッケージのインストールをブロックしようとするのではありません。コードが実行された後に何が起きているかを、ID システム、ネットワーク、クラウド環境全体にわたって監視します。不審なアカウント活動、想定外のデータ移動、既存のパターンに合致しないクラウド操作を相関付けます。そのコンテキストによって、セキュリティチームは、断片的なイベントの集まりではなく、完全な攻撃チェーンとして状況を把握できます。Shai-Hulud のようなサプライチェーンインシデントにおいては、コンテキストこそがすべて なのです。

Vectra AI プラットフォームが実際にどのように機能するのかを見たい方は、 セルフガイドデモで体験することができます。ぜひご確認ください。

よくあるご質問(FAQ)