容器掃描總覽

Artifact Analysis 提供兩種掃描映像檔的方式:自動掃描隨選掃描。本文件將概略說明這兩種掃描類型的功能。

成果分析功能也提供中繼資料管理功能。如要進一步瞭解如何搭配使用掃描和中繼資料儲存空間,確保 CI/CD 管道的端對端安全性,請參閱「構件分析總覽」。

請參閱定價,進一步瞭解掃描容器映像檔的相關費用。

這份總覽假設您已熟悉如何在 Artifact RegistryContainer Registry (已淘汰) 中使用 Docker 存放區。

自動掃描

構件分析會在 Artifact Registry 或 Container Registry 中對構件執行安全漏洞掃描(已淘汰)。Artifact Analysis 也會識別依附元件和授權,協助您瞭解軟體組合。

自動掃描包含兩項主要工作:推送時掃描和持續分析。

推送掃描

將新的映像檔上傳至 Artifact Registry 或 Container Registry 時,Artifact Analysis 會掃描這些映像檔。這項掃描作業會擷取容器中的套件相關資訊。系統會根據圖片摘要,只掃描圖片一次。也就是說,新增或修改標記不會觸發新的掃描作業。

Artifact Analysis 只會偵測公開監控安全漏洞的套件中所存在的安全漏洞。

完成映像檔的掃描時,產生的安全漏洞結果是該映像檔的安全漏洞例項集合。

持續分析

當您上傳映像檔時,Artifact Analysis 會針對所發現的安全漏洞建立例項。初始掃描作業完成後,這項功能會持續監控 Artifact Registry 和 Container Registry 中掃描映像檔的中繼資料,找出新的安全漏洞。

Artifact Analysis 每天會多次從安全漏洞來源接收新的安全漏洞資訊和更新資訊。收到新的安全漏洞資料時,Artifact Analysis 會更新掃描映像檔的中繼資料,確保資料保持最新狀態。Artifact Analysis 會更新現有的安全漏洞例項、為新註記建立新的安全漏洞例項,並刪除不再有效的安全漏洞例項。

Artifact Analysis 只會更新過去 30 天內推送或提取的映像檔中繼資料。30 天後,系統就不會再更新這些中繼資料,且結果會失效。此外,Artifact Analysis 會封存過時逾 90 天的中繼資料,且中繼資料不會顯示在 Google Cloud 控制台、gcloud 或 API 中。如要重新掃描安全漏洞中繼資料已過時或已封存的映像檔,請提取該映像檔。重新整理中繼資料最多可能需要 24 小時。

資訊清單表

您也可以使用資訊清單進行漏洞掃描。資訊清單是多個平台資訊清單的指標清單。可讓單一映像檔與多個架構或作業系統變化版本搭配使用。

Artifact Analysis 安全漏洞掃描功能僅支援 Linux amd64 映像檔。如果清單指標指向多個 Linux amd64 映像檔,系統只會掃描第一個映像檔;如果沒有指向 Linux amd64 映像檔的指標,您就不會收到任何掃描結果。

隨選掃描

隨選掃描功能可讓您使用 gcloud CLI,在電腦本機或登錄檔中掃描容器映像檔。這樣一來,您就能視需要存取安全漏洞結果,彈性自訂 CI/CD 管道。

支援的套件類型

當您將容器映像檔推送至 Artifact Registry 中的 Docker 存放區時,Artifact Analysis 可掃描多種 OS 套件和應用程式語言套件中的安全漏洞。

Container Registry 已淘汰。在 Container Registry 中,自動掃描功能只會掃描 OS 套件。如果您使用的是 Container Registry,請參閱這篇文章,瞭解如何轉換至 Artifact Registry。

下表比較了人工製品分析工具可透過各個掃描服務掃描的套件類型:

支援的 OS 套件

使用 Artifact Registry 自動掃描 使用 Container Registry 進行自動掃描(已淘汰) 隨選掃描
AlmaLinux OS
Alpine
CentOS
Chainguard
Debian
Google Distroless
Red Hat Enterprise Linux (RHEL)
Red Hat 通用基本映像檔 (UBI)
Rocky Linux
SUSE Linux Enterprise Server (SLES)
Ubuntu
Wolfi

支援的應用程式語言套件

