npmjs.com⁠最近のサプライチェーン攻撃を鑑みて⁠認証と公開プロセスの強化を計画

npmjs.comを管理しているGitHubは2025年9月24日、npmエコシステムで最近顕在化しているアカウント乗っ取りおよび自己増殖型マルウェアによるサプライチェーン攻撃があったことを鑑みて、認証と公開プロセスを強化する計画を発表した。

近頃顕在化しているサプライチェーン攻撃は、オープンソースエコシステムへの信頼を損ね、認証と公開手法の水準を向上する必要があることを示している。そこでGitHubはトークン濫用および自己増殖型マルウェア対策として、近い将来、npmにおける認証と公開オプションを以下の方法に限定する計画であることを案内した。

  • ローカル環境から公開する場合には二要素認証(2FA)を必須にする。
  • アクセス権限などを設定できるトークン(Granular access tokens)は有限期限を7日間にする。
  • OpenID Connect(OIDC)とCI/CDワークフローを用いるTrusted publishingを利用する。

これに関連した措置として、古いクラシックトークンの廃止、二要素認証(2FA)におけるtime-based one-time password(TOTP)の廃止とFIDOベースへの移行、公開権限を持つトークンの有効期限の短縮、Trusted publisingまたは2FAを強制する公開手順の推奨、ローカルパッケージ公開で2FAをバイパスするオプションの削除、Trusted publishing対応プロバイダの拡大を挙げている。

これらの措置は段階的にロールアウトするかたちで実施したいとしており、GitHubは今後タイムライン・ドキュメント・移行ガイド・サポートチャネルを提供するとしている。

なお、Trusted publishingすでにnpmでも利用できるが、これまでは自然増を想定していたという。しかし今回の攻撃を踏まえ、推奨することにしたという。

現時点でメンテナが直ちに取れる行動としては次のことを挙げている。

  • Trusted publishingをトークンの代替として使う。
  • アカウント・組織・パッケージの公開設定を見直し、書き込みおよび公開アクションに2FAを必須にする。
  • 2FAの設定ではTOTPではなくWebAuthnを用いる。

ただし、npmjs.comのTrusted publishingは現在のところ、GitHub Actions(GitHub-hosted runners)とGitLab CI/CD Pipelines(GitLab.com shared runners)のみへの対応に注意したい(上記で触れたように、将来的に他のCI/CDプロバイダの追加検討がおこなわれる予定とのこと⁠⁠。

おすすめ記事

記事・ニュース一覧