GitHub でのサプライ チェーンのセキュリティについて
オープン ソースの使用が急速に進んでおり、ほとんどのプロジェクトは数百ものオープンソース依存関係を利用しています。 これにより、セキュリティ上の問題が浮上します。もしも、使用している依存関係に脆弱性があるとしたら、どうなるでしょうか、 ユーザーをサプライ チェーン攻撃のリスクにさらす可能性があります。 サプライ チェーンを保護するために行うことができる最も重要なことの 1 つは、脆弱な依存関係にパッチを適用することです。
依存関係をサプライ チェーンに直接追加するときは、マニフェスト ファイルまたはロックファイルで指定します。 依存関係は推移的に含めることもできます。つまり、特定の依存関係を指定しなくても、使用している依存関係が別の依存関係を使用している場合は、その依存関係にも依存することになります。
GitHub AE には、環境内の依存関係を理解し、それらの依存関係の脆弱性を把握できるように、さまざまな機能が用意されています。
GitHub AE のサプライ チェーン機能は次のとおりです。
- 依存関係グラフ
- 依存関係レビュー
- Dependabot alerts
依存関係グラフは、サプライ チェーンのセキュリティの中心です。 依存関係グラフによって、リポジトリまたはパッケージについて、すべてのアップストリーム依存関係とパブリック ダウンストリーム依存関係が識別されます。 リポジトリの依存関係とそのプロパティの一部 (脆弱性情報など) を、そのリポジトリの依存関係グラフで確認できます。
GitHub の他のサプライ チェーン機能は、依存関係グラフで提供される情報を利用します。
- 依存関係レビューは、依存関係グラフを使用して依存関係の変更を特定し、ユーザーが pull request を確認するときにそれらの変更がセキュリティに及ぼす影響を理解するのに役立ちます。
- Dependabot は、依存関係グラフによって提供される依存関係データと GitHub Advisory Database で公開されるアドバイザリの一覧を相互参照し、依存関係をスキャンして、潜在的な脆弱性が検出されると Dependabot alertsを生成します。
機能の概要
依存関係グラフとは
依存関係グラフを生成するために、GitHub は、マニフェストやロックファイルで宣言されているリポジトリの明示的な依存関係を調べます。 有効にすると、依存関係グラフはリポジトリ内のすべての既知のパッケージ マニフェスト ファイルを自動的に解析し、これを使用して既知の依存関係の名前とバージョンを含むグラフを作成します。
- 依存関係グラフには、"直接" 依存関係と "推移的" 依存関係の情報が含まれます。
- 依存関係グラフが自動的に更新されるのは、サポートされるマニフェストまたはロック ファイルを既定ブランチに対して変更または追加するプッシュを GitHub にコミットするとき、およびご使用の依存関係のいずれかのリポジトリに対して任意のユーザーが変更をプッシュするときです。
- 依存関係グラフを表示するには、GitHub AE 上でリポジトリのメイン ページを開いて [分析情報] タブに移動します。
依存関係グラフについて詳しくは、「依存関係グラフについて」をご覧ください。
依存関係レビューとは
依存関係レビューは、レビュー担当者と共同作成者が、すべての pull request における依存関係の変更とそのセキュリティへの影響を理解するのに役立ちます。
- 依存関係レビューでは、pull request で追加、削除、または更新された依存関係がわかります。 リリース日、依存関係の評判、脆弱性情報を使用して、変更を受け入れるかどうかを判断できます。
- pull request の依存関係レビューは、 Files Changed タブの詳しい差分を表示すると確認できます。
依存関係レビューについて詳しくは、「依存関係の確認について」をご覧ください。
Dependabot とは
Dependabot は、依存関係のセキュリティ脆弱性をユーザーに通知しすることで、ご使用の依存関係を最新状態に保ちます。こうしてユーザーが依存関係を更新できるようにします。
GitHub Actions では、GitHub AE で実行するために Dependabot alertsは必要ありません。
Dependabot アラートとは
Dependabot alertsは、依存関係グラフと GitHub Advisory Database (既知の脆弱性に関するアドバイザリを含む) に基づいて、新しく検出された脆弱性の影響を受けるリポジトリを強調表示します。
- Dependabot は、次の場合に、スキャンを実行して安全ではない依存関係を検出し、Dependabot alertsを送信します。
- 新しいアドバイザリ データが GitHub.com から 1 時間ごとに ご自分のエンタープライズ に同期されたとき。 詳しくは、「GitHub Advisory Database でのセキュリティ アドバイザリの参照」を参照してください。
- リポジトリの依存関係グラフが変更されたとき。
- Dependabot alertsが、リポジトリの依存関係グラフに表示されたとき。 アラートには、固定バージョンに関する情報が含まれます。
詳しくは、「Dependabot アラートについて」を参照してください。
使用可能な機能
- 依存関係グラフおよび Dependabot alerts — 既定で有効になっていません。 どちらの機能も、エンタープライズ所有者によってエンタープライズ レベルで構成されます。 詳細については、「エンタープライズ向けの Dependabot の有効化」を参照してください。
- 依存関係レビュー— ご自分のエンタープライズに対して依存関係グラフが有効になっており、Advanced Security が組織またはリポジトリで有効になっている場合に使用できます。 詳しくは、「GitHub Advanced Security について」を参照してください。