tunnel-db
is a CLI tool and a library to manipulate Tunnel DB.
Tunnel uses tunnel-db
internally to manipulate vulnerability DB. This DB has vulnerability information from NVD, Red Hat, Debian, etc.
The tunnel-db
CLI tool builds vulnerability DBs. A GitHub Actions workflow
periodically builds a fresh version of the vulnerability DB using tunnel-db
and uploads it to the GitHub
Container Registry (see Download the vulnerability database below).
NAME:
tunnel-db - Tunnel 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
To build tunnel-db locally, you can use the following order of commands from the Makefile:
make db-fetch-langs db-fetch-vuln-list // To download all advisories and other required files (`./cache` dir by default)
make build // Build `tunnel-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
To build tunnel-db image and push into registry, you need to use Oras CLI.
For example for ghcr
:
./oras push --artifact-type application/vnd.khulnasoft.tunnel.config.v1+json \
"ghcr.io/khulnasoft/tunnel-db:2" \
db.tar.gz:application/vnd.khulnasoft.tunnel.db.layer.v1.tar+gzip
Tunnel DB is built every 6 hours. By default, the update interval specified in the metadata file is 24 hours. If you need to update Tunnel DB more frequently, you can upload a new Tunnel DB manually.
Tunnel DB v1 reached the end of support on February 2023. Please upgrade Tunnel to v0.23.0 or later.
Read more about the Tunnel DB v1 deprecation in the discussion.
Tunnel DB v2 is hosted on GHCR.
Although GitHub displays the docker pull
command by default, please note that it cannot be downloaded using docker pull
as it is not a container image.
You can download the actual compiled database via Tunnel or Oras CLI.
Tunnel:
TUNNEL_TEMP_DIR=$(mktemp -d)
tunnel --cache-dir $TUNNEL_TEMP_DIR image --download-db-only
tar -cf ./db.tar.gz -C $TUNNEL_TEMP_DIR/db metadata.json tunnel.db
rm -rf $TUNNEL_TEMP_DIR
oras >= v0.13.0:
$ oras pull ghcr.io/khulnasoft/tunnel-db:2
oras < v0.13.0:
$ oras pull -a ghcr.io/khulnasoft/tunnel-db:2
The database can be used for Air-Gapped Environment.