Dependabot PR 自動トリアージ
概要
Takumi は Dependabot の自動トリアージ に対応しています。Dependabot が作成したプルリクエスト (PR) を自動で精査し、セキュリティ的な観点から対応する必要があるかどうかを判断します。
継続的な依存関係の更新はセキュリティの向上に役立ちますが、大量に生成された PR を一つ一つ手動で確認し、セキュリティリスクがないかを分析することは大きな負担となります。Takumi は、人間の代わりに自動的かつ迅速にセキュリティ分析を行い、リスクを検知・判断することで、この課題を解決します。
設計思想
Takumi による自動トリアージは、公開されている脆弱性情報と、お客様のソースコードを読み解くホワイトボックス検証などを組み合わせた独自のアプローチに基づいています。
本機能は 脆弱性を見逃さない ことを最優先に開発しています。なぜなら、重大な脆弱性の見逃しはセキュリティインシデントに直結する可能性を高め、その対応コストは誤検知を確認するコストを大幅に上回るためです。そのため、安全な更新についても「問題がある可能性がある」と報告する場合があります。
実行フロー
GitHub で Dependabot が有効化されている場合に、Dependabot が作成した PR を自動で精査し、セキュリティ的な観点から対応する必要があるかどうかを判断します。
Dependabot が PR を作成すると、Takumi は以下のステップを自動的に実行します。
- PR の監視: GitHub で Dependabot が PR を作成すると、Takumi がこれを検知し、即座に分析を開始する
- 分析の実行: PR 内の依存関係について以下の分析を行う
- セキュリティに関連するか判断(フェーズ 1): PR の内容がセキュリティ分析の対象であるかどうかを判断する。セキュリティとは関係のない更新と判断した場合は、その時点で分析を中断し、不必要なクレジットの消費を防ぐ
- 既知の脆弱性の特定(フェーズ 2): ライブラリに CVE や GHSA といった主要なデータベースに登録されている脆弱性がないかを確認する
- コードベースにおける悪用可能性の分析(フェーズ 3): 脆弱性が対象のコードベースで実際に悪用可能かどうかを分析・判断する
- リスクの評価: 脆弱性の深刻度と悪用可能性を総合的に評価し、セキュリティリスクを判断する
- 分析結果の通知: 分析結果はワークプレイスの Web ダッシュボードで確認できる。Slack 連携を利用している場合は、Slack にも直接投稿される。重大かつ悪用可能な脆弱性が発見された場合は、Slack チャンネル全体へ即座に通知し 、迅速な対応を促す
使用方法
Dependabot 自動トリアージ機能の利用方法には、ワークプレイス(Web コンソール)からの利用と、Slack からの利用の 2 つがあります。
ワークプレイスから利用する
ワークプレイスは GitHub リポジトリをグループ化するための単位です。チーム、プロジェクトなど任意の基準でリポジトリをまとめ、Slack 連携なしで Web コンソールから直接 Dependabot トリアージを管理できます。
設定手順
- サイドバーナビゲーションのワークプレイスをクリックしてください
- 新しいワークプレイスを作成し、対象の GitHub リポジトリを選択してください
- ワークプレイスの設定から Dependabot 自動トリアージを有効化してください
- 応答言語(日本語または英語)を設定してください
登録したリポジトリで Dependabot が PR を作成すると、ワークプレイスの Dependabot タブにトリアージ結果が表示されます。