はじめに
このガイドは、リポジトリでのセキュリティ機能の設定方法を紹介します。 リポジトリのセキュリティ設定を構成するには、リポジトリ管理者かOrganizationのオーナーでなければなりません。
セキュリティの要件はリポジトリに固有のものなので、リポジトリですべての機能を有効化する必要はないかもしれません。 詳しくは、「GitHub セキュリティ機能」を参照してください。
一部の機能は、すべてのプランのリポジトリに使用できます。 その他の機能は、GitHub Advanced Security を使うエンタープライズに使用できます。 GitHub Advanced Security の機能は、GitHub のすべてのパブリック リポジトリでも有効になります。詳しくは、「GitHub Advanced Security について」を参照してください。
リポジトリへのアクセスの管理
リポジトリを保護するための最初の手順は、誰がコードを表示および変更できるかを確立することです。 詳しくは、「リポジトリの設定と機能を管理する」を参照してください。
リポジトリのメイン ページから、 [設定] をクリックし、[危険区域] まで下にスクロールします。
- リポジトリを表示できるユーザーを変更するには、 [可視性の変更] をクリックします。 詳しくは、「リポジトリの可視性を設定する」を参照してください。
- リポジトリにアクセスできるユーザーを変更し、権限を調整するには、 [アクセスの管理] をクリックします。 詳細については、「リポジトリへのアクセス権を持つ Team と人を管理する」を参照してください。
依存関係グラフの管理
依存関係グラフは、すべてのパブリック リポジトリに対して自動的に生成されます。 フォークとプライベート リポジトリに対して、それを有効にすることを選べます。依存関係グラフでは、リポジトリ内のマニフェストとロック ファイルが解釈されて依存関係が識別されます。
- リポジトリのメイン ページから、 [設定] をクリックします。
- [セキュリティと分析] をクリックします。
- 依存関係グラフの横にある [有効化] または [無効化] をクリックします。
詳しくは、「リポジトリの依存関係を調べる」を参照してください。
Dependabot alertsの管理
GitHub によって脆弱性のある依存関係が依存関係グラフで特定されたときに、Dependabot alerts が生成されます。 任意のリポジトリに対して、Dependabot alerts を有効にすることができます。
さらに、Dependabot 自動トリアージ ルール を使用してアラートを大規模に管理できるため、アラートを自動的に閉じたりスヌーズしたりして、pull requestを開く Dependabot アラートを指定できます。 さまざまな種類の自動トリアージ ルールと、およびリポジトリが適格かどうかについては、「Dependabot 自動トリアージ ルールについて」を参照してください。
Dependabot によって提供されるさまざまな機能の概要と、開始方法の手順については、「Dependabot クイックスタート ガイド」を参照してください。
- プロファイル写真をクリックし、 [設定] をクリックします。
- [セキュリティと分析] をクリックします。
- Dependabot alerts の横にある [すべて有効にする] をクリックします。
詳細については、「Dependabot アラートについて」と「個人アカウントのセキュリティと分析設定を管理する」を参照してください。
依存関係レビューの管理
依存関係レビューを使うと、Pull Requestがリポジトリにマージされる前に、Pull Request内での依存関係の変化を可視化できます。 詳しくは、「依存関係の確認について」を参照してください。
依存関係レビューは GitHub Advanced Security 機能です。 依存関係レビューは、すべてのパブリック リポジトリに対して既に有効になっています。 プライベートまたは内部リポジトリに依存関係レビューを有効にするには、依存関係グラフが有効になっていることを確認し、GitHub Advanced Securityを有効にします。
- リポジトリのメイン ページから、 [設定] をクリックします。
- [セキュリティと分析] をクリックします。
- 依存関係グラフがまだ有効になっていない場合、[有効化] をクリックします。
- まだ GitHub Advanced Security が有効になっていない場合は、 [有効化] をクリックします。
Dependabot security updatesの管理
Dependabot alertsを使用するリポジトリでは、Dependabot security updatesを有効化して脆弱性が検出された際にセキュリティ更新でPull Requestを発行させることができます。
- リポジトリのメイン ページから、 [設定] をクリックします。
- [セキュリティと分析] をクリックします。
- Dependabot security updates の横にある [有効化] をクリックします。
詳細については、「Dependabot のセキュリティ アップデート」および「Configuring Dependabot security updates (Dependabot セキュリティ アップデートの構成)」を参照してください。
Dependabot version updatesの管理
Dependabotを有効化して、依存関係を最新の状態に保つためのPull Requestを自動的に発行するようにできます。 詳しくは、「GitHub Dependabot のバージョンアップデートについて」を参照してください。
- リポジトリのメイン ページから、 [設定] をクリックします。
- [セキュリティと分析] をクリックします。
- Dependabot version updates
の横にある [有効] をクリックして、基本的な
dependabot.yml
構成ファイルを作成します。 - 更新する依存関係および、すべての関連する構成オプションを指定したら、ファイルをリポジトリにコミットします。 詳しくは、「Dependabot のバージョン アップデートの設定」を参照してください。
code scanning の構成
Note
Code scanning は、すべてのパブリック リポジトリで使用可能です。また、GitHub Advanced Security に対するライセンスを持つ Enterprise の一部である Organization が所有するプライベート リポジトリで使用可能です。
CodeQL 分析ワークフローまたはサードパーティ ツールを使ってリポジトリ内に格納されているコードの脆弱性とエラーを自動的に特定するように code scanning を構成できます。 リポジトリ内のプログラミング言語に応じて、デフォルトの設定を使用して code scanning と CodeQL を構成できます。この設定では、スキャンする言語、実行するクエリ スイート、および新しいスキャンをトリガーするイベントが GitHub によって自動的に決定されます。 詳しくは、「コード スキャンの既定セットアップの構成」を参照してください。
- リポジトリのメイン ページで、 [設定] をクリックします。
- サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。
- [Code scanning] セクションで [設定] を選び、 [既定] をクリックします。
- 表示されるポップアップ ウィンドウで、リポジトリの既定の構成設定を確認し、 [CodeQL を有効にする] をクリックします。
または、編集可能なワークフロー ファイルを生成する詳細設定を使用して、CodeQL を使用してcode scanningをカスタマイズすることもできます。 詳しくは、「コード スキャンの高度なセットアップの構成」を参照してください。
secret scanningの設定
Secret scanning は、次のリポジトリに使うことができます:
- パブリック リポジトリ (無料)
- GitHub Advanced Security が有効な で GitHub Enterprise Cloud を使用している組織のプライベート リポジトリと内部リポジトリ
- Enterprise Managed Users の GitHub Enterprise Cloud のユーザー所有リポジトリ
-
リポジトリのメイン ページから、 [設定] をクリックします。
-
[コードのセキュリティと分析] をクリックします。
-
まだ GitHub Advanced Security が有効になっていない場合は、 [有効にする] をクリックします。
-
Secret scanning の横にある [有効化] をクリックします。
セキュリティポリシーの設定
リポジトリの保守管理者であれば、リポジトリに SECURITY.md
という名前のファイルを作成して、リポジトリのセキュリティ ポリシーを指定することをお勧めします。 このファイルは、ユーザーがリポジトリのセキュリティ脆弱性を報告したいときに、リポジトリの保守管理者と連絡を取って共同作業を行うにはどうすれば一番良いかを指示します。 リポジトリのセキュリティ ポリシーは、リポジトリの [Security] タブから確認できます。
- リポジトリのメイン ページから、 [セキュリティ] をクリックします。
- [セキュリティ ポリシー] をクリックします。
- [Start setup] (セットアップの開始) をクリックします。
- プロジェクトのサポートされているバージョンに関する情報と、脆弱性の報告方法に関する情報を追加してください。
詳しくは、「リポジトリへのセキュリティ ポリシーの追加」を参照してください。
次の手順
セキュリティの機能からのアラートを表示及び管理して、コード中の依存関係と脆弱性に対処できます。 詳細については、「Dependabot アラートの表示と更新」、「依存関係の更新に関するPull Requestを管理する」、「リポジトリのコード スキャンのアラートの評価」、「シークレット スキャンからのアラートの管理」をご覧ください。
また、GitHub のツールを使用して、セキュリティ アラートへの応答を監査することもできます。 詳しくは、「セキュリティ アラートの監査」をご覧ください。
パブリック リポジトリ内にセキュリティの脆弱性がある場合は、セキュリティ アドバイザリを作成して非公開で議論し、脆弱性を修正できます。 詳細については、「リポジトリ セキュリティ アドバイザリについて」および「リポジトリ セキュリティ アドバイザリの作成」を参照してください。
GitHub Actionsを使用する場合、GitHubのセキュリティ機能を使用して、ワークフローのセキュリティを強化できます。 詳しくは、「GitHub のセキュリティ機能を使用して GitHub Actions の使用をセキュリティで保護する」を参照してください。