9月のnpmへの攻撃は、JavaScriptエコシステムが脆弱であることを示しています。攻撃者は、人気のあるパッケージを介して何千ものプロジェクトに「侵入」できるため、ますます人気のあるパッケージを標的にしています。npmの所有者であるGitHubは、次の危機を待たずに、新しい防御メカニズムを導入しました。
最も顕著なのは、 trusted publishing パッケージ公開時の拡張チェック。

信頼できるパブリッシングとは
Trusted publishingは、秘密トークンを保存して使用する必要がない、npmのパッケージ公開の新しいモデルです。代わりに、GitHub Actionsまたは他のCI/CDプロバイダーを信頼して、パッケージを直接公開できるようになりました。
トークンがない場合、漏洩するものがありません。
公開物をリポジトリに関連付けます。つまり、特定のコードに関連付けます。
簡単なセットアップ:GitHubはオーサリングを確認し、パッケージに「署名」します。
公開時の新しいチェック
パッケージ所有者の確認 — 公開は確認済みの参加者のみ可能です。
ソースコードの検証 - ソースとパッケージ間の関係がより透明になります。
ログと監査 — 公開を開始したユーザーと、その基礎となるコードを追跡しやすくなりました。
なぜこれが誰にとっても重要なのですか?
変更は大規模なライブラリのメンテナーにのみ関係するように思えるかもしれませんが、そうではありません。
アプリ開発者向け:感染したパッケージを受け取る可能性が低くなります。
ライブラリ作成者向け:盗まれる可能性のあるトークンを保存する必要はありません。
企業向け:透明性の高い監査プロセスと、サプライチェーンの安全性に対する信頼性の向上。
古い npm 公開プロセスと新しい公開プロセスの比較
ステージ | 以前(信頼できるパブリッシング以前) | 現在(信頼できるパブリッシングを使用) |
|---|---|---|
認証 | 秘密トークン npm、手動または CI での保存。 | トークンは必要ありません。GitHub Actionsが作成者を確認します。 |
安全性 | トークンが漏洩するリスクが高い。 | トークンがない場合、漏洩するものがなく、公開はコードに関連付けられます。 |
透明度 | リリースをコードに関連付けるのは難しいです。 | 自動検証:パッケージはソースにリンクされています。 |
監査 | 手動チェック。 | 詳細な公開ログ。 |
設定 | トークンの手動作成と保存。 | 信頼できるパブリッシングの1回限りのセットアップ。 |
信頼できる公開プロセスの概要
flowchart TD
A[Разработчик пушит код в GitHub] --> B[Запуск GitHub Actions workflow]
B --> C[Сборка и тесты проекта]
C --> D[GitHub подтверждает авторство и репозиторий]
D --> E[Trusted Publishing: передача данных в npm]
E --> F[npm получает пакет]
F --> G[Верификация пакета и исходников]
G --> H[Успешная публикация в npm Registry]

開発者が今すぐすべきこと
GitHubのリポジトリを確認する 設定へのアクセス。
GitHub Actions を有効にする、まだCI/CDを使用していない場合。
npmで信頼できるパブリッシングを設定する:パッケージをリポジトリに関連付けます。
古いトークンを削除する漏れのリスクを減らすため。
ドキュメントを更新する、公開がtrusted publishingを介して行われることを示しています。
GitHub は正しい方向に進んでいます。エコシステムの脆弱性は、開発者の「手動の規律」だけでは解決できません。自動的かつ組み込みの保護が必要です。信頼できる公開と新しい検証は、単なる利便性ではなく、安全で信頼できるエコシステムへの根本的な移行です。
コディック 初心者や経験豊富な開発者が最新のツールを理解し、より安全に作業するのに役立ちます。
私たちのブログを購読して テレグラムチャンネル新しいテクノロジーを把握するために。
