通用漏洞披露 (CVE)
什麼是 CVE?
CVE 是公開披露的軟體或硬體網路安全缺陷。每個 CVE 都分配有一個唯一識別符號(例如,CVE-2024-12345),幷包含一個標準化描述,允許組織持續跟蹤和處理漏洞。
在 Docker 的上下文中,CVE 通常與基礎映象或應用程式依賴項中的問題有關。這些漏洞範圍從輕微的錯誤到嚴重的安全風險,例如遠端程式碼執行或許可權提升。
為什麼 CVE 很重要?
定期掃描和更新 Docker 映象以緩解 CVE 對於維護安全合規的環境至關重要。忽略 CVE 可能導致嚴重的安全漏洞,包括:
- 未經授權的訪問:漏洞利用可授予攻擊者未經授權的系統訪問許可權。
- 資料洩露:敏感資訊可能被暴露或竊取。
- 服務中斷:漏洞可能被利用來中斷服務或導致停機。
- 合規性違規:未能解決已知漏洞可能導致不符合行業法規和標準。
Docker 強化映象如何幫助緩解 CVE
Docker 強化映象 (DHI) 從一開始就旨在最大限度地降低 CVE 風險。透過採用安全優先的方法,DHI 在 CVE 緩解方面具有以下優勢:
減少攻擊面:DHI 採用無發行版方法構建,剝離了不必要的元件和包。這種映象大小的減小(比傳統映象小 95%)限制了潛在漏洞的數量,使攻擊者更難利用不必要的軟體。
更快的 CVE 修復:DHI 由 Docker 維護,並提供企業級 SLA,持續更新以解決已知漏洞。嚴重和高危 CVE 會迅速修補,確保您的容器保持安全,無需人工干預。
主動漏洞管理:透過使用 DHI,組織可以主動管理漏洞。映象附帶 CVE 和漏洞暴露 (VEX) 提要,使團隊能夠及時瞭解潛在威脅並採取必要的措施。
掃描映象中的 CVE
定期掃描 Docker 映象中的 CVE 對於維護安全的容器化環境至關重要。雖然 Docker Scout 已整合到 Docker Desktop 和 Docker CLI 中,但 Grype 和 Trivy 等工具提供了替代掃描功能。以下是使用每個工具掃描 Docker 映象中 CVE 的說明。
Docker Scout
Docker Scout 已整合到 Docker Desktop 和 Docker CLI 中。它提供漏洞洞察、CVE 摘要以及指向修復指南的直接連結。
使用 Docker Scout 掃描 DHI
要使用 Docker Scout 掃描 Docker 強化映象,請執行以下命令:
$ docker scout cves <your-namespace>/dhi-<image>:<tag>
示例輸出
v SBOM obtained from attestation, 101 packages found
v Provenance obtained from attestation
v VEX statements obtained from attestation
v No vulnerable package detected
...
有關更詳細的過濾和 JSON 輸出,請參閱 Docker Scout CLI 參考。
Grype
Grype 是一款開源掃描器,可根據 NVD 和發行版 advisories 等漏洞資料庫檢查容器映象。
使用 Grype 掃描 DHI
安裝 Grype 後,您可以透過拉取映象並執行掃描命令來掃描 Docker 強化映象:
$ docker pull <your-namespace>/dhi-<image>:<tag>
$ grype <your-namespace>/dhi-<image>:<tag>
示例輸出
NAME INSTALLED FIXED-IN TYPE VULNERABILITY SEVERITY EPSS% RISK
libperl5.36 5.36.0-7+deb12u2 (won't fix) deb CVE-2023-31484 High 79.45 1.1
perl 5.36.0-7+deb12u2 (won't fix) deb CVE-2023-31484 High 79.45 1.1
perl-base 5.36.0-7+deb12u2 (won't fix) deb CVE-2023-31484 High 79.45 1.1
...
Trivy
Trivy 是一款用於容器和其他工件的開源漏洞掃描器。它檢測作業系統包和應用程式依賴項中的漏洞。
使用 Trivy 掃描 DHI
安裝 Trivy 後,您可以透過拉取映象並執行掃描命令來掃描 Docker 強化映象:
$ docker pull <your-namespace>/dhi-<image>:<tag>
$ trivy image <your-namespace>/dhi-<image>:<tag>
示例輸出
Report Summary
┌──────────────────────────────────────────────────────────────────────────────┬────────────┬─────────────────┬─────────┐
│ Target │ Type │ Vulnerabilities │ Secrets │
├──────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ <namespace>/dhi-<image>:<tag> (debian 12.11) │ debian │ 66 │ - │
├──────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ opt/python-3.13.4/lib/python3.13/site-packages/pip-25.1.1.dist-info/METADATA │ python-pkg │ 0 │ - │
└──────────────────────────────────────────────────────────────────────────────┴────────────┴─────────────────┴─────────┘
使用 VEX 過濾已知不可利用的 CVE
Docker 強化映象包含簽名的 VEX (Vulnerability Exploitability eXchange) 證明,用於識別與映象執行時行為無關的漏洞。
使用 Docker Scout 時,這些 VEX 宣告會自動應用,無需手動配置。
要手動檢索支援 VEX 證明的工具的 VEX 證明:
$ docker scout attest get \
--predicate-type https://openvex.dev/ns/v0.2.0 \
--predicate \
<your-namespace>/dhi-<image>:<tag> --platform <platform> > vex.json
例如:
$ docker scout attest get \
--predicate-type https://openvex.dev/ns/v0.2.0 \
--predicate \
docs/dhi-python:3.13 --platform linux/amd64 > vex.json
這將建立一個包含指定映象的 VEX 宣告的 vex.json
檔案。然後,您可以將此檔案與支援 VEX 的工具一起使用,以過濾掉已知不可利用的 CVE。
例如,對於 Grype 和 Trivy,您可以使用 --vex
標誌在掃描期間應用 VEX 宣告
$ grype <your-namespace>/dhi-<image>:<tag> --vex vex.json