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