GitHub Introduces npm Security with Stronger Authentication and Trusted Publishing
2025/09/25 gbhackers — 今日のテクノロジーを支えるオープンソース・ソフトウェアにより、世界中の開発者たちは、ツール/ライブラリ/アプリケーションの構築/共有を可能にしている。しかし、イノベーションを促進するオープン性は、それと同時に深刻なセキュリティ課題ももたらす。攻撃者は npm などのパッケージ・レジストリを標的とし、アカウントを侵害して悪意あるコードを挿入する。この状況を受け、GitHub は npm のセキュリティを大幅に刷新し、強力な認証方式/有効期間の短いトークン/信頼できる公開に重点を置くようにした。これらの変更は、オープンソース・コミュニティを保護し、ソフトウェア・サプライチェーンの安全の確保を目的としている。

2025年9月中旬に、Shai-Hulud 攻撃と呼ばれる自己複製型のワームが、人気を博す複数の JavaScript パッケージに侵入した。このワームは、メンテナー・アカウントを乗っ取り、広く使用されるライブラリに、有害なポスト・インストールのスクリプトを挿入した。これらのスクリプトは、npm トークン以外の秘密情報を窃取し、さらなる攻撃拡散に悪用される可能性がある。
GitHub とオープンソース・メンテナーは迅速に対応し、500件超の侵害されたパッケージをレジストリから削除し、既知の侵害兆候を含むアップロードをブロックした。このインシデントが明らかにしたのは、従来の認証/公開の方法では、高度なサプライチェーン脅威に十分対抗できないことである。
新しい認証方法と有効期間の短いトークン
今後の侵害を防止するため、GitHub は、すべてのローカル・パッケージ公開において2要素認証 (2FA) を必須とする。メンテナーは、従来の時間ベースワンタイム・パスワード (TOTP) ではなく、FIDO ベースの WebAuthn を利用する必要がある。この変更により、脆弱な 2FA 方式は排除され、アカウント乗っ取りが困難となる。
さらに npm は、最長で7日間という有効期間を持つアクセス・トークンを導入した。この有効期間の短いトークンにより、盗まれた認証情報が悪用される機会を制限する。従来のクラシック・トークンは廃止され、ローカルで公開中の 2FA バイパス・オプションも削除される。
新しいトークンでは、デフォルトで公開権限が付与されない。そのため、信頼できる公開フローや強制 2FA の利用が推奨される。
信頼できる公開モデル
信頼できる公開モデルは、ビルド・システム内でトークンを管理せずに、パッケージ公開を可能にする安全な代替手段である。このモデルは、2023年4月に PyPI が初めて導入したものであり、ID プロバイダーと OpenID Connect (OIDC) を利用して信頼できるワークフローを検証する。
最初のリリース以降において、この信頼できる公開は RubyGems/crates.io/npm/NuGet に追加されている。GitHub は他のプロバイダーへのサポートを拡大し、エコシステム全体での互換性を高める計画である。
信頼できる公開を導入することで、メンテナーはパイプラインから API トークンを排除し、ID ベースの証明を用いてリリースを承認できる。この仕組みにより、トークン漏洩や不正公開のリスクは大幅に軽減される。
開発者の対応策
GitHub は、これらの強化により、既存ワークフローの更新が必要になることを認識している。移行を円滑に進めるために、GitHub は変更を段階的に展開し、明確なタイムライン/包括的なドキュメント/移行ガイド/専用サポート・チャネルを提供する。
その間において、npm メンテナーたちは、信頼できる公開の有効化/アカウントおよび組織の設定強化/すべての書き込み操作における 2FA 必須化/WebAuthn を利用した 2FA 設定などの、積極的な対策を講じることができる。
ソフトウェア・サプライチェーンのセキュリティ確保は、すべての開発者が責任を持って対処すべきことである。開発者たちは、堅牢な認証方式/有効期間の短いトークン/信頼できる公開を採用することで、より安全なオープンソース・エコシステムの構築に貢献できる。GitHub による、今回の npm セキュリティ投資は、数百万のプロジェクトと、それに依存するグローバル・コミュニティを保護するための重要な一歩である。
この記事の冒頭で述べられている、自己複製ワーム Shai-Hulud は、不十分な認証管理を突くことで、メンテナーのアカウントを乗っ取っていきました。従来からの TOTP ベースの認証や長期間有効なトークンでは、盗まれた認証情報が容易に悪用され、広く利用されるライブラリに不正コードが紛れ込む恐れがありました。この問題を受け、GitHub は、FIDO ベースの WebAuthn/短期有効トークン/信頼できる公開モデルなどを導入し、認証の強化とトークン漏洩リスク低減を図っています。よろしければ、Shai-Hulud で検索も、ご参照ください。
You must be logged in to post a comment.