他のツールとの比較
- 脆弱性を直すための更新について、何を直せるか、どう更新するか、更新前後に何を確かめるかで比較する
- 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の作者がその結果をデモの紹介に掲載
- デモの更新PR #1を作る前に、次の順で確認
- Dependabot
- Composeファイル内のイメージの版を更新する設定にすると、新しいnginxの版を探し、
compose.ymlのimage:を書き換える更新PRを作る
- Composeファイル内のイメージの版を更新する設定にすると、新しいnginxの版を探し、
- 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のみ - 更新前の比較では再ビルドしたアプリケーション全体のイメージや動作は確認せず、詳細は更新先の確認範囲に記載
他のツールの補足
- Dependabot
- Version updatesはリポジトリのファイルを定期的に調べ、新しい版への更新PRを作る機能
- Security updatesは、使用パッケージの既知の脆弱性を知らせるGitHubの警告「Dependabotアラート」を受けて更新PRを作る機能
- Dockerfile・ComposeのDockerイメージはversion updatesに対応し、security updatesは対象外
- Renovate
vulnerabilityAlertsはGitHubのDependabotアラートを使う機能osvVulnerabilityAlertsはOSVの脆弱性情報を使う実験的な機能で、Dockerイメージは対象外- 対応形式と設定は公式資料に記載
- Copacetic
- OSパッケージへのパッチはDPKG・RPM・APKに対応する
- アプリケーションの依存パッケージへのパッチは実験的な機能で、npm・pip・Go・.NETに対応する
- Goの依存ファイルを更新するだけでは、既存の実行ファイルの脆弱性は直らない
- 実験的なGo実行ファイルの再ビルドには、取得可能な公開ソースコードが必要
- pnpm・uvには対応しない
- OSV-Scanner
- guided remediation(
osv-scanner fix)は実験的な修正機能 - npmの
in-placeは既存のバージョン制約内でロックファイルを更新する - npmの
relockはpackage.jsonから依存関係全体を再計算する - Mavenの
overrideはpom.xmlで直接依存のバージョンを更新するか、<dependencyManagement>で依存パッケージのバージョンを上書きする node_modulesは入れ直さないため、利用者が別途npm ciを実行する
- guided remediation(
参照した公式資料
確認日:2026-10-31
- KestreLynx
- Trivy
- Dependabot
- Renovate
- Copacetic
- OSV-Scanner
- 商用サービス