Dependabot alerts により、コードが安全でないパッケージに依存していることが通知されます。 多くの場合、ソフトウェアは、さまざまなソースのオープンソース コード パッケージを使用して構築されます。 これらの依存関係間の複雑な関係や、悪意のあるアクターがアップストリーム コードにマルウェアを挿入しやすいというとは、セキュリティ上の欠陥がある依存関係 (脆弱性とも呼ばれます) を知らずに使用している可能性があります。
セキュリティ上の脆弱性があるパッケージにコードが依存している場合、プロジェクトまたはそれを使用するユーザーにさまざまな問題が発生する可能性があります。 脆弱なパッケージを使用すると、システムを悪用しようとしている悪意のあるユーザーのソフト ターゲットになります。 たとえば、顧客や共同作成者からコードやデータへのアクセスを求める場合があります。 セキュリティで保護されたバージョンのパッケージにできるだけ早くアップグレードする必要があります。 コードでマルウェアが使用されている場合は、パッケージを安全な代替手段に置き換える必要があります。
Dependabot では、マルウェアに対する Dependabot alertsは生成されません。 詳しくは、「GitHub Advisory Database について」を参照してください。
Dependabot によって提供されるさまざまな機能の概要と、開始方法の手順については、「Dependabot クイックスタート ガイド」を参照してください。
安全でない依存関係を検出する
Dependabot により、安全でない依存関係を検出するためにリポジトリのデフォルト ブランチ スキャンが実行され、以下の場合に Dependabot alertsが送信されます。
-
GitHub Advisory Database に新しいアドバイザリが追加されたとき。 詳細については、「GitHub Advisory Database でのセキュリティ アドバイザリの参照」を参照してください。
Note
GitHub によってレビューされたアドバイザリのみが、Dependabot alertsをトリガーします。
-
リポジトリの依存関係グラフが変更された場合。 たとえば、共同作成者がコミットをプッシュして、依存しているパッケージまたはバージョンを変更したとき、またはいずれかの依存関係のコードが変更されたときなどです。 詳しくは、「依存関係グラフについて」を参照してください。
Note
Dependabot では、アーカイブされたリポジトリはスキャンされません。
さらに、GitHub は、リポジトリの既定のブランチに対して行われた pull request で追加、更新、削除される依存関係を確認し、プロジェクトのセキュリティを低下させる変更にフラグを立てることができます。 これにより、コードベースに達した後ではなくその前に、脆弱な依存関係を見つけて対処できます。 詳しくは、「プルリクエスト内の依存関係の変更をレビューする」を参照してください。
Dependabot alerts は依存関係グラフに依存するため、Dependabot alerts でサポートされているエコシステムは、依存関係グラフでサポートされているものと同じです。 これらのエコシステムの一覧については、「依存関係グラフでパッケージ エコシステムをサポート」を参照してください。
Note
マニフェストとロック ファイルを最新の状態に保つことが重要です。 依存関係グラフに現在の依存関係とバージョンが正確に反映されていない場合は、使用している安全でない依存関係のアラートを見逃す可能性があります。 また、使用しなくなった依存関係のアラートを受け取る場合もあります。
Dependabot は、セマンティック バージョン管理を使用する脆弱な GitHub Actions に対してのみ、Dependabot alerts を作成します。 SHA バージョン管理を使用する脆弱なアクションのアラートは受け取れません。 SHA バージョン管理で GitHub Actions を使用する場合は、リポジトリまたは組織に対して Dependabot version updates を有効にして、使用するアクションを最新バージョンに更新しておくことをおすすめします。
Dependabot alertsの構成について
GitHub は、パブリック リポジトリ内の脆弱な依存関係を検出し、依存関係グラフを表示しますが、既定では Dependabot alertsは生成されません。 リポジトリのオーナーまたは管理者アクセス権を持つユーザーは、パブリック リポジトリに対して Dependabot alertsを有効にすることができます。 プライベートリポジトリのオーナー、または管理アクセス権を持つユーザは、リポジトリの依存関係グラフと Dependabot alerts を有効にすることで、Dependabot alerts を有効化できます。
ユーザー アカウントまたは組織が所有するすべてのリポジトリの Dependabot alertsを有効または無効にすることもできます。 詳しくは、「Dependabot アラートの構成」を参照してください。
Dependabot alerts に関連するアクションのアクセス要件については、「Organizationのリポジトリロール」を参照してください。
GitHub で依存関係グラフの生成がすぐに始まり、安全でない依存関係が特定されるとすぐにアラートが生成されます。 グラフは通常数分以内に入力されますが、多くの依存関係を持つリポジトリの場合は時間がかかる場合があります。 詳しくは、「リポジトリのセキュリティと分析設定を管理する」を参照してください。
GitHub が脆弱な依存関係を識別すると、Dependabot アラートが生成され、リポジトリの [Security] (セキュリティ) タブとリポジトリの依存関係グラフにそれが表示されます。 アラートには、プロジェクト内で影響を受けるファイルへのリンクと、修正バージョンに関する情報が含まれています。
GitHub は、通知の設定に従って、影響を受けるリポジトリのメンテナに新しいアラートについて通知する場合もあります。Dependabot が最初に有効になっている場合、GitHub は、リポジトリで見つかったすべての脆弱な依存関係について通知を送信するのではなく、Dependabot が有効になった後に特定された新しい脆弱な依存関係に対してのみ、通知を送信します。詳しくは、「Dependabot アラートの通知を構成する」をご覧ください。
Dependabot security updatesをリポジトリに対して有効にしている場合、アラートには、脆弱性を解決する最小バージョンにマニフェストまたはロック ファイルを更新する pull request へのリンクも含まれる場合があります。 詳しくは、「Dependabot のセキュリティ アップデート」を参照してください。
さらに、Dependabot 自動トリアージ ルール を使用してアラートを大規模に管理できるため、アラートを自動的に閉じたりスヌーズしたりして、pull requestを開く Dependabot アラートを指定できます。 さまざまな種類の自動トリアージ ルールと、およびリポジトリが適格かどうかについては、「Dependabot 自動トリアージ ルールについて」を参照してください。
Warning
GitHub のセキュリティ機能は、すべての脆弱性をキャッチするものではありません。 GitHub Advisory Database は頻繁に更新されており、最新の情報を使用したアラートが生成されます。 ただし、すべてを捕捉することや、一定の期間内に確実に既知の脆弱性について通知することはできません。 これらの機能は、人間が各依存関係をレビューして、潜在的な脆弱性やその他のイシューを確認する作業の代わりになるものではありません。必要に応じて、セキュリティ サービスに相談したり、依存関係の詳しいレビューを実施したりすることをお勧めします。
Dependabot alertsへのアクセス
リポジトリの [セキュリティ] タブまたはリポジトリの依存関係グラフの特定のプロジェクトに影響するすべてのアラートを確認できます。 詳しくは、「Dependabot アラートの表示と更新」を参照してください。
デフォルトでは、新しいDependabot alertsに関して影響を受けるリポジトリに書き込み、保守、管理権限を持っている人に通知を行います。 GitHub は、いかなるリポジトリについても、安全でない依存関係を公開することはありません。 Dependabot alerts を、自分が所有または管理者権限を持っているリポジトリで作業している追加のユーザや Team に表示することもできます。 詳しくは、「リポジトリのセキュリティと分析設定を管理する」を参照してください。
リポジトリの Dependabot alerts に関する通知を受け取るには、これらのリポジトリを監視し、"すべてのアクティビティ" 通知を受け取るようにサブスクライブするか、"セキュリティ アラート" を含めるようにカスタム設定を構成する必要があります。 詳しくは、「通知を設定する」を参照してください。 通知の配信方法と、通知が送信される頻度を選択できます。詳細については、「Dependabot アラートの通知を構成する」を参照してください。
GitHub Advisory Database 内の特定のアドバイザリに対応するすべての Dependabot alertsを見ることもできます。 詳しくは、「GitHub Advisory Database でのセキュリティ アドバイザリの参照」を参照してください。