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) 角色,才能啟用儲存庫的映像檔分析。
如何啟用映像檔分析
- 前往 Docker Scout 儀表板中的儲存庫設定 (Repository settings)。
- 選擇您想要啟用的儲存庫。
- 選擇 啟用映像檔分析 (Enable image analysis)。
如果您的儲存庫中已有映像檔,Docker Scout 會自動提取並分析最新的映像檔。
分析登錄檔(Registry)中的映像檔
若要為登錄檔中的映像檔觸發分析,請將映像檔推送到已與 Docker Scout 整合的登錄檔,並推送到已啟用映像檔分析的儲存庫中。
注意Docker Scout 平台上的映像檔分析有 10 GB 的最大映像檔大小限制,除非該映像檔具有 SBOM 認證 (Attestation)。請參閱最大映像檔大小。
使用您的 Docker ID 登入,可透過
docker login指令或 Docker Desktop 中的 登入 (Sign in) 按鈕。建置並推送您想要分析的映像檔。
$ docker build --push --tag <org>/<image:tag> --provenance=true --sbom=true .使用
--provenance=true和--sbom=true旗標進行建置,會將建置認證 (build attestations) 附加到映像檔上。Docker Scout 使用這些認證來提供更細緻的分析結果。注意預設的
docker驅動程式僅在使用 containerd 映像檔儲存庫時支援建置認證。前往 Docker Scout 儀表板中的映像檔頁面 (Images page)。
當您將映像檔推送到登錄檔後,它很快就會出現在列表中。分析結果可能需要幾分鐘才會顯示。
在本機分析映像檔
您可以使用 Docker Desktop 或 Docker CLI 的 docker scout 指令,透過 Docker Scout 分析本機映像檔。
Docker Desktop
注意Docker Desktop 的背景索引功能支援最大 10 GB 的映像檔。請參閱最大映像檔大小。
如何透過 Docker Desktop GUI 在本機分析映像檔
提取 (Pull) 或建置您想要分析的映像檔。
前往 Docker 儀表板中的 映像檔 (Images) 視圖。
從列表中選擇一個您的本機映像檔。
這將開啟映像檔詳細視圖,顯示 Docker Scout 分析所發現該映像檔的套件與漏洞分解資訊。
CLI
docker scout CLI 指令提供了一個命令列介面,讓您能在終端機中使用 Docker Scout。
docker scout quickview:指定映像檔的摘要,請參閱快速檢視 (Quickview)docker scout cves:指定映像檔的本機分析,請參閱CVEdocker 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 認證的映像檔,沒有檔案大小上限。