Skip to main content

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

パブリック リポジトリにおけるセキュリティの脆弱性について、非公開で議論、修正、および情報を共有するには、リポジトリ セキュリティ アドバイザリを使用できます。

この機能を使用できるユーザーについて

リポジトリのセキュリティ アドバイザリとプライベート脆弱性レポートは、GitHub.com 上のパブリック リポジトリで使用できます

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

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

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

リポジトリ セキュリティ アドバイザリを使うと、次のことができます。

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

REST API を使って、リポジトリ セキュリティ アドバイザリを作成、一覧表示、更新することもできます。 詳しくは、「リポジトリ セキュリティ アドバイザリ用の REST API エンドポイント」をご覧ください。

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

リポジトリのセキュリティガイドライン

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

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

データ 再利用可能.リポジトリ.githubセキュリティラボ %}

CVE 識別番号

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

GitHub は CVE Numbering Authority (CNA) であり、CVE 識別番号を割り当てる権限があります。 詳しくは、CVE の Web サイトで、CVE の概要に関するページと「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 データベースに公開します。

セキュリティ アドバイザリの公開

セキュリティ アドバイザリを公開すると、それが対処する脆弱性についてコミュニティに通知されるため、パッケージの依存関係を更新し、脆弱性の影響を調査しやすくなります。

パブリック リポジトリからドラフト アドバイザリを発行する場合、可視性レベルは次のように異なります。

  •         **現在** のバージョンのアドバイザリ データと、クレジットを持つユーザーが受け入れたアドバイザリ クレジットはだれでも確認できます。
    
  •         **コラボレーターは、** アドバイザリの会話履歴を表示できます。
    

公開後、セキュリティ アドバイザリの URL は変更されません。

公開したセキュリティアドバイザリの情報をアップデートまたは修正する必要がある場合は、セキュリティアドバイザリを編集できます。 「リポジトリ セキュリティ アドバイザリの編集」を参照してください。

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

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

修正バージョンの重要性

可能な限り、セキュリティ アドバイザリを公開する前に、修正バージョンを追加する必要があります。 そうしない場合、アドバイザリは修正バージョンなしで公開され、Dependabot は、更新する安全なバージョンを提供することなく、問題についてユーザに警告します。

脆弱性によっては、アプローチの調整が必要になる場合があります。 修正プログラムのバージョンが次の場合:

  •         **間もなく利用可能**になり、修正プログラムの準備ができたら、問題の開示を待つことができるようになります。
    
  •         **開発中でもまだ使用できない場合は**、アドバイザリでこれを言及し、発行後にアドバイザリを編集します。
    
  •         **計画されていない**場合は、アドバイザリでそのことを明確にして、修正がいつ行われるかユーザーから連絡を受けないようにします。 この場合、ユーザが問題を軽減するときに使えるステップを含めると便利です。