GitHub Enterprise Server の Dependabot について
Dependabot は、ユーザーが依存関係の脆弱性を見つけて修正するのに役立ちます。 最初に、Dependabot をEnterprise 向けに設定する必要があります。次に Dependabot alerts を有効にして脆弱な依存関係をユーザーに通知し、Dependabot updates を有効にして脆弱性を修正し、依存関係を更新して最新のバージョンに維持することができます。
Dependabot は、GitHub のサプライ チェーンのセキュリティを強化するために使用できる多くの機能の 1 つに過ぎません。 その他の機能の詳細については、「Enterprise のサプライ チェーンのセキュリティについて」を参照してください。
Dependabot alerts について
Dependabot alerts を使用して、GitHub ではリポジトリ内の安全でない依存関係を特定し、GitHub Advisory Database のデータと依存関係グラフ サービスを使用して、GitHub Enterprise Server にアラートを作成します。
アドバイザリは、以下のソースから GitHub Advisory Database に追加されます。
- GitHubで報告されたセキュリティアドバイザリ
- National Vulnerability Database
- npm セキュリティ アドバイザリ データベース
- FriendsOfPHP データベース
- Go Vulncheck データベース
- GitHub Packaging Advisory データベース
- Ruby Advisory データベース
- RustSec Advisory データベース
- コミュニティのコード提供。 詳細については、「https://github.com/github/advisory-database/pulls」を参照してください。
アドバイザリのインポート元として他のデータベースに心当たりがある場合は、https://github.com/github/advisory-database で issue をオープンしてお知らせください。
Enterprise 向けに Dependabotを設定すると、GitHub Advisory Database からインスタンスに脆弱性データが 1 時間に 1 回同期されます。 GitHub でレビューされたアドバイザリのみが同期されます。 詳しくは、「GitHub Advisory Database でのセキュリティ アドバイザリの参照」を参照してください。
また、脆弱性データはいつでも手動で同期することができます。 詳しくは、「エンタープライズの脆弱性データの表示」をご覧ください。
Note
Dependabot alerts を有効にすると、GitHub Enterprise Server のコードやコードに関する情報は、GitHub.com にアップロードされません。
GitHub Enterprise Server は、脆弱性に関する情報を受け取ると、影響を受けるバージョンの依存関係を使用するリポジトリを識別して、Dependabot alerts を生成します。 新しい Dependabot alerts についてユーザーに自動的に通知するかどうかを選択できます。
Dependabot alerts が有効になっているリポジトリの場合、マニフェスト ファイルまたはロック ファイルを含む既定のブランチへの任意のプッシュでスキャンがトリガーされます。 さらに新しい脆弱性レコードが追加されると、GitHub Enterprise Server ではすべての既存のリポジトリをスキャンし、脆弱なリポジトリについてのアラートを生成します。 詳しくは、「Dependabot アラートについて」をご覧ください。
Dependabot updates について
Dependabot alerts を有効にした後、Dependabot updates を有効にすることができます。 Dependabot updates が GitHub Enterprise Server に対して有効になっている場合、ユーザーはリポジトリを構成して、依存関係の更新とセキュリティ保護が自動的に行われるようにすることができます。
Note
GitHub Enterprise Server の Dependabot updates には、セルフホステッド ランナーを含む GitHub Actions が必要です。
既定では、Dependabot で使用される GitHub Actions ランナーは、上流パッケージ マネージャーから更新されたパッケージをダウンロードするために、インターネットにアクセスする必要があります。 GitHub Connect を利用する Dependabot updates の場合、インターネット アクセスにより、GitHub.com でホストされる依存関係とアドバイザリへのアクセスを可能にするトークンがランナーに提供されます。
インターネットへのアクセスが制限されている、またはできない GitHub Enterprise Server インスタンス上では、特定のプライベート レジストリに対して Dependabot updates を有効にすることができます。 詳しくは、「制限付きインターネット アクセスで動作するように Dependabot を構成する」をご覧ください。
Dependabot updates では、GitHub によって、依存関係を更新するためのプル要求が 2 つの方法で自動的に作成されます。
- Dependabot version updates : 追跡対象の依存関係の新しいバージョンがリリースされたときに Dependabot がプル要求を作成できるように、ユーザーは Dependabot 構成ファイルをリポジトリに追加します。 詳しくは、「GitHub Dependabot のバージョンアップデートについて」をご覧ください。
- Dependabot security updates : ユーザーは、GitHub でリポジトリの依存関係グラフのいずれかの依存関係で脆弱性が検出されたときに、Dependabot がプル要求を作成できるようにリポジトリ設定を切り替えます。 詳細については、「Dependabot アラートについて」および「Dependabot のセキュリティ アップデート」を参照してください。
Dependabot alerts の有効化
Dependabot alerts を有効にする前に、まず Enterprise 向けに Dependabot を設定する必要があります:
- GitHub Connect を有効にする必要がある。 詳しくは、「GitHub.com での GitHub Connect の有効化」をご覧ください。
- 依存関係グラフを有効にする必要がある。 詳しくは、「企業の依存関係グラフの有効化」をご覧ください。
-
GitHub Enterprise Server の右上で、ご自分のプロフィール フォトをクリックしてから、 [Enterprise 設定] をクリックします。
-
[Enterprise アカウント] サイドバーで、 [GitHub Connect] をクリックします。
-
[Dependabot] の [定期的に GitHub Advisory Database をダウンロードしてユーザーがオープン ソース コードの依存関係の脆弱性アラートを受信できるようにする] の右側のドロップダウン メニューを選び、 [通知なしで有効にする] をクリックしてください。 必要に応じて、通知ありでアラートを有効にするには、 [有効 (通知あり)] をクリックします。
Note
この設定では、リアルタイムの電子メール通知および Web 通知のみが制御されます。 選択されているオプションに関係なく、コマンド ライン インターフェイス (CLI) の警告とメール ダイジェストは引き続き配信されます。
Tip
リアルタイム通知の過負荷を避けるため、最初の数日間は Dependabot alerts を通知なしに設定することをお勧めします。 数日後、通知を有効化して、通常どおり Dependabot alerts を受信できます。
[Code security] の Enterprise 設定ページで、既存または新規のすべてのプライベートおよび内部リポジトリに対して Dependabot alerts を有効にできるようになりました。また、リポジトリ管理者と organization 所有者は、個々のリポジトリと organization の Dependabot alerts を有効にすることができます。 パブリック リポジトリは常に既定で有効になっています。 詳しくは、「Dependabot アラートの構成」をご覧ください。
Dependabot updates の有効化
Dependabot updates を有効にする前に、次の内容を行なってください。
- 企業に Dependabot alerts を有効にします。 詳細については、上記の「Dependabot alerts を有効にする」を参照してください。
- TLS を有効にする必要があります。 Dependabot updates は、TLS を有効にする必要があるセルフホスト ランナーで実行されます。 詳しくは、「企業向けセルフホスト ランナーの概要」をご覧ください。
- セルフホスト ランナーで GitHub Actions を使用するには、GitHub Enterprise Server を構成する必要があります。 詳しくは、「GitHub Enterprise Server の GitHub Actions を使い始める」をご覧ください。
エンタープライズでクラスタリングを使用している場合、Dependabot updates は GitHub Enterprise Server ではサポートされません。
Note
依存関係グラフを有効にすると、Dependabot アクションを使用できるようになります。 脆弱性や無効なライセンスが導入される場合、アクションではエラーが発生します。 アクションの詳細と、最新バージョンをダウンロードする方法の手順については、「公式のバンドルされたアクションの最新バージョンを使用する」を参照してください。
-
http(s)://HOSTNAME/login
で お使いの GitHub Enterprise Server インスタンス にサインインします。 -
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[設定] サイドバーで [セキュリティ] をクリックします。
-
[セキュリティ] で、 Dependabot security updates を選択します。
-
[設定] サイドバーで [設定の保存] をクリックします。
Note
[Management Console] で設定を保存すると、システム サービスが再起動され、ユーザーにわかるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
-
[Visit your instance](インスタンスにアクセスする) をクリックします。
-
依存関係を更新する pull request を作成するように、専用セルフホステッド ランナーを構成します。 これは、ワークフローで特定のランナー ラベルが使われるために必要です。 詳しくは、「エンタープライズでの Dependabot 更新プログラムのセルフホステッド ランナーの管理」をご覧ください。
-
GitHub Enterprise Server の右上で、ご自分のプロフィール フォトをクリックしてから、 [Enterprise 設定] をクリックします。
-
[Enterprise アカウント] サイドバーで、 [GitHub Connect] をクリックします。
-
[Dependabot] で、[ユーザーは脆弱でないオープン ソース コードの依存関係に簡単にアップグレードできる] の右側にある [有効] をクリックします。
Dependabot alerts を有効にする場合は、Dependabot security updates に対して GitHub Actions を設定することも検討する必要があります。 この機能により、開発者は依存関係の脆弱性を修正できます。 詳しくは、「エンタープライズでの Dependabot 更新プログラムのセルフホステッド ランナーの管理」をご覧ください。
セキュリティを強化する必要がある場合は、プライベート レジストリを使用するように Dependabot を構成することをお勧めします。 詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」をご覧ください。