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/