GitHub が npm セキュリティ強化を実施:パッケージ署名の検証システムなどを追加

GitHub introduces 2FA and quality of life improvements for npm

2022/07/27 BleepingComputer — GitHub は、npm (Node Package Manager) に対して、3つの重要な改良点の提供を発表したが、それにより、npm 利用が安全かつ管理しやすくなる。新機能の概要は、より合理化されたログインおよび公開エクスペリエンスと、Twitter/GitHub アカウントの npm リンク、そして、パッケージ署名の検証システムの追加などである。さらに GitHub は、2022年5月に導入された2要素認証プログラムのベータが終了し、すべての npm ユーザーも利用できるようになるとも述べている。


GitHub 傘下にある npm プラットフォームは、JavaScript コーダーのためのパッケージ・マネージャーとリポジトリで構成されており、毎日 50億個のパッケージがダウンロードされ、さまざまな開発者のプロジェクトで使用されている。

最近の GitHub は、数百のアプリや Web サイトに影響を与える、大規模なセキュリティインシデントに見舞われており、セキュリティ強化計画の策定と、迅速な実施を余儀なくされていた。

npm の新機能

新しい npm のログインと公開システムでは、認証を Web ブラウザで処理できるようにするために、同一セッションで有効な認証トークンを、最大で5分間保持できるようになった。

New login system for less friction
New login system for reduced friction in user experience (GitHub)

この変更は、2FA システムの導入によるものであり、開発者に対してアクションのたびに新しいワンタイム・パスワードの入力を要求するという、これまでの問題を解消するものとなっている。

GitHub と Twitter のアカウントを、npm に接続するための新しいオプションは、身元確認の役割を果たすことで信頼性を高め、たとえば npm アカウントを悪用した成りすましなどの防止を目的としている。
すことができないよう、

Linking Twitter to npm account
Linking Twitter to npm account (GitHub)

この新しいシステムは、必要に応じたアカウント回復にも対応し、プロセスの信頼性を高め、面倒を減らし、将来における自動化の基礎を築くものになる。

さらに、新しい署名監査システムが提供され、これまでの多段階かつ複雑な PGP プロセスに代わり、開発者による npm パッケージへの容易な署名が確認できるようになった。

ユーザーは、npm CLI の新しい “npm audit signatures” コマンドを用いて、ローカルでパッケージのソースを検証できるようになった。

New package signature validation command
New package signature validation command (GitHub)

それと同時に、このプラットフォームでは、すべてのパッケージに ECDSA (楕円曲線暗号) アルゴリズムでの再署名が可能となり、鍵管理に HSM を使用することでセキュリティがさらに強化される。

重要なアカウントでの 2FA

npm レジストリの安全性を確保するための次のステップは、週間のダウンロード数が 100万回以上、または、依存関係が 500以上のパッケージを管理する、すべてのアカウントに 2FA 認証が導入されることである。

GitHub によると、本人確認フォームを追加して、アカウント回復プロセスを改善した後に実施されるとのことだ。現時点では、次のステップということ以外に、厳密なスケジュールは提示されていない。

OSS リポジトリの安全性が問題となり、5月3日の「GitHub が 2FA への完全移行を 2023 年末まで実施:ソフトウェア・サプライチェーンを攻撃から守る」や、6月9日の「PyPI の Critical プロジェクトで 2FA が義務化:突然の決定に反発する開発者も」といった動きが目立つようになってきました。ただ、その背景にあるのは、それらのリポジトリの惨憺たる状況です。よろしければ、GitHub で検索PyPI で検索npm で検索も、ご利用ください。

%d bloggers like this: