다양한 아티팩트 유형과 Scout 사용하기
다양한 아티팩트 유형과 Scout 사용하기
일부 Docker Scout CLI 명령은 분석하려는 아티팩트의 위치나 유형을 지정하는 접두사를 지원해요.
기본적으로 docker scout cves 명령의 이미지 분석은 Docker Engine의 로컬 이미지 저장소에 있는 이미지를 대상으로 해요. 다음 명령은 로컬 이미지가 있으면 항상 그것을 사용해요.
$ docker scout cves <image>
이미지가 로컬에 없으면 Docker는 분석을 실행하기 전에 이미지를 pull해요. 같은 이미지를 다시 분석하면 태그가 레지스트리에서 바뀌었더라도 기본적으로 같은 로컬 버전을 사용해요.
이미지 참조에 registry:// 접두사를 추가하면 Docker Scout가 레지스트리 버전의 이미지를 분석하도록 강제할 수 있어요.
$ docker scout cves registry://<image>
지원되는 접두사
지원되는 접두사는 다음과 같아요.
| 접두사 (Prefix) | 설명 (Description) |
|---|---|
image:// (기본값) |
로컬 이미지를 사용하거나, 없으면 레지스트리에서 조회 |
local:// |
로컬 이미지 저장소의 이미지를 사용 (레지스트리 조회 안 함) |
registry:// |
레지스트리의 이미지를 사용 (로컬 이미지 안 씀) |
oci-dir:// |
OCI 레이아웃 디렉토리 사용 |
archive:// |
docker save로 만든 tarball 아카이브 사용 |
fs:// |
로컬 디렉토리 또는 파일 사용 |
접두사를 다음 명령과 함께 사용할 수 있어요.
docker scout comparedocker scout cvesdocker scout quickviewdocker scout recommendationsdocker scout sbom
예시 (Examples)
이 섹션은 접두사를 사용해 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/[email protected]
✗ 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
더 알아보기 (Learn more)
CLI 참조 문서에서 명령과 지원되는 플래그에 대해 알아보세요.