GitHubがステージングされた公開保護でnpmセキュリティを強化

GitHubはnpm CLIバージョン11.15.0でステージングされた公開と新しいインストール時間制御の一般提供により、npmエコシステムに大きなセキュリティ強化をもたらしました。

これらの更新はソフトウェアサプライチェーンリスクを低減するように設計されており、特に危険にさらされた開発者アカウント、悪意のあるパッケージ更新、および自動化されたCI/CDワークフローから生じるリスクを対象としています。

GitHubがnpmセキュリティを強化

新たにリリースされたステージングされた公開機能は、npmパッケージを公開するための承認ベースのワークフローを導入します。パッケージバージョンを直ちに利用可能にするのではなく、システムはビルド済みのtarballをステージングキューに配置します。メンテナーはその後、ユーザーがアクセス可能になる前にリリースを手動で承認する必要があります。

このメカニズムは「存在証明」を強制し、自動化されたCI/CDパイプラインまたは信頼できるOpenID Connect(OIDC)ワークフローを通じて公開されたパッケージであっても、人間による検証が必要であることを保証します。承認アクションは二要素認証(2FA)で保護され、不正または悪意のあるパッケージリリースのリスクを低減します。

ステージングキューはnpm CLIとnpmjs.comインターフェースの両方を通じて表示され、保留中のリリースに対する透明性と制御を提供します。

セキュリティ専門家は、このアプローチは攻撃者が自動化された公開プロセス中にパッケージに悪意のあるコードを注入する最近のサプライチェーン攻撃パターンに直接対処していると指摘しています。

GitHubは、最大のセキュリティのために、ステージングされた公開と信頼できる公開(OIDC)を組み合わせることをお勧めします。この構成では、CI/CDパイプラインを「ステージのみ」公開に制限でき、npm publishを介した直接リリースを防ぐことができます。メンテナーは後で信頼できるデバイスからパッケージを承認でき、セキュリティチェックポイントを追加できます。

複数のパッケージを管理する組織は、2026年初頭に導入された既存の一括信頼できる公開構成を活用して、ステージングされたワークフローにシームレスに移行できます。

ステージングされた公開に加えて、npm 11.15.0は開発者に依存関係ソースに対するきめ細かい制御を与える新しいインストール時間フラグを導入します:

  • –allow-file:ローカルファイルとtarballからのインストールを制御します
  • –allow-remote:リモートURLからのインストールを制限します
  • –allow-directory:ローカルディレクトリからのインストールを管理します
  • –allow-git:Gitベースの依存関係を制御します(以前導入)

各フラグは「すべて」または「なし」の設定をサポートし、.npmrcまたはpackage.jsonを介して構成できます。これらのコントロールにより、組織は厳密なホワイトリストポリシーを実装でき、認可されていないまたはリスクのある依存関係ソースを防ぐことができます。

たとえば、本番環境では、すべてのフラグを「なし」に設定して、すべての非レジストリソースをオフにでき、npmレジストリから検証されたパッケージのみがインストールされることを保証します。

これらの更新は、プロアクティブなサプライチェーンセキュリティに向けたnpmのより広い推進を反映しています。特に、–allow-gitフラグのデフォルト動作はnpm CLI v12で「すべて」から「なし」に変更されると予想され、より厳格なデフォルト保護へのシフトを示唆しています。

サプライチェーン攻撃がオープンソースエコシステムをターゲットにし続けている中、ステージングされた公開とインストール時間制御は、ワークフローの柔軟性を維持しながらリスクを軽減するための実用的なツールを開発者に提供します。

翻訳元: https://gbhackers.com/github-strengthens-npm-security/

ソース: gbhackers.com