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