GitHub、NPMサプライチェーン攻撃に対応し2FA必須化とトークン有効期限を7日に短縮

2025-10-10
サイバー脅威研究所 編集部/ サプライチェーンセキュリティエキスパート
#インシデント

NPMエコシステムを襲った大規模サプライチェーン攻撃

2025年9月、GitHubが管理するNPM(Node Package Manager)レジストリにおいて、複数の深刻なサプライチェーン攻撃が相次いで発生し、オープンソースエコシステムの脆弱性が改めて浮き彫りになった。最も注目を集めたのは、自己複製型ワーム「Shai-Hulud」による攻撃である。このマルウェアは数十のメンテナーアカウントを侵害し、195個のパッケージに感染、500以上の悪意あるパッケージバージョンをレジストリに公開した。

Shai-Huludワームの特徴は、単なるNPMトークンの窃取にとどまらず、複数種類の認証情報を盗み出す能力と、自己複製機能を組み合わせた点にある。この脅威が放置されていれば、エンドレスな攻撃の連鎖を引き起こし、NPMエコシステム全体に壊滅的な影響を与える可能性があった。幸い、GitHubとオープンソースコミュニティの迅速な対応により、悪意あるパッケージの削除と新たなマルウェアのアップロード阻止が実現し、被害の拡大は最小限に抑えられた。

さらに、その1週間前には、著名な開発者Josh Junon氏が管理する18個のパッケージがマルウェアを注入される事件が発生した。攻撃者はNPMサポートを装ったフィッシングキャンペーンを展開し、Junon氏の認証情報を窃取した。これらのパッケージは合計で週間25億ダウンロードを超える規模であり、影響範囲の広さが際立っている。

7月にも、タイポスクワッティング(綴りの類似性を悪用した攻撃)を用いた手法で、Node.jsパッケージレジストリを偽装し、複数のパッケージメンテナーを標的とした攻撃が確認された。侵害されたパッケージは合計で週間3000万ダウンロードを超えており、サプライチェーン攻撃の深刻な脅威を示している。

GitHubが実装する包括的なセキュリティ強化策

これらの連続した攻撃を受け、GitHubはNPMレジストリのセキュリティを抜本的に強化する一連の施策を発表した。Microsoft傘下のこのコードホスティングプラットフォームは、トークン悪用と自己複製型マルウェアのリスクを防ぐため、以下の重要な変更を段階的に導入する。

第一に、ローカル公開時における二要素認証の必須化である。これまでオプションであった2FAが、パッケージの公開時には必ず要求されるようになる。これにより、認証情報の漏洩だけではパッケージの改ざんができなくなり、攻撃のハードルが大幅に上がる。

第二に、詳細なアクセス権限を持つグラニュラートークンの有効期限を7日間に短縮する。従来の長期間有効なトークンは、一度窃取されると長期間にわたって悪用される危険性があった。短期間で自動的に失効するトークンの導入により、窃取されたトークンによる被害を時間的に制限することが可能になる。

第三に、最も重要な施策として「信頼できる公開機能(Trusted Publishing)」の全面的な推進がある。この機能は、長期間有効なトークンの管理を不要にし、代わりに短期間で厳密にスコープが限定されたAPIトークンを使用する。さらに、パッケージが特定のソースシステムから確実に公開されたことを保証する仕組みを提供する。GitHubは当初、この機能の採用を有機的な成長に任せる方針だったが、攻撃者の動きが予想以上に速いことから、すべてのプロジェクトに対して可能な限り早急な採用を強く推奨している。

レガシーシステムの段階的廃止と新たな認証基準

GitHubはセキュリティ強化の一環として、レガシーなクラシックトークンと時間ベースのワンタイムパスワード方式の2FAを段階的に廃止する方針を明らかにした。クラシックトークンは粗い権限設定しかできず、必要以上の権限を持つトークンが流出するリスクが高かった。これを細かい権限設定が可能なグラニュラートークンに置き換えることで、最小権限の原則を徹底する。

また、公開権限を持つグラニュラートークンについては、デフォルトでトークンによる公開を許可しない設定に変更される。これにより、開発者は意図的に公開権限を付与しない限り、トークンを使った予期しないパッケージ公開を防げる。

さらに、ローカルでのパッケージ公開時に2FAをバイパスできないよう制御を強化し、信頼できる公開機能の対象となるプロバイダーを拡大する。2FA設定においては、従来のTOTP方式よりもフィッシングに強いWebAuthn方式の使用を強く推奨している。WebAuthnはハードウェアセキュリティキーや生体認証を活用し、フィッシング攻撃に対する耐性が格段に高い。

セキュリティ変更がもたらすワークフローへの影響

GitHubは、これらのセキュリティ変更が一部の開発ワークフローに影響を与える可能性があることを認識している。そのため、混乱を最小限に抑えながらNPMのセキュリティ態勢を強化するため、変更は段階的にロールアウトされる予定である。

