コンテンツにスキップ

他のツールとの比較

  • 脆弱性を直すための更新について、何を直せるか、どう更新するか、更新前後に何を確かめるかで比較する
  • 2026年10月31日時点の各ツールの公式資料にもとづく

比較ツール

  • 比較対象は、コンテナで使うイメージや依存パッケージの脆弱性を直すためにファイルやイメージを変更できるOSSとする
  • 商用サービスは作者が機能を実際に確認できないため、比較対象に含めず紹介だけにとどめる
ツール 何をするツールか ライセンス
KestreLynx 稼働中のコンテナのイメージで検出した脆弱性に対し、修正計画と更新PRで更新を提案する AGPL-3.0
Dependabot リポジトリのファイルに記録された依存パッケージを更新するPRを作るGitHubの機能 dependabot-coreはMIT
Renovate リポジトリのファイルに記録された依存パッケージを更新するPRを作る AGPL-3.0
Copacetic コンテナイメージ内のパッケージにパッチを当てたイメージを作る Apache-2.0
OSV-Scanner OSVの情報で既知の脆弱性を検出し、修正機能(osv-scanner fix)で依存ファイルを更新する Apache-2.0
  • 比較表に入れない商用の選択肢
    • Snyk Containerはコンテナイメージの脆弱性をスキャンし、ベースイメージの更新を提案する
    • Docker Scoutはイメージに含まれる構成要素を解析し、脆弱性データと照合する
    • Socketはオープンソースの依存パッケージとその更新を解析し、悪意ある動作などを調べる

修正対象

ツール 配布イメージのタグ Dockerfileのベースイメージ(FROM) イメージ内のOSパッケージへの直接パッチ 言語パッケージ
KestreLynx 同じメジャー・マイナー版内のみ:Compose・Kubernetes・Kustomize・Helm values 同じメジャー・マイナー版内のみ 対応なし:イメージやベースイメージを更新 npm・pnpm・pip・uv・Go・Maven(pom.xml)・Gradle(gradle.lockfile)のみ
Dependabot 対応:Compose・Kubernetes・Helm 対応 対応なし npm・pnpm・pip・uv・Goほか、対応一覧を参照
Renovate 対応:Compose・Kubernetes・Kustomize・Helm values 対応 対応なし npm・pnpm・pip・uv・Goほか、対応一覧を参照
Copacetic 対応なし 対応なし 対応:DPKG・RPM・APK npm・pip・Go・.NET(実験的)
OSV-Scanner 対応なし 対応なし 対応なし npm・Mavenのみ(実験的):npmのpackage-lock.json・package.json、Mavenのpom.xml
  • Dependabot・Renovateはリポジトリ内の記載を更新し、稼働イメージ内の有無は見ない
  • KestreLynxは稼働イメージで脆弱性を検出したパッケージのGitHub依存ファイルを更新する
  • KestreLynxは配布イメージの浮動タグ(latestなど)を再取得の案内(更新PRなし)の対象として扱う

更新方法

最後の列は、更新後に稼働するイメージの確認を指します。 表は各ツール自体の処理を示し、外部スキャナや別の自動処理による確認は含めません。

ツール 処理のきっかけ 変更するもの 更新PR作成前の脆弱性確認 作成・通知するもの 更新後の脆弱性確認
KestreLynx 稼働中のイメージで検出した脆弱性 リポジトリ内のイメージ指定・言語パッケージの依存ファイル 更新前後のスキャン結果を比較 修正計画・更新PR・通知 次の定期スキャンで確認
Dependabot 新しい版/GitHubの脆弱性警告 リポジトリ内のイメージ指定・言語パッケージの依存ファイル イメージの比較スキャンはしない 更新PR 適用後のイメージは確認しない
Renovate 新しい版/パッケージの脆弱性情報 リポジトリ内のイメージ指定・言語パッケージの依存ファイル イメージの比較スキャンはしない 更新PR 適用後のイメージは確認しない
Copacetic イメージとスキャン結果/パッケージ更新 イメージ内のパッケージ 対象外(更新PRを作らない) パッチを当てたイメージ 適用後のイメージは確認しない
OSV-Scanner 既知の脆弱性(OSVデータベース) npmのpackage-lock.json・package.json、Mavenのpom.xml 対象外(更新PRを作らない) 更新した依存ファイル、解消した脆弱性と残りの件数の表示 適用後のイメージは確認しない
  • イメージ更新では、KestreLynxは現在と更新先のイメージのスキャン結果を比較する
  • 言語パッケージ更新では、KestreLynxは変更前後の依存ファイルのスキャン結果を比較する
  • Dependabot・Renovateも対応するパッケージの更新に公開脆弱性情報を使うが、現在と更新先のイメージの比較スキャンはしない

例:nginxの脆弱性を直すまでの各ツールの動作

compose.ymlでnginx:1.27.0を指定して動かしているコンテナに、修正版のある脆弱性が見つかった場面を考えます。

以下は各ツールで必要な機能を有効にした場合の動きです。 KestreLynxの更新PR作成は設定で有効にした場合だけで、既定では無効です。

  • KestreLynx
    • デモの更新PR #1を作る前に、次の順で確認
      • 稼働中のnginx:1.27.0と更新先のnginx:1.27.5を、重大度がHIGH・CRITICALの脆弱性を対象にスキャン
      • 結果を比較し、更新で直す対象の脆弱性のうち17件が検出されなくなり、86件が残ることを確認
      • 確認した重大度の範囲で、更新先に新しく出る脆弱性が0件であることを確認
    • 比較結果を載せ、compose.ymlのservices.proxy.imageをnginx:1.27.5へ書き換える更新PRを作成
    • その後、利用者が更新PRをマージし、稼働中のproxyコンテナをnginx 1.27.5に入れ替え
    • KestreLynxは次のスキャンで4パッケージの脆弱性の解消を通知
    • KestreLynxの作者がその結果をデモの紹介に掲載
  • Dependabot
  • Renovate
    • compose.ymlのimage:を読み、設定した更新範囲に入る新しいnginxの版を探して更新PRを作る
  • Copacetic
    • nginxのイメージと、その中のOSパッケージの脆弱性を特定したスキャンレポートを渡すと、そのパッケージにパッチを当てたイメージを作る
    • できたイメージのスキャンと動作確認、compose.ymlのimage:の変更、稼働中のコンテナの入れ替えは利用者が行う
  • OSV-Scanner
    • osv-scanner fixはcompose.ymlのnginxのイメージタグを書き換えない
    • リポジトリにnpm・Mavenの依存ファイルがある場合は、osv-scanner fixがそのファイルを更新して依存パッケージの脆弱性を修正する

KestreLynxの範囲と制約

  • Docker・Kubernetesで見つけた時点に稼働しているコンテナだけを監視し、詳しい対象はスキャン範囲に記載
  • この監視は、CIでのスキャンの代わりにはならない
  • 修正計画と更新PRは実験的な機能で既定では無効とし、有効化の方法は設定手順に記載
  • ファイルを書き換えるには稼働中のコンテナとGitHubリポジトリのファイルの対応付けを設定する必要があり、対応形式と条件はリファレンスに記載
  • 言語パッケージの取得元は公開npm・公開PyPI・公開Go module proxyとsum.golang.org・Maven Centralのみ
  • 更新前の比較では再ビルドしたアプリケーション全体のイメージや動作は確認せず、詳細は更新先の確認範囲に記載

他のツールの補足

参照した公式資料

確認日:2026-10-31