Skip to content
Docker Scout ドキュメントハウツーScout を使用して異なるアーティファクトタイプを分析する

Scout を使用して異なるアーティファクトタイプを分析する

Docker Scout CLI コマンドの一部では、分析対象のアーティファクトの場所やタイプを指定するためのプレフィックスをサポートしています。

デフォルトでは、docker scout cves コマンドによるイメージ分析は Docker エンジンのローカルイメージストアにあるイメージを対象とします。次のコマンドは、ローカルに存在するイメージを常に使用します:

$ docker scout cves <image>

イメージがローカルに存在しない場合、Docker は分析を実行する前にイメージをプルします。同じイメージを再度分析する場合、タグがレジストリで変更されていても、デフォルトで同じローカルバージョンが使用されます。

registry:// プレフィックスをイメージリファレンスに追加すると、Docker Scout がレジストリバージョンのイメージを分析するように強制できます:

$ docker scout cves registry://<image>

プレフィックス説明
image:// (デフォルト)ローカルイメージを使用し、ローカルに存在しない場合はレジストリから取得
local://ローカルイメージストアからイメージを使用(レジストリからは取得しない)
registry://レジストリからイメージを使用(ローカルイメージは使用しない)
oci-dir://OCI レイアウトディレクトリを使用
archive://docker save で作成された tarball アーカイブを使用
fs://ローカルディレクトリやファイルを使用

以下のコマンドでプレフィックスを使用できます:

  • docker scout compare
  • docker scout cves
  • docker scout quickview
  • docker scout recommendations
  • docker scout sbom

このセクションでは、docker scout コマンドでプレフィックスを使用してアーティファクトを指定する例をいくつか紹介します。

ローカルプロジェクトを分析する

fs:// プレフィックスを使用すると、ローカルのソースコードを直接分析できます。コンテナイメージにビルドする必要はありません。次の docker scout quickview コマンドでは、現在の作業ディレクトリ内のソースコードの脆弱性を一目で確認できます。

$ docker scout quickview fs://.

ローカルソースコード内の脆弱性の詳細を表示するには、docker scout cves --details fs://. コマンドを使用します。他のフラグと組み合わせて、興味のあるパッケージや脆弱性に絞り込むことも可能です。

$ docker scout cves --details --only-severity high fs://.
    ✓ File system read
    ✓ Indexed 323 packages
    ✗ Detected 1 vulnerable package with 1 vulnerability
 
​## Overview
 
                    │        Analyzed path
────────────────────┼──────────────────────────────
  Path              │  /Users/david/demo/scoutfs
    vulnerabilities │    0C     1H     0M     0L
 
​## Packages and Vulnerabilities
 
   0C     1H     0M     0L  fastify 3.29.0
pkg:npm/fastify@3.29.0
 
    ✗ HIGH CVE-2022-39288 [OWASP Top Ten 2017 Category A9 - Using Components with Known Vulnerabilities]
      https://scout.docker.com/v/CVE-2022-39288
 
      fastify is a fast and low overhead web framework, for Node.js. Affected versions of
      fastify are subject to a denial of service via malicious use of the Content-Type
      header. An attacker can send an invalid Content-Type header that can cause the
      application to crash. This issue has been addressed in commit  fbb07e8d  and will be
      included in release version 4.8.1. Users are advised to upgrade. Users unable to
      upgrade may manually filter out http content with malicious Content-Type headers.
 
      Affected range : <4.8.1
      Fixed version  : 4.8.1
      CVSS Score     : 7.5
      CVSS Vector    : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
 
1 vulnerability found in 1 package
  LOW       0
  MEDIUM    0
  HIGH      1
  CRITICAL  0

ローカルプロジェクトとイメージを比較する

docker scout compare を使用すると、ローカルファイルシステム上のソースコードとコンテナイメージの分析結果を比較できます。次の例では、ローカルのソースコード(fs://.)とレジストリイメージ registry://docker/scout-cli:latest を比較しています。この場合、比較のベースラインとターゲットの両方でプレフィックスを使用しています。

$ docker scout compare fs://. --to registry://docker/scout-cli:latest --ignore-unchanged
WARN 'docker scout compare' is experimental and its behaviour might change in the future
    ✓ File system read
    ✓ Indexed 268 packages
    ✓ SBOM of image already cached, 234 packages indexed
 
 
  ## Overview
 
                           │              Analyzed File System              │              Comparison Image
  ─────────────────────────┼────────────────────────────────────────────────┼─────────────────────────────────────────────
    Path / Image reference │  /Users/david/src/docker/scout-cli-plugin      │  docker/scout-cli:latest
                           │                                                │  bb0b01303584
      platform             │                                                │ linux/arm64
      provenance           │ https://github.com/dvdksn/scout-cli-plugin.git │ https://github.com/docker/scout-cli-plugin
                           │  6ea3f7369dbdfec101ac7c0fa9d78ef05ffa6315      │  67cb4ef78bd69545af0e223ba5fb577b27094505
      vulnerabilities      │    0C     0H     1M     1L                     │    0C     0H     1M     1L
                           │                                                │
      size                 │ 7.4 MB (-14 MB)                                │ 21 MB
      packages             │ 268 (+34)                                      │ 234
                           │                                                │
 
 
  ## Packages and Vulnerabilities
 
 
    +   55 packages added
    -   21 packages removed
       213 packages unchanged

上記の例は簡略化されています。

イメージ tarball の SBOM を表示する

次の例では、archive:// プレフィックスを使用して、docker save で作成されたイメージ tarball の SBOM を取得する方法を示します。この場合、イメージは docker/scout-cli:latest であり、SBOM は SPDX 形式の sbom.spdx.json ファイルにエクスポートされます。

$ docker pull docker/scout-cli:latest
latest: Pulling from docker/scout-cli
257973a141f5: Download complete 
1f2083724dd1: Download complete 
5c8125a73507: Download complete 
Digest: sha256:13318bb059b0f8b0b87b35ac7050782462b5d0ac3f96f9f23d165d8ed68d0894
$ docker save docker/scout-cli:latest -o scout-cli.tar
$ docker scout sbom --format spdx -o sbom.spdx.json archive://scout-cli.tar

詳細情報

CLI リファレンスドキュメントで、各コマンドとサポートされているフラグについての詳細を確認できます: