Skip to main content
ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

Dependabotアラートの表示と更新

GitHub Enterprise Cloud がプロジェクト内の脆弱性のある依存関係を発見した場合は、それらをリポジトリの [Dependabot alerts] タブで確認できます。 その後、プロジェクトを更新してこの脆弱性を解決することができます。

Repository administrators and organization owners can view and update dependencies, as well as users and teams with explicit access.

リポジトリのDependabotアラートタブには、オープン及びクローズされたすべてのDependabotアラート及び対応するDependabotセキュリティアップデートがリストされます。 アラートはパッケージ、エコシステム、マニフェストでフィルタリングできます。 また、アラートのリストはソートでき、特定のアラートをクリックして詳細を見ていくことができます。 詳しい情報については「Dependabotアラートについて」を参照してください。

Dependabotアラート と依存関係グラフを使用するリポジトリの自動セキュリティ更新を有効にすることができます。 詳しい情報については、「Dependabotセキュリティアップデート について」を参照してください。

加えて、 GitHubは、リポジトリのデフォルトブランチに対して作成されたPull Request中で追加、更新、削除された依存関係のレビューを行うことができ、プロジェクトに脆弱性をもたらすような変更にフラグを立てることができます。 これによって、脆弱な依存関係がコードベースに達したあとではなく、達する前に特定して対処できるようになります。 詳しい情報については「Pull Request中の依存関係の変更のレビュー」を参照してください。

リポジトリ内の脆弱性のある依存関係の更新について

コードベースが既知の脆弱性のある依存関係を使用していることを検出すると、GitHub Enterprise Cloud は Dependabotアラート を生成します。 Dependabotセキュリティアップデート が有効になっているリポジトリの場合、GitHub Enterprise Cloud がデフォルトのブランチで脆弱性のある依存関係を検出すると、Dependabot はそれを修正するためのプルリクエストを作成します。 プルリクエストは、脆弱性を回避するために必要最低限の安全なバージョンに依存関係をアップグレードします。

Dependabotアラートは、Dependabotアラートタブ内のドロップダウンメニューで、あるいは検索バーでkey:valueペアとしてフィルタを入力することで、ソートとフィルタリングできます。 利用できるフィルタはリポジトリ(たとえばrepo:my-repository)、パッケージ(たとえばpackage:django)、エコシステム(たとえばecosystem:npm)、マニフェスト(たとえばmanifest:webwolf/pom.xml)、ステータス(たとえばis:open)、アドバイザリがパッチを持っているか(たとえばhas: patch)です。

それぞれのDependabotアラートは一意の数値識別子を持っており、Dependabotアラートタブにはすべての検出された脆弱性に対するアラートがリストされます。 旧来のDependabotアラートは依存関係で脆弱性をグループ化し、依存関係ごとに1つのアラートを生成しました。 旧来のDependabotアラートにアクセスすると、そのパッケージでフィルタされたDependabotアラートタブにリダイレクトされます。

脆弱性のある関数の呼び出しの検出について

ノート:

  • The detection of calls to vulnerable functions by Dependabot is in beta and subject to change.

  • Detection of vulnerable calls is included in GitHub Enterprise Cloud for public repositories. To detect vulnerable calls in private repositories owned by organizations, your organization must have a license for GitHub Advanced Security. 詳しい情報については、「GitHub Advanced Security について」を参照してください。

Dependabotが、リポジトリが脆弱性のある依存関係を使っていることを知らせてきた場合、どの機能が脆弱性を持っているかを判断し、それらを使っているかどうかをチェックしなければなりません。 この情報が得られたら、依存関係のセキュアなバージョンへのアップグレードの必要性の緊急度が判断できます。

サポートされている言語については、Dependabotは自動的に脆弱性のある関数を使っているかを自動的に検出し、影響されているアラートに"Vulnerable call(脆弱性のある呼び出し)" というラベルを追加します。 Dependabotアラートビュー内のこの情報を使って、修復作業をより効率的にトリアージして優先順位付けできます。

ノート: ベータリリースの間、この機能は2022年4月14日以降に生成された新規のPythonアドバイザリと、過去のPythonのアドバイザリの一部に対してのみ有効です。 GitHubは、さらなる過去のPythonアドバイザリにさかのぼってデータを加えていっています。これは、随時追加されていっています。 脆弱性のある呼び出しは、Dependabotアラートページ上でのみハイライトされます。

"Vulnerable call"ラベルの付いたアラート表示のスクリーンショット

検索フィールドでhas:vulnerable-callsフィルタを使い、少なくとも1つの脆弱性のある関数の呼び出しをDependabotが検出したところでだけアラートを表示するよう、ビューをフィルタリングできます。

脆弱性のある呼び出しが検出されたアラートについては、アラートの詳細ページに追加情報が表示されます。

  • 関数が使用されている場所を示す1つ以上のコードブロック。
  • 関数自体をリストしているアノテーション。関数が呼ばれている行へのリンク付きで。

"Vulnerable call"ラベルの付いたアラートのアラート詳細ページを表示しているスクリーンショット

詳しい情報については以下の「脆弱性のある依存関係のレビューと修正」を参照してください。