開発チームは、既存の自動化パイプラインや継続的インテグレーション・継続的デプロイメントのワークフローを見直し、新しいセキュリティ要件に適合させる必要がある。特に、長期間有効なトークンに依存していたシステムは、信頼できる公開機能への移行や、トークンのローテーション機構の導入が求められる。

また、2FAの必須化により、自動化されたパッケージ公開フローには特別な配慮が必要になる。人間の介入なしにパッケージを公開するシステムでは、信頼できる公開機能を活用した認証方式への移行が実質的に必須となる。

オープンソースメンテナーへの推奨事項

GitHubは、NPMパッケージのメンテナーに対して、セキュリティを強化するための具体的な推奨事項を提示している。

まず、最優先で信頼できる公開機能への切り替えを行うべきである。この機能は、長期間有効なトークンの管理負担を軽減し、フィッシング攻撃や認証情報の漏洩に対する耐性を大幅に向上させる。すべてのサポート対象パッケージマネージャーで利用可能であり、早期導入が強く推奨される。

次に、パッケージ公開時に2FAが必須となるよう設定を確認することが重要である。アカウント設定でも2FAを有効化し、可能な限りWebAuthn方式を選択すべきである。TOTP方式よりもフィッシングに強く、ハードウェアセキュリティキーを使用することで物理的な第二要素認証が実現できる。

また、使用しているトークンの棚卸しを行い、不要なトークンの削除と、必要なトークンについては最小権限の原則に基づいた権限設定の見直しを実施すべきである。特に、公開権限を持つトークンは厳格に管理し、定期的なローテーションを実施することが望ましい。

サプライチェーン攻撃の進化と今後の課題

今回の一連の攻撃は、オープンソースエコシステムにおけるサプライチェーン攻撃の手法が急速に進化していることを示している。攻撃者は、単一のパッケージを侵害するだけでなく、メンテナーアカウントの大規模な侵害や、自己複製型マルウェアによるエコシステム全体への拡散を試みるようになった。

Shai-Huludワームは、複数の認証情報タイプを窃取し、横展開能力を持つ高度な脅威の典型例である。このような脅威に対しては、単一の防御策では不十分であり、多層的なセキュリティアプローチが不可欠である。GitHubの今回の施策は、認証の強化、トークンのライフサイクル管理、信頼できる公開メカニズムの導入という包括的なアプローチを取っており、効果が期待される。

しかし、完全な解決には至っていない。フィッシング攻撃の巧妙化、ソーシャルエンジニアリング手法の進化、ゼロデイ脆弱性の悪用など、攻撃者は常に新たな手法を開発している。NPMエコシステムの参加者全員が、セキュリティ意識を高め、ベストプラクティスを遵守することが求められる。

エコシステム全体で取り組むべきセキュリティ文化の醸成

オープンソースソフトウェアのサプライチェーンセキュリティは、単一の組織や技術的な対策だけで解決できる問題ではない。開発者、メンテナー、企業、プラットフォーム提供者が協力し、エコシステム全体でセキュリティ文化を醸成していく必要がある。

開発者は、依存関係の管理を慎重に行い、信頼できるパッケージのみを使用するよう心がけるべきである。パッケージの更新時には変更内容を確認し、異常な挙動がないかチェックすることが重要である。また、ソフトウェア部品表の作成と管理により、使用しているすべての依存関係を把握し、脆弱性が発見された際に迅速に対応できる体制を整える必要がある。

企業は、オープンソースソフトウェアの利用におけるリスク管理プロセスを確立し、セキュリティポリシーを明確にすべきである。サプライチェーン攻撃のリスク評価を定期的に実施し、必要に応じてパッケージのベンダーやソース検証を行うことが推奨される。

プラットフォーム提供者は、今回のGitHubの取り組みのように、継続的なセキュリティ改善と透明性の確保に努めるべきである。脅威インテリジェンスの共有、自動化された脅威検知システムの導入、迅速なインシデント対応体制の整備が不可欠である。

まとめ:持続可能なオープンソースエコシステムの実現に向けて

GitHubによる今回のNPMセキュリティ強化策は、オープンソースエコシステムの持続可能性を高めるための重要な一歩である。2FA必須化、トークン有効期限の短縮、信頼できる公開機能の推進という包括的なアプローチは、サプライチェーン攻撃のリスクを大幅に軽減する可能性がある。

しかし、これは終わりではなく始まりに過ぎない。攻撃者の手法は日々進化しており、防御側も継続的な改善と適応が求められる。開発者コミュニティ全体が協力し、セキュリティのベストプラクティスを共有し、新たな脅威に対して機敏に対応していく文化を育てることが、オープンソースエコシステムの未来を守る鍵となる。

NPMエコシステムを含むオープンソースソフトウェアは、現代のソフトウェア開発において不可欠な基盤である。その信頼性と安全性を維持することは、技術産業全体の発展にとって極めて重要である。今回の攻撃と対策から学び、より強靭で回復力のあるエコシステムを構築していくことが、すべての関係者に求められている。

この記事をシェア: