Skip to main content

リポジトリを保護する

リポジトリをセキュアに保つために、いくつものGitHubの機能が利用できます。

Who can use this feature?

Repository administrators and organization owners can configure repository security settings.

はじめに

このガイドは、リポジトリでのセキュリティ機能の設定方法を紹介します。 リポジトリのセキュリティ設定を構成するには、リポジトリ管理者かOrganizationのオーナーでなければなりません。

セキュリティの要件はリポジトリに固有のものなので、リポジトリですべての機能を有効化する必要はないかもしれません。 詳しくは、「GitHub セキュリティ機能」を参照してください。

一部の機能は、すべてのプランのリポジトリに使用できます。 その他の機能は、GitHub Advanced Security を使うエンタープライズに使用できます。 GitHub Advanced Security の機能は、GitHub.com 上のすべてのパブリック リポジトリでも有効になります。 詳しくは、「GitHub Advanced Security について」を参照してください。

リポジトリへのアクセスの管理

リポジトリを保護するための最初の手順は、誰がコードを表示および変更できるかを確立することです。 詳しくは、「リポジトリの設定と機能を管理する」を参照してください。

リポジトリのメイン ページから、 [設定] をクリックし、[危険区域] まで下にスクロールします。

依存関係グラフの管理

依存関係グラフは、すべてのパブリック リポジトリに対して自動的に生成されます。 フォークとプライベート リポジトリに対して、それを有効にすることを選べます。依存関係グラフでは、リポジトリ内のマニフェストとロック ファイルが解釈されて依存関係が識別されます。

  1. リポジトリのメイン ページから、 [設定] をクリックします。
  2. [セキュリティと分析] をクリックします。
  3. 依存関係グラフの横にある [有効化] または [無効化] をクリックします。

詳しくは、「リポジトリの依存関係を調べる」を参照してください。

Dependabot alertsの管理

GitHub によって脆弱性のある依存関係が依存関係グラフで特定されたときに、Dependabot alerts が生成されます。 任意のリポジトリに対して、Dependabot alerts を有効にすることができます。

さらに、Dependabot 自動トリアージ ルール を使用してアラートを大規模に管理できるため、アラートを自動的に閉じたりスヌーズしたりして、pull requestを開く Dependabot アラートを指定できます。 詳しくは、「Dependabot 自動トリアージ ルールについて」を参照してください。

Dependabot によって提供されるさまざまな機能の概要と、開始方法の手順については、「Dependabot クイックスタート ガイド」を参照してください。

  1. プロファイル写真をクリックし、 [設定] をクリックします。

  2. [セキュリティと分析] をクリックします。

  3. Dependabot alerts の横にある [すべて有効にする] をクリックします。

詳細については、「Dependabot アラートについて」と「個人アカウントのセキュリティと分析設定を管理する」を参照してください。

依存関係レビューの管理

依存関係レビューを使うと、Pull Requestがリポジトリにマージされる前に、Pull Request内での依存関係の変化を可視化できます。 詳しくは、「依存関係の確認について」を参照してください。

依存関係レビューは GitHub Advanced Security 機能です。 依存関係レビューは、すべてのパブリック リポジトリに対して既に有効になっています。 プライベートまたは内部リポジトリに依存関係レビューを有効にするには、依存関係グラフが有効になっていることを確認し、GitHub Advanced Securityを有効にします。

  1. リポジトリのメイン ページから、 [設定] をクリックします。
  2. [セキュリティと分析] をクリックします。
  3. 依存関係グラフがまだ有効になっていない場合、[有効化] をクリックします。
  4. まだ GitHub Advanced Security が有効になっていない場合は、 [有効化] をクリックします。

Dependabot security updatesの管理

Dependabot alertsを使用するリポジトリでは、Dependabot security updatesを有効化して脆弱性が検出された際にセキュリティ更新でPull Requestを発行させることができます。

  1. リポジトリのメイン ページから、 [設定] をクリックします。
  2. [セキュリティと分析] をクリックします。
  3. Dependabot security updates の横にある [有効化] をクリックします。

詳細については、「Dependabot のセキュリティ アップデート」および「Configuring Dependabot security updates (Dependabot セキュリティ アップデートの構成)」を参照してください。

Dependabot version updatesの管理

Dependabotを有効化して、依存関係を最新の状態に保つためのPull Requestを自動的に発行するようにできます。 詳しくは、「GitHub Dependabot のバージョンアップデートについて」を参照してください。

  1. リポジトリのメイン ページから、 [設定] をクリックします。
  2. [セキュリティと分析] をクリックします。
  3. Dependabot version updates の横にある [有効] をクリックして、基本的な dependabot.yml 構成ファイルを作成します。
  4. 更新する依存関係および、すべての関連する構成オプションを指定したら、ファイルをリポジトリにコミットします。 詳しくは、「Dependabot のバージョン アップデートの設定」を参照してください。

code scanning の構成

CodeQL 分析ワークフロー またはサードパーティ製ツールを使用して、リポジトリに格納されているコードの脆弱性とエラーを自動的に特定するようにcode scanningを構成できます。リポジトリ内のプログラミング言語に応じて、既定の設定を使用して CodeQL でcode scanningを構成できます。ここでは、GitHub によって、スキャンする言語、実行するクエリ スイート、新しいスキャンをトリガーするイベントが自動的に決定されます。 詳細については、「コード スキャンの既定セットアップの構成」を参照してください。

  1. リポジトリのメイン ページで、 [設定] をクリックします。
  2. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。
  3. [Code scanning] セクションで [設定] を選び、 [既定] をクリックします。
  4. 表示されるポップアップ ウィンドウで、リポジトリの既定の構成設定を確認し、 [CodeQL を有効にする] をクリックします。

または、編集可能なワークフロー ファイルを生成する詳細設定を使用して、CodeQL を使用してcode scanningをカスタマイズすることもできます。 詳しくは、「Securing your repository」を参照してください。

Code scanning は、すべてのパブリック リポジトリで使用可能です。また、GitHub Advanced Security に対するライセンスを持つ Enterprise の一部である Organization が所有するプライベート リポジトリで使用可能です。

secret scanningの設定

パートナーに対するシークレット スキャンニング アラート はパブリック リポジトリとパブリック npm パッケージで自動的に実行され、GitHub.com で漏洩したシークレットについてサービス プロバイダーに通知します。

ユーザーに対するシークレット スキャンニング アラート は、すべてのパブリック リポジトリで無料で利用できます。 GitHub Enterprise Cloud を使い、GitHub Advanced Security のライセンスを持っている組織は、プライベート リポジトリと内部リポジトリに対して ユーザーに対するシークレット スキャンニング アラート を有効にすることもできます。 詳細については、「シークレット スキャンについて」と「GitHub Advanced Security について」を参照してください。

GitHub Advanced Security の無料試用については、「GitHub Advanced Security の無料試用版を設定する」を参照してください。

  1. リポジトリのメイン ページから、 [設定] をクリックします。

  2. [コードのセキュリティと分析] をクリックします。

  3. まだ GitHub Advanced Security が有効になっていない場合は、 [有効にする] をクリックします。

  4. Secret scanning の横にある [有効化] をクリックします。

セキュリティポリシーの設定

リポジトリの保守管理者であれば、リポジトリに SECURITY.md という名前のファイルを作成して、リポジトリのセキュリティ ポリシーを指定することをお勧めします。 このファイルは、ユーザーがリポジトリのセキュリティ脆弱性を報告したいときに、リポジトリの保守管理者と連絡を取って共同作業を行うにはどうすれば一番良いかを指示します。 リポジトリのセキュリティ ポリシーは、リポジトリの [Security] タブから確認できます。

  1. リポジトリのメイン ページから、 [セキュリティ] をクリックします。
  2. [セキュリティ ポリシー] をクリックします。
  3. [Start setup] (セットアップの開始) をクリックします。
  4. プロジェクトのサポートされているバージョンに関する情報と、脆弱性の報告方法に関する情報を追加してください。

詳しくは、「リポジトリへのセキュリティ ポリシーの追加」を参照してください。

次の手順

セキュリティの機能からのアラートを表示及び管理して、コード中の依存関係と脆弱性に対処できます。 詳細については、「Dependabot アラートの表示と更新」、「依存関係の更新に関するPull Requestを管理する」、「リポジトリのコード スキャンのアラートを管理する」、「シークレット スキャンからのアラートの管理」を参照してください。

また、GitHub のツールを使用して、セキュリティ アラートへの応答を監査することもできます。 詳細については、「セキュリティ アラートの監査」を参照してください。

セキュリティの脆弱性があるなら、セキュリティ アドバイザリを作成して非公開で議論し、脆弱性を修正できます。 詳細については、「リポジトリ セキュリティ アドバイザリについて」および「リポジトリ セキュリティ アドバイザリの作成」を参照してください。