Skip to main content
Skip to content

リポジトリのプライベート脆弱性レポートの構成

パブリック リポジトリの所有者と管理者は、プライベート脆弱性レポートを有効にすることで、セキュリティ リサーチャーがリポジトリ内の脆弱性を安全に報告できるようにすることができます。

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

リポジトリの所有者、組織の所有者、セキュリティ マネージャー、および 管理者 ロールを持つユーザー

プライベート脆弱性レポートを有効にすると、セキュリティ研究者は、リポジトリ内の脆弱性を直接開示するための安全で構造化された方法が提供されます。 有効にすると、研究者は公開や非公式のチャネルに頼ることなく、リポジトリのプライベート脆弱性報告フォームを介してレポートを送信できます。 プライベート脆弱性レポートの背景と、それが調整された開示にどのように適合するかについては、 AUTOTITLE を参照してください。

この記事の手順は、リポジトリ レベルでの有効化についてのものです。 Organization レベルでの機能の有効化については、「カスタム セキュリティ構成を作成する」をご覧ください。

リポジトリに関するプライベート脆弱性レポートの有効化または無効化

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティと品質] セクションで、[ Advanced Security] をクリックします。

  4. [Advanced Security] の [プライベート脆弱性レポート] の右側にある [有効] または [無効] をクリックして、機能を有効または無効にします。

[コードのセキュリティと分析] ページのスクリーンショット。[プライベート脆弱性レポート] の設定が示されています。 [Enable] ボタンがオレンジ色の枠線で囲まれています。

プライベート脆弱性レポートが有効になっている場合、セキュリティ研究者にはリポジトリの [アドバイザリ] ページに [ 脆弱性 の報告] ボタンが表示され、プライベート レポートを送信できます。

プライベート脆弱性レポートが有効になっているリポジトリの [脆弱性の報告] ボタンを示すスクリーンショット。

また、セキュリティ リサーチャーは、REST API を使って、セキュリティの脆弱性を非公開で報告できます。 API 送信では Markdown descriptionを使用します。 リポジトリまたはその所有者の .github リポジトリでカスタム脆弱性レポート フォームが定義されている場合、API の説明には、そのフォームから必要なセクションと応答が含まれている必要があります。 組み込みの既定のフォームは、API 送信には適用されません。

REST API を使用して、リポジトリに適用されるカスタム フォームを取得できます。 「リポジトリ セキュリティ アドバイザリ用の REST API エンドポイント」を参照してください。

脆弱性レポート フォームのカスタマイズ

既定では、プライベート脆弱性報告フォームでは、報告者が概要、詳細、概念実証、および影響に関する声明を提供する必要があります。 この構造化された情報は、保守担当者がレポートを一貫して評価するのに役立ち、不足している詳細を要求する必要が減ります。

フォームをカスタマイズするには、.github または VULNERABILITY_REPORT.yml ファイルをリポジトリの VULNERABILITY_REPORT.yaml ディレクトリに追加します。 また、そのアカウントが所有する .github リポジトリで、組織または個人アカウントの既定のフォームを定義することもできます。 個々のリポジトリ内のフォームは、所有者の .github リポジトリ内のフォームよりも優先されます。

プライベート脆弱性報告フォームでは、Issue フォームと同じ YAML 構文が使用されます。 フォームは、 checkboxes、 dropdown、 input、 markdown、および textarea 要素をサポートします。 フィールドを必須としてマークし、min_length を使用して input 要素と textarea 要素に最小文字数を設定できます。 各要素でサポートされているキーの詳細については、GitHubのフォーム スキーマの構文を参照してください。

たとえば、次のフォームでは、少なくとも 100 文字の詳細な概念実証(PoC)が必要です。

YAML
name: Private vulnerability report
description: Provide the information maintainers need to assess the report.
body:
  - type: textarea
    id: summary
    attributes:
      label: Summary
      description: Summarize the vulnerability and its potential severity.
    validations:
      required: true
  - type: textarea
    id: proof_of_concept
    attributes:
      label: Proof of concept
      description: Provide complete instructions for reproducing the vulnerability.
    validations:
      required: true
      min_length: 100
  - type: textarea
    id: impact
    attributes:
      label: Impact
      description: Explain who is affected and how.
    validations:
      required: true

GitHubがカスタム フォームを解析または検証できない場合、レポーターには代わりに既定のフォームが表示されます。

レポーターに CWE の割り当てを要求する

レポーターに対して、新しいレポートごとに少なくとも 1 つの Common Weakness Enumeration (CWE) を関連付けることを必須にできます。 このリポジトリ レベルの設定は、Web インターフェイスから、および REST API で送信されたレポートに適用されます。 アドバイザリを作成するリポジトリ保守担当者や、既存のレポートの編集には適用されません。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティと品質] セクションで、[ Advanced Security] をクリックします。

  4. ** Advanced Security ** で、プライベート脆弱性レポート の右側にある 設定 をクリックします。

  5. 送信要件 で、CWE の割り当てを必須にする を有効にします。

プライベート脆弱性レポートの通知を構成する

リポジトリで新しい脆弱性が非公開で報告されると、GitHub は、次の場合にリポジトリ管理者とセキュリティ マネージャーに通知します。

  • すべてのアクティビティについてリポジトリを監視しているか、"セキュリティ アラート" 通知をサブスクライブしています。
  • リポジトリで通知が有効にされている。

通知は、ユーザーの通知基本設定に依存します。 次の場合に、電子メール通知を受け取ります。

  • [すべてのアクティビティ] が選択されているか、セキュリティ アラート ([カスタム] で使用可能) が選択された状態でリポジトリを監視しています。
  • 通知設定の [ サブスクリプション] の [ 監視] で、電子メールで通知を受信するように選択しました。
  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリの監視を開始するには、[ウォッチ] 選択します。

    リポジトリのメイン ページのスクリーンショット。 [ウォッチ] というタイトルが付いたドロップダウン メニューがオレンジ色の枠線で強調表示されています。

  3. ドロップダウン メニューで、[ すべてのアクティビティ ] を選択してすべてのアクティビティの通知を受信するか、[ カスタム] を選択し、[ セキュリティ アラート ] を選択して、セキュリティ アラートに対してのみ通知を受信します。

  4. 個人用アカウントの通知設定に移動します。 https://github.com/settings/notifications で利用できます。

  5. 通知設定ページの [サブスクリプション] の [視聴中] で、[ 通知 ] ドロップダウンをクリックします。

  6. 通知方法として [Email] を選び、 [保存] を選びます。

    ユーザー アカウントの通知設定のスクリーンショット。 [Subscriptions] と [Watching] の下にある [Email] というタイトルのチェックボックスがオレンジ色の枠線で囲まれています。

通知設定について詳しくは、「リポジトリのセキュリティと分析設定を管理する」および「個別のリポジトリの Watch 設定を構成する」をご覧ください。