Skip to main content

リポジトリの GitHub セキュリティ アドバイザリについて

GitHub Security Advisories を使用して、リポジトリにおけるセキュリティの脆弱性に関する情報を非公開で議論、修正、公開できます。

リポジトリに対する管理者権限があるユーザなら誰でも、セキュリティアドバイザリを作成できます。

リポジトリに対する管理者権限を持っている人は、そのリポジトリ内のすべてのセキュリティアドバイザリに対する管理権限も持ちます。 セキュリティアドバイザリに対する管理者権限を持っている人は、コラボレータを追加でき、コラボレータはセキュリティアドバイザリに対する書き込み権限を持ちます。

注: セキュリティ研究者の場合は、保守担当者に直接連絡して、自分が管理していないリポジトリで自分に代わってセキュリティ アドバイザリを作成または CVE を発行するように依頼する必要があります。

GitHub Security Advisories について

脆弱性の開示は、セキュリティの研究者などの脆弱性の報告者とプロジェクトのメンテナとの間の協力が非常に重要な分野です。 潜在的に有害なセキュリティの脆弱性が見つかったときから、脆弱性が世界に向けて公開され、理想的にはパッチが利用可能になるまで、どちらも協力しあって作業しなければなりません。 通常は、誰かがメンテナに対してセキュリティの脆弱性について個人的に知らせると、メンテナはパッチを開発し、検証し、プロジェクトあるいはパッケージのユーザに通知します。 詳細については、「セキュリティ脆弱性の調整された開示について」を参照してください。

GitHub Security Advisories を使用すると、リポジトリメンテナがプロジェクトのセキュリティの脆弱性について非公開で議論し、修正できます。 共同で修正を行った後、リポジトリ保守担当者はセキュリティ アドバイザリを公開して、セキュリティの脆弱性をプロジェクトのコミュニティに開示することができます。 セキュリティ アドバイザリを公開することにより、リポジトリ保守担当者は、コミュニティがいっそう簡単にパッケージの依存関係を更新したり、セキュリティの脆弱性の影響を調べたりできるようにします。

GitHub Security Advisories では、次のことができます。

  1. セキュリティアドバイザリのドラフトを作成し、そのドラフトを用いて、プロジェクトに対する脆弱性の影響について非公開で議論します。 詳細については、「リポジトリ セキュリティ アドバイザリの作成」を参照してください。
  2. 一時的なプライベートフォークで、脆弱性を修正するため非公式でコラボレートします。
  3. パッチがリリースされたら、脆弱性のコミュニティに警告するため、セキュリティアドバイザリを公開してください。 詳細については、「リポジトリ セキュリティ アドバイザリの公開」を参照してください。

GitHub Security Advisoriesを使い、すでに別の場所で公開したセキュリティ脆弱性の詳細をコピーして新しいセキュリティアドバイザリに貼り付けることにより、その詳細を再度公開できます。

セキュリティアドバイザリに貢献した個人にクレジットを付与することができます。 詳細については、「リポジトリ セキュリティ アドバイザリの編集」を参照してください。

セキュリティポリシーを作成して、プロジェクト中のセキュリティ脆弱性を報告するための指示を出すことができます。 詳細については、「リポジトリへのセキュリティ ポリシーの追加」を参照してください。

セキュリティアドバイザリをリポジトリ中で作成した場合、そのセキュリティアドバイザリはリポジトリに残ります。 依存関係グラフによってサポートされる任意のエコシステムのセキュリティ アドバイザリを、github.com/advisories の GitHub Advisory Database に公開しています。 GitHub Advisory Database に公開されているアドバイザリに、だれでも変更を送信することができます。 詳細については、「GitHub Advisory Database のセキュリティ アドバイザリの編集」を参照してください。

特にnpmに対するものであるセキュリティアドバイザリについては、npmセキュリティアドバイザリにも公開します。 詳細については、npmjs.com/advisories を確認してください。

GitHub Security Lab に参加して、セキュリティ関連のトピックを見たり、セキュリティのツールやプロジェクトに貢献したりすることもできます。

CVE 識別番号

GitHub Security Advisories は、共通脆弱性識別子(CVE) リストに基づいています。 GitHub上のセキュリティアドバイザリフォームは、CVEの記述フォーマットにマッチする標準化されたフォームです。

GitHub は CVE Numbering Authority (CNA) であり、CVE 識別番号を割り当てる権限があります。 詳細については、CVE の Web サイトで、「About CVE」 (CVE の概要)、および「CVE Numbering Authorities」 (CVE の番号付け機関) を参照してください。

GitHub でパブリックリポジトリのセキュリティアドバイザリを作成する場合、セキュリティの脆弱性に対する既存の CVE 識別番号を提供するオプションがあります。 プロジェクト中のセキュリティ脆弱性に対する CVE 識別番号が必要であり、まだ持っていない場合は、GitHub に CVE 識別番号を要求できます。 GitHubは通常、リクエストを72時間以内にレビューします。 CVE識別番号をリクエストしても、セキュリティアドバイザリはパブリックにはなりません。 セキュリティ アドバイザリが CVE の対象である場合、GitHub によってそのアドバイザリ用に CVE 識別番号が予約されます。 ユーザーがセキュリティ アドバイザリを公開した後、GitHub は CVE の詳細を公開します。 セキュリティ アドバイザリに対する管理者アクセス許可を持っているすべてのユーザーは、CVE 識別番号を要求できます。

使いたい CVE がすでにある場合は (たとえば、GitHub 以外の CVE Numbering Authority (CNA) を使う場合)、その CVE をセキュリティ アドバイザリ フォームに追加します。 これはたとえば、公開時に送信することを計画している他の通信先と、アドバイザリが一貫しているようにしたい場合に生じるかもしれません。 CVE が別の CNA によってカバーされている場合、GitHub ではプロジェクトにそれを割り当てることはできません。

セキュリティアドバイザリを公開し、GitHub が CVE 識別番号を脆弱性に割り当てたら、GitHub は CVE を MITER データベースに公開します。 詳細については、「リポジトリ セキュリティ アドバイザリの公開」を参照してください。

公開されたセキュリティアドバイザリの Dependabot alerts

GitHubは、公開されたそれぞれのセキュリティアドバイザリをレビューし、GitHub Advisory Databaseに追加し、そのセキュリティアドバイザリを使って影響されるリポジトリにDependabot alertsを送信することがあります。 セキュリティアドバイザリがフォークから生ずる場合、ユニークな名前の下でパブリックなパッケージレジストリに公開されたパッケージをフォークが所有しているときにのみアラートが送信されます。 このプロセスには最大で72時間がかかり、GitHubがさらなる情報を求めてあなたに連絡することがあります。

Dependabot alerts について詳しくは、「Dependabot alerts について」および「Dependabot security updates について」を参照してください。 GitHub Advisory Database について詳しくは、「GitHub Advisory Database のセキュリティ アドバイザリを参照する」を参照してください。