Trivy
https://raw.githubusercontent.com/aquasecurity/trivy/becd5088dff0bad78120fa2d7dd2316029a4716f/docs/imgs/logo.png
Trivy とは?
A Simple and Comprehensive Vulnerability Scanner for Containers, Suitable for CI.
CI に親和性のある、簡単で包括的なコンテナの脆弱性スキャナ。
機能一覧
公式の README に確認時点で記述されている機能が下記の通り。
全体的な脆弱性の検知
イメージのベースとなっているOSの脆弱性検知
アプリケーションの依存関係における脆弱性検知
高速な動作
簡単な使用方法
イメージ名を渡すだけで利用できる
高精度な脆弱性検知
Alpine Linux と RHEL/CentOS には特に強いらしい
CI との親和性を考慮した設計になっている
Dockle との違い
似たツールに Dockle があるが、こちらはあくまで Linter。 なので、生成済みのイメージを解析して、生成コマンドの良し悪しや、付帯しての CIS Benchmarks に関するセキュリティチェックを行ってくれるが、一番の違いは、イメージに含まれるOSやアプリケーションの依存関係に関する脆弱性を詳細に調べてくれる点。カバーしてくれる範囲が異なるので、より強固にするのであれば 併用が好ましそう。 脆弱性情報の取得について
trivy は起動時に最新の脆弱性情報の一覧を取得する。これは trivy-db という専用のリポジトリで管理されており、ここに情報の生成ツールのコードが含まれている他、Releases で実際に取得される一覧がデータベースとして提供されている。 データベースの種別は標準版と軽量版の2種類があり、12時間ごとに常に更新版がリリースされている。取得できるのは確認時点で、最新のバージョンから過去最大3バージョンまでのようだ。
CI と組み合わせての利用
バイナリを配置して、ネットワークが繋がってさえいれば利用できるため、Docker イメージのビルドをCIで行っている場合などではCIと組み合わせておけば、生成されたイメージのセキュリティの向上が期待できる。
メジャーどころの CI ツールとの統合方法が記載されているので興味があれば参考にしてほしい。