
NVD、Red Hat、Debianなどからのセキュリティアドバイザリを集約してTrivy脆弱性データベースを構築および管理。データベースの作成、圧縮、配布のためのCLIツールおよびライブラリ。
trivy-db CLI ツールは脆弱性DBを構築します。GitHub Actions ワークフロー は trivy-db を使用して脆弱性DBの新しいバージョンを定期的に構築し、GitHub Container Registry にアップロードします(下記の脆弱性データベースのダウンロードを参照)。
NAME:
trivy-db - Trivy DB builder
USAGE:
main [global options] command [command options] image_name
VERSION:
0.0.1
COMMANDS:
build build a database file
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
trivy-db をローカルでビルドするには、Makefile のコマンドを次の順序で使用できます:
make db-fetch-langs db-fetch-vuln-list # To download all advisories and other required files (`./cache` dir by default)
make build # Build `trivy-db` binary
make db-build # Build database (`./out` dir by default)
make db-compact # Compact database (`./assets` dir by default)
make db-compress # Compress database into `db.tar.gz` file
trivy-db イメージをビルドしてレジストリにプッシュするには、Oras CLI を使用する必要があります。例えば、ghcr の場合:
./oras push --artifact-type application/vnd.aquasec.trivy.config.v1+json \
"ghcr.io/aquasecurity/trivy-db:2" \
db.tar.gz:application/vnd.aquasec.trivy.db.layer.v1.tar+gzip
Trivy DB は6時間ごとにビルドされます。デフォルトでは、メタデータファイルに指定された更新間隔は24時間です。Trivy DB をより頻繁に更新する必要がある場合は、新しい Trivy DB を手動でアップロードできます。
Trivy DB v1 は2023年2月にサポート終了となりました。Trivy を v0.23.0 以降にアップグレードしてください。
Trivy DB v1 の非推奨化の詳細については、ディスカッション を参照してください。
Trivy DB v2 は GHCR でホストされています。GitHub はデフォルトで docker pull コマンドを表示しますが、これはコンテナイメージではないため、docker pull を使用してダウンロードできないことに注意してください。
Trivy:
TRIVY_TEMP_DIR=$(mktemp -d)
trivy --cache-dir $TRIVY_TEMP_DIR image --download-db-only
tar -cf ./db.tar.gz -C $TRIVY_TEMP_DIR/db metadata.json trivy.db
rm -rf $TRIVY_TEMP_DIR
oras >= v0.13.0:
$ oras pull ghcr.io/aquasecurity/trivy-db:2
oras < v0.13.0:
$ oras pull -a ghcr.io/aquasecurity/trivy-db:2
このデータベースは、エアギャップ環境 で使用できます。