脆弱性のある依存関係の表示

  1. GitHub.comで、リポジトリのメインページにアクセスしてください。
  2. リポジトリ名の下で Security(セキュリティ)をクリックしてください。 セキュリティのタブ
  3. セキュリティサイドバーで、Dependabotアラートをクリックしてください。 If this option is missing, it means you don't have access to security alerts and need to be given access. For more information, see "Managing security and analysis settings for your repository." Dependabotアラート tab
  4. あるいは、アラートをフィルタリングするには、Repository(リポジトリ)Package(パッケージ)Ecosystem(エコシステム)Manifest(マニフェスト)ドロップダウンメニューを選択し、続いて適用したいフィルタをクリックしてください。 検索バーにフィルタを入力することもできます。 たとえばecosystem:npmあるいはhas:patchといったようにです。 アラートをソートするにはSort(ソート)ドロップダウンメニューを選択し、ソートに使いたい選択肢をクリックしてください。 Dependabotアラートタブ中のフィルタ及びソートメニューのスクリーンショット
  5. 表示したいアラートをクリックしてください。 アラートリストで選択されたアラート

脆弱性のある依存関係のレビューと修正

すべての依存関係がセキュリティの弱点を確実に持たないようにすることが重要です。 Dependabotが脆弱性を依存関係に見つけた場合、プロジェクトの露出のレベルを評価し、アプリケーションをセキュアにするための修復ステップを決定しなければなりません。

パッチされたバージョンが利用できるなら、Dependabot Pull Requestを生成し、Dependabotアラートから直接その依存関係を更新できます。 Dependabotセキュリティアップデートを有効にしているなら、Pull RequestはDependabotアラートとリンクされるかもしれません。

パッチが適用されたバージョンが利用できない場合、あるいはセキュアなバージョンへ更新できない場合、Dependabotは次のステップを判断するための役に立つ追加情報を共有します。 Dependabotアラートを見るためにクリックしていくと、影響される関数を含む依存関係に対するセキュリティアドバイザリの完全な詳細を見ることができます。 そして、自分のコードが影響を受けた関数を呼び出しているかをチェックできます。 この情報は、リスクレベルをさらに評価し、回避策を決めたり、あるいはそのセキュリティ脆弱性が示すリスクを受け入れることができるかどうかを決めるための役に立ちます。

サポートされている言語では、Dependabotは脆弱性のある関数の呼び出しを検出してくれます。 "Vulnerable call(脆弱性のある呼び出し)"というラベルの付いたアラートを見ると、関数名とそれを呼び出しているコードへのリンクを含む詳細が含まれています。 多くの場合、それ以上調べることなくこの情報に基づいて判断を下すことができるでしょう。

脆弱性のある依存関係の修復

  1. アラートの詳細を表示させます。 詳しい情報については上の「脆弱性のある依存関係の表示」を参照してください。

  2. Dependabotセキュリティアップデートを有効にしているなら、その依存関係を修復するPull Requestへのリンクがあるかもしれません。 あるいは、アラートの詳細ページの上部にあるCreate Dependabot security updateをクリックして、Pull Requestを作成することもできます。 Dependabot セキュリティアップデートボタンを作成

  3. あるいは、Dependabotセキュリティアップデートを使っていないなら、ページにある情報を使ってアップグレードすべき依存関係のバージョンを判断し、セキュアなバージョンへ依存関係を更新するためのPull Requestを作成できます。

  4. 依存関係を更新して脆弱性を解決する準備ができたら、プルリクエストをマージしてください。

    Dependabot によって発行される各プルリクエストには、Dependabot の制御に使用できるコマンドの情報が含まれています。 詳しい情報については、「依存関係の更新に関するプルリクエストを管理する 」を参照してください。

Dependabotアラートの却下

依存関係のアップグレードのための広汎な作業をスケジュールしていたり、アラートを修正する必要はないと判断したりした場合、アラートを却下できます。 すでに評価済みのアラートを却下すると、新しいアラートが現れたときにトリアージしやすくなります。

  1. アラートの詳細を表示させます。 詳しい情報については上の「脆弱性のある依存関係の表示」を参照してください。
  2. "Dismiss(却下)"ドロップダウンを選択し、アラートを却下する理由をクリックしてください。却下された未修正のアラートは、後で再度オープンできます。 [Dismiss] ドロップダウンでアラートを却下する理由を選択する

クローズされたアラートの表示と更新

  1. GitHub.comで、リポジトリのメインページにアクセスしてください。
  2. リポジトリ名の下で Security(セキュリティ)をクリックしてください。 セキュリティのタブ
  3. セキュリティサイドバーで、Dependabotアラートをクリックしてください。 If this option is missing, it means you don't have access to security alerts and need to be given access. For more information, see "Managing security and analysis settings for your repository." Dependabotアラート tab
  4. クローズされたアラートを単に表示するにはClosed(クローズ済み)をクリックしてください。 "Closed"オプションを表示しているスクリーンショット
  5. 表示もしくは更新したいアラートをクリックしてください。 ハイライトされているdependabotアラートを表示しているスクリーンショット
  6. あるいはアラートが却下されていて、再度オープンしたい場合は、Reopen(再オープン)をクリックしてください。 "Reopen"ボタンを表示しているスクリーンショット