Docker Scout 映像分析

當您為儲存庫啟用映像檔分析時,Docker Scout 會自動分析您推送至該儲存庫的新映像檔。

映像檔分析會提取軟體物料清單 (SBOM) 及其他映像檔元數據,並根據安全性公告中的漏洞數據進行評估。

如果您使用 CLI 或 Docker Desktop 將映像檔分析作為一次性任務執行,Docker Scout 將不會儲存關於您映像檔的任何數據。然而,如果您為容器映像檔儲存庫啟用了 Docker Scout,Docker Scout 會在分析後儲存映像檔的元數據快照。隨著新的漏洞數據發佈,Docker Scout 會使用該元數據快照重新校準分析結果,這意味著您映像檔的安全性狀態會即時更新。這種動態評估意味著當新的 CVE 資訊披露時,無需重新分析映像檔。

Docker Hub 儲存庫預設提供 Docker Scout 映像檔分析功能。您也可以整合第三方登錄檔與其他服務。欲了解更多資訊,請參閱將 Docker Scout 與其他系統整合

在儲存庫中啟用 Docker Scout

Docker Personal 方案包含 1 個啟用 Scout 的儲存庫。如果您需要更多儲存庫,可以升級您的 Docker 訂閱。請參閱訂閱與功能,了解每個訂閱等級所包含的 Scout 啟用儲存庫數量。

在啟用第三方登錄檔中的儲存庫分析之前,該登錄檔必須先與您的 Docker 組織的 Docker Scout 進行整合。Docker Hub 為預設整合。欲了解更多資訊,請參閱容器登錄檔整合

注意

您必須在 Docker 組織中擁有編輯者 (Editor)擁有者 (Owner) 角色,才能啟用儲存庫的映像檔分析。

如何啟用映像檔分析

  1. 前往 Docker Scout 儀表板中的儲存庫設定 (Repository settings)
  2. 選擇您想要啟用的儲存庫。
  3. 選擇 啟用映像檔分析 (Enable image analysis)

如果您的儲存庫中已有映像檔,Docker Scout 會自動提取並分析最新的映像檔。

分析登錄檔(Registry)中的映像檔

若要為登錄檔中的映像檔觸發分析,請將映像檔推送到已與 Docker Scout 整合的登錄檔,並推送到已啟用映像檔分析的儲存庫中。

注意

Docker Scout 平台上的映像檔分析有 10 GB 的最大映像檔大小限制,除非該映像檔具有 SBOM 認證 (Attestation)。請參閱最大映像檔大小

  1. 使用您的 Docker ID 登入,可透過 docker login 指令或 Docker Desktop 中的 登入 (Sign in) 按鈕。

  2. 建置並推送您想要分析的映像檔。

    $ docker build --push --tag <org>/<image:tag> --provenance=true --sbom=true .
    

    使用 --provenance=true--sbom=true 旗標進行建置,會將建置認證 (build attestations) 附加到映像檔上。Docker Scout 使用這些認證來提供更細緻的分析結果。

    注意

    預設的 docker 驅動程式僅在使用 containerd 映像檔儲存庫時支援建置認證。

  3. 前往 Docker Scout 儀表板中的映像檔頁面 (Images page)

    當您將映像檔推送到登錄檔後,它很快就會出現在列表中。分析結果可能需要幾分鐘才會顯示。

在本機分析映像檔

您可以使用 Docker Desktop 或 Docker CLI 的 docker scout 指令,透過 Docker Scout 分析本機映像檔。

Docker Desktop

注意

Docker Desktop 的背景索引功能支援最大 10 GB 的映像檔。請參閱最大映像檔大小

如何透過 Docker Desktop GUI 在本機分析映像檔

  1. 提取 (Pull) 或建置您想要分析的映像檔。

  2. 前往 Docker 儀表板中的 映像檔 (Images) 視圖。

  3. 從列表中選擇一個您的本機映像檔。

    這將開啟映像檔詳細視圖,顯示 Docker Scout 分析所發現該映像檔的套件與漏洞分解資訊。

CLI

docker scout CLI 指令提供了一個命令列介面,讓您能在終端機中使用 Docker Scout。

  • docker scout quickview:指定映像檔的摘要,請參閱快速檢視 (Quickview)
  • docker scout cves:指定映像檔的本機分析,請參閱CVE
  • docker scout compare:分析並比較兩個映像檔

預設情況下,結果會列印至標準輸出。您也可以將結果匯出為結構化格式的文件,例如靜態分析結果交換格式 (SARIF)。

快速檢視 (Quickview)

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

CVEs

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(低)嚴重性,但卻具有 9.8 的 CVSS 分數,這是因為首選公告分配了 LOW 評級,而備選公告分配了 9.8 的 CVSS 分數。

在任何來源中未分配 CVSS 分數的漏洞,將被歸類為 未指定 (Unspecified) (U)。

Docker Scout 不實作專有的漏洞指標系統。所有指標均繼承自 Docker Scout 所整合的安全性公告。公告可能會使用不同的閾值來分類漏洞,但大多數遵循 CVSS v3.0 規範,該規範根據下表將 CVSS 分數對應至嚴重性評級:

CVSS 分數嚴重性評級
0.1 – 3.9 (Low, L)
4.0 – 6.9 (Medium, M)
7.0 – 8.9 (High, H)
9.0 – 10.0嚴重 (Critical, C)

欲了解更多資訊,請參閱 漏洞指標 (NIST)

請注意,考量到前面描述的公告優先排序與備選機制,Docker Scout 中顯示的嚴重性評級可能會偏離此評級系統。

最大映像檔大小

Docker Scout 平台上的映像檔分析,以及由 Docker Desktop 背景索引觸發的分析,映像檔檔案大小限制為 10 GB(未壓縮)。若要分析大於此大小的映像檔,您可以:

透過 CLI 在本機分析的映像檔以及具有 SBOM 認證的映像檔,沒有檔案大小上限。

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.