Mini Shai-Hulud攻撃によりnpmが2FAバイパストークンの取り消しを実施

「Mini Shai-Hulud」キャンペーンに関連したサプライチェーン攻撃の波により数百のJavaScriptパッケージが危険にさらされた後、npmはプラットフォーム全体で二要素認証(2FA)をバイパスする細かいアクセストークンのリセットを強制しました。

5月19日に実施された緊急措置により、2FAなしで公開を許可する書き込み権限を持つすべてのnpmトークンが無効化されました。この措置は、攻撃者が保守者アカウントを乗っ取り、@antveコシステム内の広く使われているパッケージ全体に悪意のあるコードを注入した直後に行われました。

直接的なきっかけは、npmメンテナーアカウント「atool」の侵害で、攻撃者はこれを使用して、単一の自動バースト内で323パッケージにわたって639の悪意のあるバージョンを公開しました。影響を受けたライブラリには、echarts-for-react、timeago.js、size-sensor、canvas-nest.jsなどの高ダウンロード数パッケージが含まれていました。

この事件は、同じキャンペーンに関連した以前の侵害に続くもので、5月11日の42のTanStackパッケージの侵害を含みます。これらのパッケージは合わせて数十の悪意のあるバージョンをプッシュし、数百万のダウンストリームユーザーに影響を与えました。

npmによると、このリセットは攻撃者が盗まれた認証情報を再利用するのをブロックするために必要でした。同社は、「Mini Shai-Hulud のパターンに従ったサプライチェーン攻撃を防ぐために」2FAをバイパスするすべての書き込み有効トークンを無効化したと述べました。

キャンペーンを追跡しているSocketのセキュリティ研究者は広範なエコシステムへの影響を報告しています。TeamPCPとして知られる脅威グループに帰属するこの活動は、npm、PyPI、Composerにまたがる500以上のプロジェクト全体で1,000を超えるパッケージバージョンを侵害しました。

ターゲットには、Bitwarden CLI、Aqua Trivy、SAP CAP、TanStackなどの主要な開発者ツールおよびプラットフォームが含まれています。注目すべき1つのケースでは、攻撃者は悪意のあるVisual Studio Code拡張機能の更新を利用してGitHubの内部リポジトリに侵入し、約3,800のリポジトリからデータを流出させました。

いくつかのケースでは、攻撃チェーンは盗まれたnpmトークンに依存していませんでした。代わりに、攻撃者はGitHub ActionsキャッシュポイズニングとランナーメモリからのOIDCトークン抽出などの技術を通じてCI/CDパイプラインを悪用しました。

Mini Shai-Hulud攻撃によりnpmが対応

npmのトークン無効化は以前盗まれた認証情報を遮断しますが、根本的な攻撃ベクトルを排除することはありません。2FAバイパストークンモデルは自動公開ワークフローをサポートするために存在していますが、長寿命シークレットがCI環境で公開される場合にはリスクが生じます。

Mini Shai-Huludマルウェアは、npmトークン、クラウドキー、SSH認証情報、APIシークレットなどの認証情報をスキャンすることで、これらの環境を特に標的としています。一度取得されると、攻撃者は正当なパッケージの侵害されたバージョンを自動的に再公開できます。

静的シークレットの代わりに短命のOIDCトークンを使用するnpmの推奨「信頼できる公開」モデルでさえ、弱点が明らかになっています。TanStackの侵害では、攻撃者は実行中のCIジョブから直接OIDCトークンを成功裏に抽出して再利用し、意図された保護をバイパスしました。

これに対応して、npmはより堅牢な軽減策を導入しました:段階的公開です。5月20日にパブリックプレビューでリリースされたこの機能は、パッケージがライブになる前に必須の人間による承認ステップを追加します。

段階的公開の下では:

  • CI経由で公開されたパッケージは最初にステージング環境に配置されます。
  • メンテナーは多要素認証を使用してリリースを承認する必要があります。
  • 承認後のみ、パッケージが公開インストール可能になります。

たとえば、攻撃者がCIパイプラインを侵害して悪意のあるバージョンを公開した場合でも、メンテナーがそれをレビューして承認するまで、リリースはステージングでブロックされたままになります。

この機能はオプションで、パッケージごとに設定する必要があり、大規模なエコシステム全体での採用を遅くする可能性があります。

メンテナーはトークンを再生成し、リセットの影響を受けるいかなる自動化ワークフローも更新する必要があります。セキュリティ専門家は、npmトークンだけでなく、潜在的に公開されている環境に関連するすべての認証情報をローテーションすることを推奨しています。

  • 重要なパッケージの段階的公開を有効にします。
  • CIワークフローを制限し、トークン公開を最小化します。
  • 新しく公開されたパッケージを即座にインストールすることを避けるために、最小リリース年齢などのリリース遅延制御を使用します。

Mini Shai-Huludキャンペーンは、より広い問題を浮き彫りにしています:最新のソフトウェアサプライチェーンは、従来の認証情報盗難だけではなく、開発者ツールと自動化パイプラインを通じてますますターゲットにされています。

npmのトークンリセットは即座な封じ込めを提供しますが、長期的な保護は段階的公開や改善されたCI/CDセキュリティプラクティスなどのより強力な制御の採用に依存します。

これらの対策の効果は、最終的には、サプライチェーン攻撃の次の波が出現する前にメンテナーがそれらをどれだけ迅速に実装するかにかかっています。

翻訳元: https://gbhackers.com/mini-shai-hulud-attack-prompts-npm/

ソース: gbhackers.com