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 組織中擁有 **編輯者** 或 **所有者** 角色才能在倉庫上啟用映象分析。
啟用映象分析
- 轉到 Docker Scout Dashboard 中的倉庫設定。
- 選擇要啟用的倉庫。
- 選擇 **啟用映象分析**。
如果您的倉庫已包含映象,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 使用證明來提供更精細的分析結果。
注意如果使用containerd 映象儲存,預設的 `docker` 驅動程式才支援構建證明。
轉到 Docker Scout Dashboard 中的映象頁面。
映象在推送到登錄檔後不久就會出現在列表中。分析結果可能需要幾分鐘才能顯示。
本地分析映象
您可以使用 Docker Desktop 或 Docker CLI 的 `docker scout` 命令,使用 Docker Scout 分析本地映象。
Docker Desktop
注意Docker Desktop 後臺索引支援最大 10 GB 的映象。請參閱最大映象大小。
使用 Docker Desktop GUI 本地分析映象
拉取或構建您要分析的映象。
在 Docker Dashboard 中轉到 **映象** 檢視。
在列表中選擇您的一個本地映象。
這將開啟映象詳細資訊檢視,顯示 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 證明的映象沒有最大檔案大小限制。