Trivyの脆弱性スキャン結果をFutureVulsに連携してみた(CLI編)

2020.08.30

Trivy はOSSのコンテナ脆弱性スキャンツールで、コンテナの OS パッケージやアプリケーションの依存ライブラリの脆弱性を検出します。

脆弱性管理ツールの FutureVuls に Trivy でスキャンした結果を連携し、FutureVuls でコンテナの脆弱性管理をしてみます。

環境

以下の環境で実行しています。

  • Amazon Linux2
  • Docker version 19.03.6-ce, build 369ce74

やってみた

trivy をインストールします。

$ export TRIVY_VERSION=0.10.0
$ wget https://github.com/aquasecurity/trivy/releases/download/v${TRIVY_VERSION}/trivy_${TRIVY_VERSION}_Linux-64bit.tar.gz
$ mkdir trivy && tar zxvf trivy_${TRIVY_VERSION}_Linux-64bit.tar.gz -C trivy

trivy-to-vuls をインストールします。trivy-to-vuls では trivy のスキャン結果を vuls のレポート形式に変換しています。

$ export VULS_VERSION=0.10.0
$ wget https://github.com/future-architect/vuls/releases/download/v${VULS_VERSION}/trivy-to-vuls_${VULS_VERSION}_linux_amd64.tar.gz
$ mkdir trivy-to-vuls && tar zxvf trivy-to-vuls_${VULS_VERSION}_linux_amd64.tar.gz -C trivy-to-vuls

future-vuls をインストールします。

$ export VULS_VERSION=0.10.0
$ wget https://github.com/future-architect/vuls/releases/download/v${VULS_VERSION}/future-vuls_${VULS_VERSION}_linux_amd64.tar.gz
$ mkdir future-vuls && tar zxvf future-vuls_${VULS_VERSION}_linux_amd64.tar.gz -C future-vuls

スキャン用のコンテナを用意します。今回は Alpine Linux をスキャンしてみます。

./Dockerfile

FROM alpine:3.4
$ docker build -t alpine .

続いて、以下の環境変数を設定します。

  • FVULS_SERVER_UUID
  • FVULS_GROUP_ID
  • FVULS_TOKEN

FVULS_SERVER_UUID は、FutureVuls で使用するサーバー ID (サーバーを一意に特定するための UUID )を設定します。ここでは uuidgen コマンドでサーバー ID を生成しています。

$ uuidgen && fvuls_server_uuid
$ export FVULS_SERVER_UUID=`cat fvuls_server_uuid`

FVULS_GROUP_ID は、FutureVuls のグループ ID を設定します。グループ ID は管理画面の URL から確認できます。

$ export FVULS_GROUP_ID=xxx

FVULS_TOKEN は、FutureVuls のスキャントークンを設定します。管理画面の グループ設定 > トークン から確認します。

$ export FVULS_TOKEN=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Trivyでスキャンし、FutureVulsにスキャン結果をアップロードします。

<pre class="brush: bash; title: ; notranslate" title="">