npmjs.
近頃顕在化しているサプライチェーン攻撃は、オープンソースエコシステムへの信頼を損ね、認証と公開手法の水準を向上する必要があることを示している。そこでGitHubはトークン濫用および自己増殖型マルウェア対策として、近い将来、npmにおける認証と公開オプションを以下の方法に限定する計画であることを案内した。
- ローカル環境から公開する場合には二要素認証
(2FA) を必須にする。 - アクセス権限などを設定できるトークン
(Granular access tokens) は有限期限を7日間にする。 - OpenID Connect
(OIDC) とCI/ CDワークフローを用いるTrusted publishingを利用する。
これに関連した措置として、古いクラシックトークンの廃止、二要素認証
これらの措置は段階的にロールアウトするかたちで実施したいとしており、GitHubは今後タイムライン・
なお、Trusted publishingはすでにnpmでも利用できるが、これまでは自然増を想定していたという。しかし今回の攻撃を踏まえ、推奨することにしたという。
現時点でメンテナが直ちに取れる行動としては次のことを挙げている。
- Trusted publishingをトークンの代替として使う。
- アカウント・
組織・ パッケージの公開設定を見直し、書き込みおよび公開アクションに2FAを必須にする。 - 2FAの設定ではTOTPではなくWebAuthnを用いる。
ただし、npmjs.