通用漏洞披露 (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