8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【危険】npmパッケージに感染!自己増殖型マルウェアShai-Hulud. あなたの環境は安全?

8
Last updated at Posted at 2025-09-18

※本記事は執筆時点(2025/9/19)の公開情報を整理したものです。最新状況は各社のアドバイザリやnpm公式の告知をご確認ください。

1. Shai-Huludとは

2025年9月に新たなマルウェアが報告され、被害を及ぼしています。
Shai-Huludは、npmの“正規パッケージの更新”に紛れて入り込み、インストール時に実行されるスクリプトを足がかりに開発者の認証情報を盗む盗んだ権限で別のパッケージを改ざん・再公開して感染を広げる、いわゆる自己増殖(ワーム)型のサプライチェーン攻撃です。研究各社は、秘密情報の窃取に加えて悪性のGitHub Actionsや外部Webhooksを使った流出が確認されたと報告しています。

2. 現在(9/19 JST)の状況

  • 感染規模は報告に幅があります。180件超が下限見積もりで、分析の進展に伴い500件規模に達した可能性を指摘する報告も出ています(調査・削除対応・重複計上で数字が揺れている段階)。
  • 代表例として**@ctrl/tinycolorが改ざんされ、CrowdStrike名義の一部パッケージも一時影響を受けました(同社のコア製品は影響なしと説明)。発端のひとつとしてrxnt-authentication**の悪性版(9/14 17:58:50 UTC)が最初期の改ざんとして言及されています。
  • 一部レポートは、感染パッケージが**盗んだnpmトークンで“被害者が管理する他パッケージを一括で改ざん・再公開する”**自動処理を持つ、と技術的詳細まで示しています。
  • 脅威は進行中。複数社(Wiz、Sysdig、Sonatype ほか)がIoCや検出手順を随時更新しています。

3. Shai-Huludで起こり得る被害

  • 秘密情報の大量流出:GitHubのPAT/npmトークン、AWS/GCP/Azureのキー、CI/CD環境の資格情報など。悪性ActionsやWebhookで外部に送信され、ログや公開リポジトリ経由で第三者に露出するリスクがあります。
  • 供給網の連鎖汚染:盗んだnpm発行権限で、被害者の他の保有パッケージを一気に悪性化→再公開。その更新を他プロジェクトが取り込めば、指数関数的に拡散します。
  • プライベート資産の露出と二次攻撃:秘匿コードや設定が漏れれば、脆弱性探索・権限昇格・横展開の足がかりに。セキュリティ各社は継続監視早期ローテーションを強く推奨。

4. 感染から被害までのメカニズム

  1. 改ざん済みパッケージを“普通に”更新・導入
    npmはnpm installnpm ciの際にライフサイクルスクリプト(例:postinstall)を実行できる仕様です。ここに悪性コードが仕込まれていると、インストール=実行になってしまうのが最大の落とし穴。

  2. 環境から秘密情報を回収→外へ送る
    環境変数・設定ファイル・クラウドのメタデータエンドポイントを探って認証情報を収集し、GitHub ActionsやWebhookで外部送信。手口としてTruffleHog等のシークレットスキャナを組み込む例も報告されています。

  3. 自己増殖(ワーム)
    盗んだnpmトークン被害者が保有するパッケージを自動改ざん・再公開する処理が確認されています。これが“自分で自分を増やす”仕組み。

  4. 連鎖拡大
    その“更新”を他の開発者やCIが取り込む→再び①から……。人手の承認を介さない自動更新やCIは、便利さの裏で感染のブースターになり得ます。

5. なぜこんなに広がるのか(エコシステム側の“悪条件”)

  • 依存チェーンが深い:小さなユーティリティ1つの改ざんが、トランジティブ依存を通じて多数プロジェクトへ波及
  • CI/CDが“無人でインストール&実行”postinstallはCIでも動くため、大量のランナー上で一斉に発火。認証情報が集中する場でもあり被害は重くなる可能性。
  • トークンの過剰・長寿命:長期PATや広いnpm権限が盗まれると、正規名義で悪性更新が出て気づきにくい。研究各社は権限最小化・短命化を強く推奨。
  • 検出と収束に時間差:複数レジストリのキャッシュ、告知・撤去のタイムラグで、下限180→上限500規模まで見積もりが膨らんだ実例がまさに今。

まとめ(9/19時点の結論)

  • Shai-Huludは、npmの“更新”に見せかけて入り込み、インストール時の実行で秘密を抜き、盗んだ権限で別パッケージを汚染して自己増殖します。新顔のトリックではなく、設計上の弱さ(postinstall・自動化・広い権限)を丁寧に突いた攻撃です。
  • 規模は少なくとも180件超、報告によっては500件規模。これは進行中の事案で、数字はまだ動きます。過去数日でnpm install / ciが走った環境は、トークンの即時ローテーションリポジトリの不審痕跡チェックを。

参考文献

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?