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 Scout 的免費層級允許您每個 Docker 組織最多使用 Docker Scout 3 個儲存庫。如果您需要額外的儲存庫,可以更新您的 Docker Scout 方案,請參閱Docker Scout 計費。
在您可以在第三方儲存庫的儲存庫上啟用映像檔分析之前,必須將儲存庫與您 Docker 組織的 Docker Scout 整合。Docker Hub 預設已整合。如需詳細資訊,請參閱容器儲存庫整合
注意事項
您必須在 Docker 組織中具有編輯者或擁有者角色才能在儲存庫上啟用映像檔分析。
啟用映像檔分析
- 前往 Docker Scout 儀表板中的儲存庫設定。
- 選擇您要啟用的儲存庫。
- 選擇啟用映像檔分析。
如果您的儲存庫已包含映像檔,Docker Scout 會自動提取並分析最新的映像檔。
分析儲存庫映像檔
要觸發儲存庫中映像檔的映像檔分析,請將映像檔推送到與 Docker Scout 整合的儲存庫,以及啟用映像檔分析的儲存庫。
注意事項
Docker Scout 平台上的映像檔分析最大映像檔大小限制為 10 GB,除非映像檔具有 SBOM 證明。請參閱最大映像檔大小。
使用您的 Docker ID 登入,可以使用
docker login
命令或 Docker Desktop 中的登入按鈕。建置並推送您要分析的映像檔。
$ docker build --push --tag <org>/<image:tag> --provenance=true --sbom=true .
使用
--provenance=true
和--sbom=true
旗標進行建置會將建置證明附加到映像檔。Docker Scout 使用證明來提供更精細的分析結果。注意事項
如果您使用containerd 映像檔儲存,則預設的
docker
驅動程式僅支援建置證明。前往 Docker Scout 控制面板中的映像檔頁面。
將映像檔推送至 registry 後,它會很快顯示在列表中。分析結果可能需要幾分鐘才會出現。
在本地分析映像檔
您可以使用 Docker Desktop 或 Docker CLI 的 docker scout
命令,利用 Docker Scout 分析本機映像檔。
Docker Desktop
注意事項
Docker Desktop 背景索引功能支援最大 10 GB 的映像檔。請參閱最大映像檔大小。
若要使用 Docker Desktop GUI 在本機分析映像檔
提取或建置您要分析的映像檔。
前往 Docker 控制面板中的**映像檔**視圖。
在列表中選擇您的其中一個本機映像檔。
這將開啟映像檔詳細資訊視圖,顯示 Docker Scout 分析所選映像檔後發現的套件和漏洞的細目。
CLI
docker scout
CLI 命令提供了一個命令列介面,讓您可以在終端機中使用 Docker Scout。
docker scout quickview
:指定映像檔的摘要,請參閱快速檢視docker scout cves
:指定映像檔的本機分析,請參閱CVEdocker 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 分數會一起顯示。這表示如果慣用諮詢指定了「低」等級但沒有 CVSS 分數,而備用諮詢指定了 9.8 的 CVSS 分數,則漏洞的嚴重性等級可能為 `低`,而 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 證明的映像檔沒有最大檔案大小限制。