Note
この機能を使用するには、サイト管理者が お使いの GitHub Enterprise Server インスタンスの Dependabot updatesを設定する必要があります。 詳しくは、「エンタープライズ向けの Dependabot の有効化」をご覧ください。
Enterprise 所有者が Enterprise レベルでポリシーを設定している場合、Dependabot updates を有効または無効にできない場合があります。 詳しくは、「エンタープライズのコード セキュリティと分析のためのポリシーの適用」をご覧ください。
リポジトリの [Dependabot alerts] タブには、オープンおよびクローズされたすべての Dependabot alerts や対応する Dependabot security updates が一覧表示されます。 パッケージ、エコシステム、マニフェストでアラートをフィルター処理できます。 アラートの一覧を並べ替えたり、特定のアラートをクリックしてその詳細を表示したりできます。 アラートを 1 つずつ、または複数のアラートを一度に選択して、閉じるか、再度開くこともできます。 詳しくは、「Dependabot アラートについて」をご覧ください。
Dependabot alerts と依存関係グラフを使用するリポジトリの自動セキュリティ アップデートを有効にすることができます。 詳しくは、「Dependabot のセキュリティ アップデート」をご覧ください。
リポジトリ内の脆弱性のある依存関係の更新について
コードベースの既定のブランチで既知のセキュリティ リスクのある依存関係を使っていることが検出されると、GitHub によって Dependabot alerts が生成されます。 Dependabot security updates が有効なリポジトリの場合、GitHub によって既定のブランチで脆弱な依存関係が検出されると、修正する pull request が Dependabot によって作成されます。 プルリクエストは、脆弱性を回避するために必要最低限の安全なバージョンに依存関係をアップグレードします。
Dependabot では、マルウェアに対する Dependabot alertsは生成されません。 詳しくは、「GitHub Advisory Database について」をご覧ください。
各 Dependabot アラートには一意の数値識別子があり、[Dependabot alerts] タブには、検出された各脆弱性に対するアラートが一覧表示されます。 従来の Dependabot alertsでは、依存関係ごとに脆弱性がグループ化され、依存関係ごとに 1 つのアラートが生成されていました。 従来の Dependabot アラートに移動すると、そのパッケージに対してフィルター処理された [Dependabot alerts] タブにリダイレクトされます。
ユーザー インターフェイスで使用できるさまざまなフィルターと並べ替えオプションを使って、Dependabot alerts をフィルター処理して並べ替えることができます。 詳しくは、以下の「Dependabot alerts の優先順位付け」を参照してください。
Dependabot アラートに応答するために行われたアクションを監査することもできます。 詳しくは、「セキュリティ アラートの監査」をご覧ください。
Dependabot alertsの優先順位付け
GitHub は、Dependabot alertsの修正の優先順位を付けるのに役立ちます。 既定では、Dependabot alerts は重要度で並べ替えられています。 "最重要" 並べ替え順序は、最初に注目する Dependabot alertsの優先順位を付けるのに役立ちます。 アラートは、潜在的な影響、実用性、関連性に基づいてランク付けされます。 Github の優先順位付けの計算は常に改善されており、CVSS スコア、依存関係スコープ、アラートに対して脆弱な関数呼び出しが見つかるかどうかなどの要因が含まれています。 Dependabot 自動トリアージ ルール を使って、Dependabot alerts を優先することもできます。 詳しくは、「Dependabot 自動トリアージ ルールについて」をご覧ください。
検索バーにフィルターを key:value
ペアとして入力すると、Dependabot alerts を並べ替えたりフィルター処理したりすることができます。
オプション | 説明設定 | 例 |
---|---|---|
ecosystem | 選んだエコシステムのアラートを表示します | ecosystem:npm を使用して npm の Dependabot alerts を表示します |
has | 選んだフィルター条件を満たすアラートを表示します | has:patch を使用して、パッチのあるアドバイザリに関連するアラートを表示します |
is | 状態に基づいてアラートを表示します | is:open を使用して、開いているアラートを表示します |
manifest | 選んだマニフェストのアラートを表示します | manifest:webwolf/pom.xml を使用して、Webwolf アプリケーションの pom.xml ファイルにアラートを表示します |
package | 選んだパッケージのアラートを表示します | package:django を使用して、django のアラートを表示します |
resolution | 選んだ解決状態のアラートを表示します | resolution:no-bandwidth を使用して、リソースまたは修正時間が足りなかったために以前にパークされたアラートを表示します |
repo | 関連するリポジトリに基づいてアラートを表示します このフィルターは、セキュリティの概要でのみ使用できる点にご注意ください。 詳細については、「セキュリティの概要について」を参照してください | repo:octocat-repo を使用して、呼び出された octocat-repo リポジトリにアラートを表示します。 |
scope | 関連する依存関係のスコープに基づいてアラートを表示します | scope:development を使用して、開発中にのみ使用される依存関係のアラートを表示します |
severity | 重大度のレベルに基づいてアラートを表示します | severity:high を使用して、重大度が高いアラートを表示します |
sort | 選んだ並べ替え順序に従ってアラートを表示します | アラートの既定の並べ替えオプションは sort:most-important であり、重要度でアラートが優先度付けされますDependabot から報告された最新のアラートを表示するには、 sort:newest を使います |
検索バーで使用できるフィルターに加えて、アラート一覧の上部にあるドロップダウン メニューを使用して、Dependabot alertsを並べ替えたりフィルター処理したりできます。 または、ラベルでフィルター処理する場合、アラートに割り当てられているラベルをクリックすると、そのフィルターがアラート一覧に自動的に適用されます。
検索バーでは、アラートと関連するセキュリティ アドバイザリのフルテキスト検索も可能です。 セキュリティ アドバイザリの名前または説明の一部を検索して、そのセキュリティ アドバイザリに関連するリポジトリのアラートを返すことができます。 たとえば、yaml.load() API could execute arbitrary code
を検索すると、アドバイザリの説明に検索文字列が表示されるので、「PyYAML によって安全でない方法で YAML 文字列が逆シリアル化され、任意のコード実行につながります」にリンクされた Dependabot alerts が返されます。
REST API を使って、リポジトリ、organization、または Enterprise 向けに、選んだフィルターを使って並べ替えられた Dependabot alerts の一覧を取得することもできます。 API エンドポイントの詳細については、「Dependabot alerts 用の REST API エンドポイント」を参照してください。
依存関係スコープでサポートされるエコシステムとマニフェスト
次の表は、依存関係スコープがさまざまなエコシステムとマニフェストでサポートされているかどうか、つまり、Dependabot で依存関係が開発または生産に使われていることを識別できるかどうかまとめたものです。
Language | エコシステム | マニフェスト ファイル | 依存関係スコープがサポートされている |
---|---|---|---|
Dart | pub | pubspec.yaml | |
Dart | pub | pubspec.lock | |
Go | Go モジュール | go.mod | いいえ、既定値はランタイムです |
Java | Maven | pom.xml | test は開発にマップされ、それ以外のスコープは既定でランタイムにマップされます |
JavaScript | npm | package.json | |
JavaScript | npm | package-lock.json | |
JavaScript | npm | pnpm-lock.yaml | |
JavaScript | yarn v1 | yarn.lock | いいえ、既定値はランタイムです |
PHP | Composer | composer.json | |
PHP | Composer | composer.lock | |
Python | Poetry | poetry.lock | |
Python | Poetry | pyproject.toml | |
Python | pip | requirements.txt | filename に test または dev が含まれている場合、スコープは開発です。それ以外の場合はランタイムです |
Python | pip | pipfile.lock | |
Python | pip | pipfile | |
Ruby | RubyGems | Gemfile | |
Ruby | RubyGems | Gemfile.lock | いいえ、既定値はランタイムです |
Rust | Cargo | Cargo.toml | |
Rust | Cargo | Cargo.lock | いいえ、既定値はランタイムです |
YAML | GitHub のアクション | - | いいえ、既定値はランタイムです |
.NET (C#、F#、VB など) | NuGet | .csproj / .vbproj .vcxproj / .fsproj | いいえ、既定値はランタイムです |
.NET | NuGet | packages.config | いいえ、既定値はランタイムです |
.NET | NuGet | .nuspec | タグ != ランタイムの場合 |
開発時の依存関係として一覧表示されるパッケージに対するアラートは、Dependabot alerts ページに Development
ラベルでマークされて表示され、scope
フィルターでフィルター処理することもできます。
開発スコープ パッケージに対するアラートのアラート詳細ページには、Development
ラベルを含む [タグ] セクションが表示されます。
Dependabot alerts の表示
リポジトリのDependabot alertsタブの開いた・閉じたすべてのDependabot alertsおよび対応するDependabot security updatesを表示できます。 ドロップダウン メニューからフィルターを選択することで、Dependabot alerts を並べ替えてフィルター処理できます。
組織が所有するリポジトリのすべてまたはサブセットのアラートの概要を表示するには、セキュリティの概要を使用します。 詳しくは、「セキュリティの概要について」を参照してください。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
-
セキュリティの概要の [脆弱性アラート] サイド バーで、 [Dependabot] をクリックします。 このオプションがない場合は、セキュリティ アラートにアクセスできないため、アクセス権を付与する必要があることを意味します。 詳細については、「リポジトリのセキュリティと分析設定を管理する」を参照してください
-
必要に応じて、アラートをフィルター処理するには、ドロップダウン メニューでフィルターを選び、適用するフィルターをクリックします。 検索バーにフィルターを入力することもできます。 または、ラベルでフィルター処理する場合、アラートに割り当てられているラベルをクリックすると、そのフィルターがアラート一覧に自動的に適用されます。 アラートのフィルター処理と並べ替えについて詳しくは、「Dependabot alerts の優先順位付け」を参照してください。
-
表示するアラートをクリックします。
-
必要に応じて、関連するセキュリティ アドバイザリの改善を提案するには、アラート詳細ページの右側にある [GitHub Advisory Database でこのアドバイザリの改善を提案する] をクリックします。 詳しくは、「GitHub Advisory Database でのセキュリティ アドバイザリの編集」をご覧ください。
アラートの確認と修正
すべての依存関係にセキュリティ上の弱点がないことを確認することが重要です。 Dependabot で依存関係の脆弱性が検出された場合は、プロジェクトの露出レベルを評価し、アプリケーションをセキュリティで保護するために実行する修復手順を決定する必要があります。
依存関係の修正プログラムが適用されたバージョンを利用できる場合は、Dependabot pull request を生成して、Dependabot アラートからこの依存関係を直接更新できます。 Dependabot security updatesが有効になっている場合は、Dependabot アラートで Pull Request がリンクされている可能性があります。
修正プログラムが適用されたバージョンが利用できない場合や、セキュリティで保護されたバージョンに更新できない場合は、Dependabot によって追加情報が共有され、次の手順を決定できます。 Dependabot アラートをクリックして表示すると、影響を受ける関数を含め、依存関係に関するセキュリティ アドバイザリの詳細情報を確認できます。 これにより、自分のコードが、影響を受ける関数を呼び出すかどうかを確認できます。 この情報は、リスク レベルをさらに厳密に評価し、回避策を決定したり、セキュリティ アドバイザリによって表されるリスクを受け入れられるかどうかを判断したりするのに役立ちます。
脆弱性のある依存関係を修正する
-
アラートの詳細を表示します。 詳しくは、「Dependabot alerts の表示」 (上記) を参照してください。
-
Dependabot security updatesが有効になっている場合は、依存関係を修正する Pull Request へのリンクが存在する可能性があります。 または、アラートの詳細ページの上部にある [Dependabot セキュリティ更新プログラムを作成する] をクリックして Pull Request を作成することもできます。
-
Dependabot security updatesを使用しない場合は、必要に応じて、ページの情報を使用してアップグレード先の依存関係のバージョンを決定し、セキュリティで保護されたバージョンに依存関係を更新する Pull Request を作成することができます。
-
依存関係を更新して脆弱性を解決する準備ができたら、プルリクエストをマージしてください。
Dependabot によって発行される各プル リクエストには、Dependabot の制御に使用できるコマンドの情報が含まれています。 詳しくは、「依存関係の更新に関するPull Requestを管理する」をご覧ください。
Dependabot alertsを無視する
Note
無視できるのは、オープン アラートのみです。
依存関係をアップグレードするための広範な作業をスケジュールする場合や、アラートを修正する必要がないと判断した場合は、アラートを無視できます。 既に評価済みのアラートを無視すると、新しいアラートが表示されたときに簡単にトリアージできます。
-
アラートの詳細を表示します。 詳しくは、「脆弱性のある依存関係を表示する」 (上記) を参照してください。
-
[無視する] ドロップダウンを選び、アラートを無視する理由をクリックします。 修正されていない無視されたアラートは、後で再度開くことができます。
-
必要に応じて、無視のコメントを追加します。 無視のコメントはアラート タイムラインに追加され、監査と報告の間に正当な理由として使用できます。 GraphQL API を使用して、コメントを取得または設定できます。 コメントは
dismissComment
フィールドに含まれています。 詳しくは、GraphQL API ドキュメントの「オブジェクト」を参照してください。 -
[アラートを無視] をクリックします。
複数のアラートを一度に却下する
- オープンの Dependabot alerts を表示します。 詳しくは、「Dependabot アラートの表示と更新」をご覧ください。
- 必要に応じて、ドロップダウン メニューを選び、適用するフィルターをクリックして、アラートの一覧をフィルター処理します。 検索バーにフィルターを入力することもできます。
- 各アラートのタイトルの左側で、無視するアラートを選びます。
- 必要に応じて、アラートの一覧の上部で、ページ上のすべてのアラートを選びます。
- [アラートを無視する] ドロップダウンを選び、アラートを無視する理由をクリックします。
クローズされたアラートの表示と更新
開いているすべてのアラートを表示し、以前に却下したアラートをもう一度開くことができます。 既に修復済みのクローズされたアラートをもう一度開くことはできません。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
-
セキュリティの概要の [脆弱性アラート] サイド バーで、 [Dependabot] をクリックします。 このオプションがない場合は、セキュリティ アラートにアクセスできないため、アクセス権を付与する必要があることを意味します。 詳細については、「リポジトリのセキュリティと分析設定を管理する」を参照してください
-
クローズされたアラートのみを表示するには、 [Closed] をクリックします。
-
表示または更新するアラートをクリックします。
-
必要に応じて、却下されたアラートを再度開く場合は、 [Reopen] をクリックします。 既に修正されたアラートをもう一度開くことはできません。
一度に複数のアラートをもう一度開く
- クローズされた Dependabot alerts を表示します。 詳しくは、「Dependabot アラートの表示と更新」 (上記) を参照してください。
- 各アラート タイトルの左で、各アラートの隣にあるチェックボックスをクリックし、再開するアラートを選びます。
- 必要に応じて、アラートの一覧の上部で、ページ上のすべてのクローズされたアラートを選びます。
- [再度開く] をクリックして、アラートをもう一度開きます。 既に修正されたアラートをもう一度開くことはできません。
Dependabot alerts の監査ログの確認
組織またはエンタープライズのメンバーが Dependabot alerts に関連するアクションを実行した場合は、監査ログでそのアクションを確認できます。 ログへのアクセスの詳細については、「Organization の Audit log をレビューする」と「企業の監査ログにアクセスする」を参照してください。
Dependabot alerts に関する監査ログのイベントには、だれがアクションを実行したか、何のアクションか、いつアクションを実行したか、などの詳細が含まれます。 イベントには、アラート自体へのリンクも含まれています。 組織のメンバーがアラートを無視すると、イベントに無視の理由とコメントが表示されます。 Dependabot alerts アクションの詳細については、「組織の監査ログ イベント」の repository_vulnerability_alert
カテゴリと「エンタープライズの監査ログ イベント」を参照してください。