Shai-Hulud 2.0サプライチェーン攻撃の概要
Microsoftは、近年観測された中で最も重要なクラウドネイティブエコシステムの侵害の一つであるShai-Hulud 2.0サプライチェーン攻撃に対処するための包括的なガイダンスを公開しました。このキャンペーンは、現代のソフトウェア開発ワークフローに内在する信頼を悪用し、開発環境、CI/CDパイプライン、クラウド接続ワークロードを標的として、機密資格情報や設定シークレットを窃取します。
Shai-Hulud 2.0キャンペーンは、以前のサプライチェーン侵害を基盤としつつも、自動化、伝播速度、標的範囲において著しい強化が図られています。攻撃者は、Zapier、PostHog、Postmanといった広く利用されているプロジェクトのメンテナーアカウントを侵害し、信頼された開発インフラに侵入する能力を示しました。
Shai-Hulud 2.0攻撃のメカニズム
この攻撃メカニズムは、npmパッケージの操作を利用しており、package.jsonファイルに埋め込まれたset_bun.jsというpreinstallスクリプトを通じて悪意のあるコードが注入されます。このスクリプトは、テストやセキュリティチェックが脅威を特定する前に実行されます。実行されると、既存のBunランタイムバイナリ(Node.jsに似た代替JavaScriptランタイム)の有無を確認し、存在しない場合はインストールします。その後、Bunランタイムはバンドルされた悪意のあるコード(bun_environment.js)を実行し、GitHub Actions Runnerアーカイブをダウンロードしてインストールし、SHA1HULUDというランナーエージェントを持つ新しいGitHubリポジトリを作成します。
アーカイブされたファイルには、資格情報スキャンツールであるTruffleHogと、システムから保存された資格情報をクエリし、クラウド資格情報を取得するために使用されるRunner.Listener実行可能ファイルが含まれています。
Microsoft Defenderによる検知と攻撃者の偽装
Microsoft Defenderは、隠しファイルに対するshredコマンドの疑わしい使用や、専用の「Sha1-Hulud Campaign Detected」アラートなど、複数のアラートを通じてキャンペーンを早期に検知しました。注目すべきは、新しく作成されたリポジトリへの一部のコミットが「Linus Torvalds」の名前で作成されたことであり、攻撃者が偽のペルソナを使用して活動を偽装したことを示しています。これは、開発環境におけるコミット署名検証の重要性を浮き彫りにしています。
推奨される緩和策
Microsoftは、Shai-Hulud 2.0サプライチェーン脅威に対処するために、以下の即時緩和策と推奨事項を提案しています。
組織向けの即時緩和策
- Key Vaultアセットの不正アクセスがないか確認し、露出した資格情報を迅速にローテーションおよび失効させる。
- 影響を受けたCI/CDエージェントまたはワークスペースを隔離し、高リスクの攻撃経路を優先的に削減してさらなる露出を防ぐ。
- CI/CDパイプラインに割り当てられたIDから不要なロールと権限を削除し、特にKey Vaultアクセス制御に注意を払う。
npmメンテナー向けの推奨事項
- 従来のトークンではなく信頼されたパブリッシングを実装する。
- すべての書き込みと公開アクションに二要素認証(2FA)を要求するように公開設定を強化する。
- 2FA構成には時間ベースのワンタイムパスワードよりもWebAuthnを推奨する。
全般的な保護強化
- Microsoft Defender Antivirusでクラウド提供保護と自動サンプル提出を有効にする。
- 攻撃表面削減ルールを適用して、新興の脅威に対する重要な保護を提供する。
Microsoft Defender XDRとセキュリティコパイロットの統合
Microsoft Defender XDRの顧客は、エンドポイント、ID、電子メール、アプリ全体の検出範囲にアクセスでき、カスタムハンティングクエリを使用して侵害インジケーターを特定できます。Microsoft Security Copilotの統合により、この脅威に特化した自動化されたインシデント対応および調査ワークフローが可能になります。Microsoft Defender for Cloudを使用する組織は、Azure DevOps、GitHub、またはGitLab統合を通じてDevOps環境を接続し、サプライチェーンインシデント調査に不可欠なコードリポジトリマッピング機能を利用できます。
重要性と最終的な推奨事項
Shai-Hulud 2.0キャンペーンは、従来のネットワーク防御が信頼されたパッケージワークフローに埋め込まれた攻撃に対して不十分であることを示しています。コードセキュリティ、ポスチャ管理、ランタイム保護を組み合わせた多層防御アプローチは、セキュリティチームが侵害されたデバイスを迅速に特定し、疑わしいパッケージにフラグを立て、脅威が伝播する前に封じ込めることを可能にします。
組織は、npmパッケージの依存関係を直ちに評価し、推奨される強化策を実施すべきです。
侵害の指標 (Indicators of Compromise)
- タイプ: ファイル名 説明: Bunランタイムをインストールする悪意のあるスクリプト ファイル名:
setup_bun.js - タイプ: ファイル名 説明: 資格情報の収集と漏洩を促進するスクリプト ファイル名:
bun_environment.js
