JavaScript パッケージの npm レジストリを所有する GitHub は、最近の攻撃に対応してセキュリティを強化していると述べている。
9 月は、パッケージ管理者に対するフィッシング攻撃や、秘密を盗むマルウェアに感染した数百のパッケージなど、npm にとって悪い月となりました。
GitHub セキュリティラボの責任者 Xavier René-Corail 氏は、セキュリティスキャンによって 500 以上の侵害を受けたパッケージが削除され、その他のパッケージはアップロードがブロックされたと述べた。
ルネ=コライユ氏は、セキュリティ強化につながる変更点についても説明しました。既存の認証方法の多くは「近い将来」に廃止される予定で、これには従来のクラシックトークンや二要素認証(2FA)用のワンタイムパスワードなどが含まれます。トークンの有効期間も短縮され、信頼できる公開と2FAを強制するローカル公開がデフォルトで採用されます。
信頼できる出版のためのワークフロー
信頼できる公開は、PyPIパッケージインデックスで初めて採用され、自動化されたワークフロー向けに設計されています。パッケージリポジトリはOpenID Connectを使用して、パッケージが信頼できるソースからのものであることを確認し、有効期間の短いトークンを発行することで、盗難される可能性のある長期トークンのリスクを回避します。現在、npmの信頼できる公開は、GitHub ActionsとGitLab CI/CD(継続的インテグレーションおよびデリバリー)パイプラインのみをサポートしています。
RubyGems、Rust 用の crates.io、.NET 用の NuGet (この最後のものは Microsoft によって昨日導入されました) など、他のパッケージ リポジトリでも信頼できる公開のサポートが追加されました。
変更が完全に実装されると、npm パッケージの公開オプションは、2FA を使用したローカル公開、有効期間が 7 日間の詳細なトークン、信頼できる公開に制限されます。
ルネ・コライユ氏によると、チームは信頼できる公開を段階的に導入することを意図していたが、「攻撃者は待っていない」と述べた。しかし、既存のワークフローを破壊したことで生じる混乱を考慮すると、変更は「段階的に展開」される予定であり、変更の適用時期はまだ発表されていない。
- Ruby Centralがプロジェクトの管理を引き継いだ後、RubyGemsのメンテナーが辞任
- CloudflareがReact useEffectフックの失策で自らDDoS攻撃
- 強力なJava LTSが25のリリースとともに登場
- プロファイルが優先されるため、C++ の Rust スタイルの安全モデルは「拒否」される
課題の一つは、すべての開発者がGitHub ActionsやGitLab CI/CDパイプラインを使いたいわけではないことです。René-Corail氏は、対象となるプロバイダーを拡大する計画があると述べています。ドキュメントには、現在、信頼できるパブリッシングはクラウドホスト型のGitHubランナーのみでサポートされていますが、将来のリリースではセルフホスト型のランナーもサポートされる予定であると記載されています。各パッケージには、一度に1つの信頼できるパブリッシャーしか設定できません。
信頼できる公開は長期トークンの使用を回避しますが、一部の人にとってはそれだけでは不十分です。「人気プロジェクト(postcss)のメンテナーとして、OIDCの信頼できる公開元には疑問を感じています」とAndrey Sitnik氏は述べています。「私(YubiKeyなどのハードウェアキーで公開するために2FAを使用しています)の場合、CI経由で信頼できる公開元を追加するとリスクが増大します。postcssのnode_modulesからマルウェアがコミットとタグ付けを行い、GitHubにプッシュする可能性があります。」
別の開発者は「OIDCは即効性のある解決策ではなく、単に別のプラットフォームに権限を委譲するだけだ」と述べ、GitHubに対して「複数のレビューを義務付け、設定の変更を困難にすることで、侵害された単一のアカウントが変更を元に戻すのが困難になるようにする」などのさらなる措置を求めている。®