技術

GitHub、サプライチェーン攻撃に対するnpmとGitHub Actionsの防御を強化

GitHubは、ソフトウェアサプライチェーン攻撃で頻繁に利用される経路を断つため、ここ数カ月の間にnpmとGitHub Actionsで実施した一連の変更を紹介した。開発者アカウントの侵害から認証情報の窃取、マルウェアの配布に至る経路が対象となる。

2026-07-28
1 分で読めます
1,446 閲覧数
certi.news Editorial Team
GitHub、サプライチェーン攻撃に対するnpmとGitHub Actionsの防御を強化

GitHubは、ソフトウェアサプライチェーン攻撃で一般的に使われる手法を妨害し、その影響を抑えることを目的として、ここ数カ月の間にnpmとGitHub Actionsで実施したセキュリティ変更を紹介した。対策には、影響力の大きいnpmアカウントの保護、Actionsワークフローのデフォルト動作の厳格化、認証情報窃取のリスク低減、インシデント対応を迅速化するツールの提供が含まれる。

これらの措置は、パッケージリポジトリや継続的インテグレーション・デプロイシステムの脆弱性を悪用し、数百のオープンソースプロジェクトにマルウェアを配布する攻撃が増加したことを受けたものだ。Greg Ose氏とZachary Steindler氏によると、こうした攻撃は通常、プロジェクトへの初期アクセス、権限昇格、認証情報の窃取、そして最終的に他のプロジェクトやユーザーへの拡散という一連の段階をたどる。

初期侵害の機会を減らす

2026年6月、npmは、メールアドレスの変更または二要素認証を復旧するためのトークンの使用が行われた際、影響力の大きいアカウントを72時間読み取り専用モードに移行する措置を導入した。この猶予期間により、アカウント管理者は、アカウントが攻撃に利用される前にフィッシングの試みを発見し、対応する時間を得られる。

同月、GitHubはactions/checkoutアクションのデフォルト動作を変更し、悪用されやすいトリガーにおいて、フォークされたリポジトリからのプルリクエストから信頼できないコードを取得しないようにした。リスクを確認した後、この制限を解除することもできる。この変更は、同アクションの旧バージョンにも適用された。

GitHubはまた、ワークフローの実行を許可する主体や、受け入れ可能なトリガーの種類を制御するため、企業、組織、リポジトリのレベルでポリシーを設定できるようにした。さらに、信頼性の低いワークフローが他のワークフローと共有するキャッシュを変更する能力も制限される。これにより、権限が限定されたコード実行から高権限の認証情報窃取へ移行するために使われた経路が遮断される。

認証情報の窃取とマルウェアの拡散を抑制

npmは2026年4月、信頼済み公開機能にCircleCIのサポートを追加した。これにより、プロジェクトは、攻撃者が継続的インテグレーション環境から抽出できる長期的な認証情報を使う代わりに、信頼された主体を通じて公開できる。

GitHubは現在、テクニカルプレビュー段階でネットワークファイアウォールもテストしており、GitHub Actionsの実行から外部へ送信されるトラフィックを記録する。これにより、悪意のあるコードのダウンロードや、新たなドメインへの認証情報の送信といった挙動を検知しやすくなる。GitHubは後に、こうした活動を防止するため、外向きネットワークトラフィックに対する制限とポリシーを追加する予定だ。

npmが2026年5月に開始した段階的公開機能では、認証情報だけで新しいリリースを直ちに公開することはできない。リリースは、npmのインターフェースまたはnpmjs.comで承認され、二要素認証が完了するまで保留状態となる。

npm v12では、インストール中のライフサイクルスクリプトをデフォルトで無効にする、従来の動作を破る変更も予定されている。承認後に特定のスクリプトを再び有効にすることは可能だ。また、GitリポジトリやリモートURLに依存する依存関係もデフォルトで無効化され、インストール中にコードが実行される経路を抑制する。

セキュリティ以外の更新を遅延させ、対応を改善

Dependabotによるリリース更新では、2026年7月から、パッケージのリリース後少なくとも3日間待ってからプルリクエストを作成するようになった。これにより、悪意のあるリリースがプロジェクトに到達する前に、検知の兆候が現れる時間を確保できる。一方、重要な修正が遅れないよう、セキュリティ更新は引き続き直ちに作成される。

対応面では、GitHubが6月に、組織内の特定ユーザーに属するすべての認証情報を取り消すセルフサービスツールを追加した。また3月には、認証情報を取り消すAPIのサポートを拡張し、GitHub OAuthトークンとApp Tokensにも対応した。それ以前の2025年4月には、個人アクセストークンのサポートが開始されていた。GitHubによると、これらの機能により、漏えいした認証情報を迅速に無効化し、悪用可能な期間を短縮できる。

GitHubは、これらの変更がnpmとGitHub Actionsをデフォルトでより安全にするための継続的な取り組みの一部であり、今後もその他の改善を展開し、変更履歴とブログ記事を通じて追跡していくと説明している。

ニュースの出典
GitHub Blog
原文を開く ↗
c
著者

certi.news Editorial Team

知っておくべきこと

GitHubは、アカウントの乗っ取り、認証情報の窃取、マルウェアの展開など、ソフトウェアサプライチェーン攻撃で一般的に悪用される経路を遮断するため、npmとGitHub Actionsにおける一連のセキュリティ変更を明らかにしました。対策には、デフォルト設定の厳格化、信頼済みデプロイと段階的デプロイ、ネットワークトラフィックの監視、認証情報の失効機能の改善が含まれます。

  • npmは、影響力の大きいアカウントについて、メールアドレスの変更または二要素認証のリカバリーコードの使用時に、72時間読み取り専用モードに設定します。
  • GitHubは、特定のトリガーにおいて、フォークされたリポジトリからのプルリクエストによって信頼されていないコードが取得されるのを防ぐため、actions/checkoutアクションのデフォルト動作を変更しました。
  • npmは信頼済みデプロイ機能にCircleCIのサポートを追加し、リリースの公開前に承認と二要素認証を要求する段階的デプロイも開始しました。
  • GitHubは、GitHub Actionsのジョブから送信される送信トラフィックを記録するネットワークファイアウォールをテストしており、送信トラフィックへの制限も追加する計画です。
  • npm v12では、インストール時のライフサイクルスクリプトと、リモートGitリポジトリやURLに依存する依存関係をデフォルトで無効にする準備が進められています。レビュー後に許可することは可能です。
  • GitHubは、ユーザーの認証情報とトークンを迅速に失効させるツールを追加しました。一方、Dependabotはセキュリティ以外のパッケージ更新を少なくとも3日間遅延させます。

よくある質問

GitHubとnpmの変更の目的は何ですか?

ソフトウェアサプライチェーン攻撃で一般的に使われる手法を遮断し、アカウントの乗っ取り、認証情報の窃取、マルウェアの展開のリスクを低減することです。

npmの段階的デプロイでは何が行われますか?

アップロード後もリリースを保留段階に置き、認証情報だけで直接公開できないようにします。公開には承認と二要素認証の完了が必要です。

npm v12では何が変わりますか?

インストール時のライフサイクルスクリプトと、GitリポジトリまたはリモートURLに依存する依存関係がデフォルトで無効になります。承認後に個別の項目を再有効化できます。

Dependabotがセキュリティ以外のパッケージ更新を遅延させるのはなぜですか?

悪意のあるリリースがプロジェクトに到達する前に、検出システムがそれを検知する時間を確保するためです。セキュリティ更新は引き続き直ちに作成されます。

このストーリーを探る

関連トピックとエンティティ

同じカテゴリー

おすすめ記事

すべてのニュースを見る