Docker Scout 镜像分析
当您激活存储库的映像分析时,Docker Scout 会自动分析您推送到该存储库的新映像。
图像分析提取软件物料清单 (SBOM) 和其他图像元数据,并根据 安全公告中的漏洞数据对其进行评估。
如果您使用 CLI 或 Docker Desktop 将图像分析作为一次性任务运行,则 Docker Scout 将不会存储有关您的图像的任何数据。但是,如果您为容器映像存储库启用 Docker Scout,Docker Scout 会在分析后保存映像的元数据快照。当新的漏洞数据可用时,Docker Scout 会使用元数据快照重新校准分析,这意味着图像的安全状态会实时更新。这种动态评估意味着在披露新的 CVE 信息时无需重新分析图像。
Docker Scout 图像分析默认可用于 Docker Hub 存储库。您还可以集成第三方注册表和其他服务。要了解更多信息,请参阅 将 Docker Scout 与其他系统集成。
在存储库上激活 Docker Scout
Docker Scout 的免费层允许您将 Docker Scout 用于每个 Docker 组织最多 3 个存储库。如果您需要其他存储库,您可以更新 Docker Scout 计划,请参阅 Docker Scout 计费。
在您可以对第三方注册表中的存储库激活图像分析之前,该注册表必须与您的 Docker 组织的 Docker Scout 集成。默认情况下集成了 Docker Hub。有关更多信息,请参阅 容器注册表集成
笔记
您必须在 Docker 组织中具有编辑者或所有者角色才能激活存储库上的图像分析。
要激活图像分析:
- 转到 Docker Scout 仪表板中的存储库设置。
- 选择您要启用的存储库。
- 选择启用图像分析。
如果您的存储库已包含镜像,Docker Scout 会自动提取并分析最新镜像。
分析注册表图像
要触发注册表中映像的映像分析,请将映像推送到与 Docker Scout 集成的注册表,以及激活映像分析的存储库。
笔记
Docker Scout 平台上的图像分析的最大图像文件大小限制为 10 GB,除非图像具有 SBOM 证明。请参阅 最大图像尺寸。
docker login
使用命令或 Docker Desktop 中的“登录”按钮,使用您的 Docker ID 登录。构建并推送您想要分析的图像。
$ docker build --push --tag <org>/<image:tag> --provenance=true --sbom=true .
使用
--provenance=true
和--sbom=true
标志进行构建会将 构建证明附加到图像。 Docker Scout 使用证明来提供更细粒度的分析结果。笔记
docker
如果您使用 containerd镜像存储,默认驱动程序仅支持构建证明。转到 Docker Scout 仪表板中的“镜像”页面。
将图像推送到注册表后不久就会出现在列表中。分析结果可能需要几分钟才会出现。
本地分析图像
您可以使用 Docker Desktop 或
docker scout
Docker CLI 的命令通过 Docker Scout 分析本地映像。
Docker 桌面
笔记
Docker Desktop 后台索引支持最大 10 GB 的图像。请参阅 最大图像尺寸。
要使用 Docker Desktop GUI 在本地分析图像:
拉取或构建您想要分析的图像。
转到Docker 仪表板中的图像视图。
在列表中选择一张本地图像。
这将打开 镜像详细信息视图,显示 Docker Scout 分析为您选择的镜像发现的软件包和漏洞的详细信息。
命令行界面
CLIdocker scout
命令提供了一个命令行界面,用于从终端使用 Docker Scout。
docker scout quickview
:指定图片的摘要,参见 快速查看docker scout cves
:指定镜像的本地分析,参见 CVEsdocker scout compare
:分析和比较两个图像
默认情况下,结果打印到标准输出。您还可以将结果导出到结构化格式的文件中,例如静态分析结果交换格式 (SARIF)。
快速浏览
该docker scout quickview
命令提供给定映像及其基础映像中发现的漏洞的概述。
$ docker scout quickview traefik:latest
✓ SBOM of image already cached, 311 packages indexed
Your image traefik:latest │ 0C 2H 8M 1L
Base image alpine:3 │ 0C 0H 0M 0L
如果您的基础映像已过期,该quickview
命令还会显示更新基础映像将如何改变映像的漏洞暴露情况。
$ docker scout quickview postgres:13.1
✓ Pulled
✓ Image stored for indexing
✓ Indexed 187 packages
Your image postgres:13.1 │ 17C 32H 35M 33L
Base image debian:buster-slim │ 9C 14H 9M 23L
Refreshed base image debian:buster-slim │ 0C 1H 6M 29L
│ -9 -13 -3 +6
Updated base image debian:stable-slim │ 0C 0H 0M 17L
│ -9 -14 -9 -6
CVE
该docker scout cves
命令可以让您全面了解映像中的所有漏洞。此命令支持多个标志,使您可以更准确地指定您感兴趣的漏洞,例如按严重性或包类型:
$ docker scout cves --format only-packages --only-vuln-packages \
--only-severity critical postgres:13.1
✓ SBOM of image already cached, 187 packages indexed
✗ Detected 10 vulnerable packages with a total of 17 vulnerabilities
Name Version Type Vulnerabilities
───────────────────────────────────────────────────────────────────────────
dpkg 1.19.7 deb 1C 0H 0M 0L
glibc 2.28-10 deb 4C 0H 0M 0L
gnutls28 3.6.7-4+deb10u6 deb 2C 0H 0M 0L
libbsd 0.9.1-2 deb 1C 0H 0M 0L
libksba 1.3.5-2 deb 2C 0H 0M 0L
libtasn1-6 4.13-3 deb 1C 0H 0M 0L
lz4 1.8.3-1 deb 1C 0H 0M 0L
openldap 2.4.47+dfsg-3+deb10u5 deb 1C 0H 0M 0L
openssl 1.1.1d-0+deb10u4 deb 3C 0H 0M 0L
zlib 1:1.2.11.dfsg-1 deb 1C 0H 0M 0L
有关这些命令以及如何使用它们的更多信息,请参阅 CLI 参考文档:
漏洞严重性评估
Docker Scout 根据 咨询来源的漏洞数据为漏洞分配严重性评级。根据受漏洞影响的软件包类型对通报进行排名和优先级。例如,如果漏洞影响操作系统包,则优先考虑发行版维护者指定的严重性级别。
如果首选咨询源已为 CVE 分配严重性评级,但未分配 CVSS 分数,则 Docker Scout 会回退到显示来自其他源的 CVSS 分数。首选建议的严重性评级和后备建议的 CVSS 分数会一起显示。这意味着LOW
,如果首选通报分配了LOW
评级但没有 CVSS 分数,而后备通报分配的 CVSS分数为 9.8 ,则漏洞的严重性评级为 CVSS 分数为 9.8。
未在任何来源中分配 CVSS 分数的漏洞被归类为未指定(U)。
Docker Scout 没有实现专有的漏洞度量系统。所有指标均继承自与 Docker Scout 集成的安全建议。公告可能使用不同的阈值对漏洞进行分类,但大多数都遵循 CVSS v3.0 规范,该规范根据下表将 CVSS 分数映射到严重性评级:
CVSS评分 | 严重程度等级 |
---|---|
0.1 – 3.9 | 低(L) |
4.0 – 6.9 | 中号(M) |
7.0 – 8.9 | 高(H) |
9.0 – 10.0 | 关键(C) |
有关详细信息,请参阅 漏洞指标 (NIST)。
请注意,鉴于前面描述的咨询优先级和回退机制,Docker Scout 中显示的严重性评级可能会偏离此评级系统。
最大图像尺寸
Docker Scout 平台上的镜像分析,以及 Docker Desktop 中后台索引触发的分析,镜像文件大小限制为 10 GB(未压缩)。要分析大于该值的图像,您可以:
使用 CLI 本地分析的图像和具有 SBOM 证明的图像没有最大文件大小。