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