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 Personal 附帶 1 個啟用 Scout 的倉庫。如果您需要額外的倉庫,可以升級您的 Docker 訂閱。請參閱訂閱和功能,瞭解每個訂閱層級包含多少個啟用 Scout 的倉庫。

在第三方登錄檔中的倉庫上啟用映象分析之前,該登錄檔必須已與您的 Docker 組織的 Docker Scout 整合。Docker Hub 預設已整合。有關更多資訊,請參閱容器登錄檔整合

注意

您必須在 Docker 組織中擁有 **編輯者** 或 **所有者** 角色才能在倉庫上啟用映象分析。

啟用映象分析

  1. 轉到 Docker Scout Dashboard 中的倉庫設定
  2. 選擇要啟用的倉庫。
  3. 選擇 **啟用映象分析**。

如果您的倉庫已包含映象,Docker Scout 會自動拉取並分析最新的映象。

分析登錄檔映象

要觸發登錄檔中映象的映象分析,請將映象推送到已與 Docker Scout 整合的登錄檔,推送到已啟用映象分析的倉庫。

注意

Docker Scout 平臺上的映象分析最大映象檔案大小限制為 10 GB,除非映象具有 SBOM 證明。請參閱最大映象大小

  1. 使用 `docker login` 命令或 Docker Desktop 中的 **登入** 按鈕登入您的 Docker ID。

  2. 構建並推送您要分析的映象。

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

    使用 `--provenance=true` 和 `--sbom=true` 標誌進行構建會將構建證明附加到映象中。Docker Scout 使用證明來提供更精細的分析結果。

    注意

    如果使用containerd 映象儲存,預設的 `docker` 驅動程式才支援構建證明。

  3. 轉到 Docker Scout Dashboard 中的映象頁面

    映象在推送到登錄檔後不久就會出現在列表中。分析結果可能需要幾分鐘才能顯示。

本地分析映象

您可以使用 Docker Desktop 或 Docker CLI 的 `docker scout` 命令,使用 Docker Scout 分析本地映象。

Docker Desktop

注意

Docker Desktop 後臺索引支援最大 10 GB 的映象。請參閱最大映象大小

使用 Docker Desktop GUI 本地分析映象

  1. 拉取或構建您要分析的映象。

  2. 在 Docker Dashboard 中轉到 **映象** 檢視。

  3. 在列表中選擇您的一個本地映象。

    這將開啟映象詳細資訊檢視,顯示 Docker Scout 對您選擇的映象進行的分析所發現的軟體包和漏洞的詳細資訊。

命令列介面

`docker scout` CLI 命令提供了從終端使用 Docker Scout 的命令列介面。

  • `docker scout quickview`:指定映象的摘要,請參閱快速檢視
  • `docker scout cves`:指定映象的本地分析,請參閱CVEs
  • `docker 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 根據來自建議來源的漏洞資料為漏洞分配嚴重性評級。建議根據受漏洞影響的軟體包型別進行排名和優先排序。例如,如果漏洞影響 OS 軟體包,則優先考慮發行版維護者分配的嚴重性級別。

如果首選建議來源已為 CVE 分配了嚴重性評級,但未分配 CVSS 分數,Docker Scout 會回退顯示來自另一個來源的 CVSS 分數。首選建議的嚴重性評級和回退建議的 CVSS 分數會一起顯示。這意味著,如果首選建議分配了 `LOW` 評級但沒有 CVSS 分數,並且回退建議分配了 9.8 的 CVSS 分數,則漏洞的嚴重性評級可能為 `LOW`,但 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 證明的映象沒有最大檔案大小限制。