コンテンツにスキップ

Docker スキャン (trivy)#

aquasecurity/trivyは、Dockerイメージの脆弱性を検知するOSSツールです。 FutureVulsではTrivyのスキャン結果を取り込み、FutureVuls上でコンテナイメージの脆弱性を管理できます。

その他のコンテナイメージスキャン方法として、Amazon ECRやGoogle Artifact Registryと連携し、コンテナレジストリ上にあるDockerイメージの脆弱性をスキャンする方法があります。

Trivyによるコンテナイメージスキャンでは、以下の2パターンをご利用いただけます。

スキャン対象について#

スキャン対象は対応環境を参照してください。 その他サポート対象の言語やパッケージエコシステムの詳細は、「Trivy Supported OS」を参照してください。

ローカル環境にTrivyをインストールしてスキャンする#

Trivyをローカル環境にインストールし、コンテナイメージをスキャンした結果をFutureVulsにアップロードします。この方法では、通常版と軽量版の2つのインストールモードが選択できます。それぞれの違いは以下の通りです。

項目 説明 通常版 軽量版
root権限 インストール時にroot権限が必要かどうか 必要 不要
対応環境 セットアップ可能なローカル環境 参考 Linux全般
定期スキャン イメージを自動で定期的にスキャンするか 対応 未対応

軽量版ではroot権限が不要な代わりに、コンテナイメージのスキャンを定期的に手動で行う必要があります。コンテナイメージの構成変更を常にFutureVulsに同期し脆弱性情報を最新化しておくためにも、どちらのモードも選択可能な場合は、基本的に通常版でのスキャンをご利用ください。

新しくコンテナイメージをスキャンする#

新しくコンテナイメージをスキャンし、FutureVulsに登録する場合は次の手順に従ってください。

  1. サーバタブの サーバ追加 ボタンからダイアログを開き、コンテナイメージスキャン を選択する コンテナイメージスキャン追加ダイアログ誘導
  2. スキャナトークンを選択し、スキャン対象コンテナイメージのイメージ名を入力する。 - <イメージ名>:<タグ> の形式で指定してください。 - 常に最新バージョンのイメージをスキャンする場合は、<イメージ名>:<latest> を指定してください。
  3. プロキシ環境下の場合は、経由するプロキシサーバを入力する
  4. 軽量版を使用する場合はスイッチバーにチェックをいれる
  5. 画面下部に表示されているコマンドをコピーし、対象イメージを管理しているローカル環境で貼り付け、実行する - 通常版の場合はroot権限で実行してください。 コンテナイメージスキャン追加ダイアログ
  6. FutureVulsにて対象グループのサーバタブに、スキャンしたイメージが追加されていることを確認 - 通常版の場合、FutureVulsに反映されるまで5~10分程度かかります。 - インストール後、すぐにスキャンを実行したい場合は次のコマンドを実行してください。 - /opt/vuls-trivy-saas/vuls-trivy-saas.sh &> /opt/vuls-trivy-saas/vuls-trivy.log

以上で登録は完了です。 通常版をご利用の場合は、スキャナが1日1回自動で起動し、対象のコンテナイメージをスキャンしてFutureVulsに反映します。

通常版では、スキャン対象コンテナイメージ/ライブラリ等のスキャンオプションを config.toml に手動で追加可能です。 詳しくは trivy スキャンの設定をご覧ください。

また、スキャン結果が反映されない場合はコチラを参照ください。

登録済みのコンテナイメージ情報を更新する#

登録済みの構成情報を基に脆弱性情報を最新化する#

FutureVulsに既に登録済みのコンテナイメージの構成情報を基に、脆弱性情報を最新化したい場合は、FutureVuls上から手動スキャンを実行してください。

コンテナイメージの構成情報の変更をFutureVulsに反映する#

FutureVulsに登録済みのコンテナイメージに変更があった場合は、本手順に従ってFutureVulsに反映してください。

  • 通常版の場合
    • スキャナが1日1回自動で起動し、イメージをスキャンしているため操作は必要ありません
    • 今すぐスキャナを起動したい場合は、root ユーザもしくは vuls-trivy-saas ユーザで次のコマンドを実行してください。
      • /opt/vuls-trivy-saas/vuls-trivy-saas.sh &> /opt/vuls-trivy-saas/vuls-trivy.log
  • 軽量版の場合
    1. サーバタブで対象のコンテナイメージをクリックし、サーバ詳細ページを開く
    2. 構成情報を更新 ボタンをクリックしてダイアログを開く コンテナイメージ更新
    3. スキャナトークンを選択し、スキャン対象コンテナイメージのイメージ名を入力する
    4. プロキシ環境下の場合は、経由するプロキシサーバを入力する
    5. 画面下部に表示されているコマンドをコピーし、対象イメージを管理しているローカル環境で貼り付け実行する。

Trivyスキャンで設定可能なオプション#

通常版のTrivyスキャンでは、/opt/vuls-trivy-saas/config.toml ファイルを用いて指定可能なオプションがあります。

  • config.tomlファイルの構成例
[saas]
  GroupID = XXX
  Token = "xxxxxxxx"
  Proxy = "http://name:pass@proxy:port"

[scanner]
  refreshScanner = true

  [images.myApp:latest]
    imageName = "myApp"
    tag = "latest"
    uuid = "xxxxxxxx"

  [libraries./xxx/xxx]
    targetPath = "/xxx/xxx"
    uuid = "xxxxxxxx"

オプション#

項目 説明 必須
GroupID スキャン結果をアップロードするグループのID
Token スキャン権限をもったトークン
Proxy プロキシ環境の場合に経由するプロキシサーバ -
refreshScanner 毎スキャン時にスキャナを更新するかどうか
true or false で指定

スキャン対象のコンテナイメージ・ライブラリを手動で追加する#

  • コンテナイメージ

    項目 説明 必須
    [] の中 images.<hoge> (<hoge> の中は <imageName>:<tag> と一致している必要はありません。)
    imageName スキャン対象のコンテナイメージの名前
    tag スキャン対象のコンテナイメージのタグ
    uuid uuidgen 等により生成した uuid
  • ライブラリ

    項目 説明 必須
    [] の中 libraries.<hoge> (<hoge> の中は targetPath と一致している必要はありません。)
    targetPath スキャン対象ディレクトリ
    uuid uuidgen 等により生成した uuid

正常にスキャンできない場合#

FAQを参照ください。