npmパッケージを狙った2度目の大規模攻撃 492のパッケージが自己増殖型ワーム「Shai Hulud」に感染:セキュリティチームに求められる6つのアクションとは
セキュリティSaaSを手掛けるAikido Securityは、npmパッケージを標的とした自己複製型ワーム「Shai Hulud」による2回目の大規模サプライチェーン攻撃を観測したと発表した。
セキュリティSaaSを手掛けるAikido Securityは2025年11月24日(日本時間、以下同)、npmパッケージを標的とした自己複製型ワーム「Shai Hulud」による2回目の大規模ソフトウェアサプライチェーン攻撃を観測したと発表した。
npmパッケージは、Node.jsのデフォルトパッケージマネジャーであるnpmで管理されるパッケージ。Shai Huludによる1回目の大規模攻撃は2025年9月に発生した。攻撃者は、今回の攻撃キャンペーンを「Second Coming」(再臨)と称しているという。Shai Huludは、小説「Dune」(デューン)シリーズに登場する架空の地球外生物の名前にちなんで名付けられた。
npmパッケージを狙った2度目の大規模攻撃
npmの開発元を2020年に買収したGitHubは2025年9月、npmパッケージを狙った攻撃の頻発を受け、セキュリティ強化策として、「FIDOベースの二要素認証(2FA)によるローカルパブリッシング」「グラニュラーアクセストークンの有効期限の7日間への短縮」「トラステッドパブリッシングへの移行」を打ち出した。
これらと併せて、詳細な権限設定や現代的なセキュリティ制御が欠けているクラシックトークンの廃止も発表した。クラシックトークンの作成は既に無効化されており、既存のクラシックトークンも2025年12月9日付けで無効化される計画だ。
だが、多くのユーザーはまだ、トラステッドパブリッシング(CI/CD〈継続的インテグレーション/継続的デリバリー〉プロバイダーからの一時的でジョブ固有の認証情報を使用することで、長期間有効なトークンを完全に排除する仕組み)に移行していない。「脅威アクターは、その隙を突いて2回目のShai Hulud攻撃を仕掛けた」と、Aikido Securityは指摘している。
自己増殖型ワームのShai Huludとは
自己複製型ワームであるShai Huludは、システムに感染すると、自動化ツールの「TruffleHog」を使用して、APIキーやトークンなどのシークレット(機密情報)を検索し、見つけたものを全てパブリックGitHubリポジトリに公開する。その後、自身の新規コピーをnpmにプッシュしてエコシステム全体への拡散を図るとともに、データを攻撃者に送信する。
Aikido Securityは、前回と今回の攻撃では以下の点が異なると分析している。
- ファイル「setup_bun.js」でbunをインストールし、それを用いて悪意あるコードである「bun_environment.js」を実行する
- 盗んだデータを含むランダムな名前のリポジトリを作成する(前回はハードコードされた名前)
- 最大100個のnpmパッケージに感染する(前回は20個)
- GitHubまたはnpmでの認証に失敗した場合、ユーザーのホームディレクトリ内の全ファイルを消去する
攻撃の影響を受けたパッケージ
Aikido Securityは、「Zapier」「ENS」「AsyncAPI」「PostHog」「Browserbase」「Postman」など、新しいバージョンのShai Huludによって侵害された492個のパッケージを検出した。これらの月間合計ダウンロード数は1億3200万回に上る。
シークレットの漏えい
Shai HuludはシークレットをGitHubで公開する際、ランダムなリポジトリ名を使用している。これらのリポジトリの説明欄には「Sha1-Hulud: The Second Coming.」と記載されている。
Shai Hulud攻撃の影響
攻撃者によって悪意あるコードが混入されたnpmパッケージを開発者がインストールすると、インストールが完了する前にマルウェアがひそかに実行される。
これにより、開発者のマシン、ビルドシステム、またはクラウド環境へのアクセス権が奪われる。その後、TruffleHogを使用して、パスワード、APIキー、クラウドトークン、GitHubやnpmの認証情報といった機密情報が検索される。
検索で見つかったものは全て、パブリックGitHubリポジトリにアップロードされる。それらの中にコードリポジトリやパッケージレジストリへのアクセス権が含まれていた場合、攻撃者はそれらを用いてさらに多くのアカウントを侵害し、パッケージに悪意あるコードを混入させたものをより多く公開することで、攻撃を拡大させることができる。
Aikido Securityは、npmを使用しているチームに、影響を受けたかどうかを直ちに確認し、漏えいした可能性のある認証情報の変更を推奨している。
セキュリティチームに求められる6つの対応
Aikido Securityは、セキュリティチームに求められる対応として以下を挙げている。
- Zapier/ENSに関連する全てのnpm依存関係とバージョンを監査する
- インストール中に使用された全てのGitHub、npm、クラウド、CI/CDのシークレットを変更する
- GitHubで「Sha1-Hulud: The Second Coming」という説明文を持つ不審なリポジトリがないかどうか確認する
- 可能であれば、CIでnpmの「postinstall」スクリプトを無効にする
- パッケージのバージョンを固定し、GitHubおよびnpmアカウントでMFA(多要素認証)を強制する
- 「Safe-Chain」のようなツールを使用し、npm上の悪意あるパッケージをブロックする
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
合計で毎週20億以上ダウンロード、「debug」「Chalk」など18の人気npmパッケージにマルウェア混入
Node.jsのパッケージマネジャー「npm」を通じて、18種類の人気npmパッケージに悪意のあるコードが埋め込まれ公開されたという。これらのパッケージは合計で、毎週20億回以上ダウンロードされている。
日常茶飯事の「サプライチェーン攻撃」のカオスな実態とは?「セキュリティのアレ」の3人が事例から解き明かす
2024年11月27日、「ITmedia Security Week 2024 秋」の「クラウドセキュリティ」ゾーンで、ポッドキャスト「セキュリティのアレ」に出演する根岸征史氏、辻伸弘氏、piyokango氏が「繋ぐ楔と断ち切る楔」と題してパネルディスカッションに登壇した。
企業が過去12カ月間で最も直面したソフトウェアサプライチェーンの脅威とは SlashData
SlashDataは、企業が過去12カ月間で最も直面したソフトウェアサプライチェーンの脅威を発表した。過去12カ月間に自組織がソフトウェアサプライチェーンセキュリティの脅威に直面したと認識しているDevOps担当者1045人の回答に基づいている。