使用 Artifact Registry 自動掃描 使用 Container Registry 進行自動掃描(已淘汰) 隨選掃描
Go 套件
Java 套件
Node.js 套件
PHP 套件
Python 套件
Ruby 套件
Rust 套件
.NET 套件

只有在套件經過容器化並儲存在 Docker 格式存放區時,Artifact Analysis 才會掃描 Artifact Registry 中的應用程式語言套件。系統不支援其他 Artifact Registry 存放區格式

如要進一步瞭解每項登錄產品的功能,請參閱比較圖表

Windows Server 容器不支援構件分析。

Artifact Analysis 介面

您可以在 Google Cloud 主控台上,針對 Artifact Registry 中的容器查看映像檔安全漏洞和映像檔中繼資料。

您可以使用 gcloud CLI 查看安全漏洞和映像檔中繼資料

您也可以使用 Artifact Analysis REST API 執行上述任一動作。與其他 Cloud Platform API 一樣,您必須使用 OAuth2 驗證存取權。通過驗證後,您也可以使用 API 建立自訂註記和例項,以及查看安全漏洞例項。

Artifact Analysis API 支援 gRPC 和 REST/JSON。您可以使用用戶端程式庫或 REST/JSON 適用的 cURL,向 API 發出呼叫。

控制有安全漏洞的映像檔部署作業

您可以使用二進位授權,根據 Cloud Build 管道中「Artifact Analysis」提供的安全漏洞資訊,建立安全漏洞許可清單。如果漏洞違反許可清單中的政策,建構作業就會失敗。

您也可以整合容器分析和二進位授權,建立認證,避免在您的部署環境中執行具有已知安全問題的容器映像檔

安全漏洞來源

以下節將列出「Artifact Analysis」用來取得 CVE 資料的漏洞來源。

OS 套件掃描

構件分析使用下列來源:

語言套件掃描

Artifact Analysis 支援針對容器映像檔中的語言套件進行安全漏洞掃描。安全漏洞資料是從 GitHub 安全性警示資料庫取得。

在大多數情況下,每個安全漏洞都會指派一個 CVE ID,這個 ID 會成為該安全漏洞的主要識別碼。如果漏洞沒有指派 CVE ID,系統會改為指派 GHSA ID 做為 ID。如果該漏洞日後獲得 CVE ID,漏洞 ID 就會更新為與 CVE 相符。詳情請參閱「檢查專案中的特定安全漏洞」。

支援的 OS 版本

現階段的 Artifact Analysis 支援下列作業系統軟體版本的安全漏洞掃描:

  • AlmaLinux OS - 版本:8、9 和次要版本
  • Alpine Linux - 版本:3.3、3.4、3.5、3.6、3.7、3.8、3.9、3.10、3.11、3.12、3.13、3.14、3.15、3.16、3.17、3.18、3.19、3.20、3.21
  • CentOS - 版本:6、7、8 和次要版本
  • Chainguard:單一發布測試群組的滾動式更新。
  • Debian GNU/Linux - 版本:11、12、13
  • Red Hat Enterprise Linux (RHEL) - 支援的版本:7、8、9 和次要版本,可進行自動登錄掃描。
  • Red Hat Universal Base Image (UBI) - 8、9 和次要版本
  • Rocky Linux - 版本:8、9 和次要版本
  • SUSE Linux Enterprise Server (SLES) - 版本:12、15 和次要版本;SLES for SAP 也支援相同版本
  • Ubuntu - 版本:14.04、16.04、18.04、20.04、22.04、24.04、24.10
  • Wolfi - 在單一發布測試群組中進行滾動式更新。

限制

  • 作業構件分析的主要功能是掃描及偵測容器中的安全漏洞,並讓貴機構看到這些安全漏洞。雖然「異常分析」功能可識別圖片的特性,但無法保證能提高或降低貴機構驗證圖片完整性或信任度的功能。為進一步建立這份信任,Google 提供多種解決方案,可單獨使用或合併使用。進一步瞭解我們在軟體供應鏈安全性方面的做法

  • 根據每個已發布主要版本的最新次要版本,Artifact Analysis 會針對 RHEL 提供漏洞掃描結果。掃描結果可能會因 RHEL 舊版次版本而出現不準確的結果。

  • RHEL 9 版本不支援隨選掃描。

套件管理工具和語意化版本

後續步驟