軟體工件供應鏈級別 (SLSA)

什麼是 SLSA?

軟體工件供應鏈級別 (SLSA) 是一個安全框架,旨在增強軟體供應鏈的完整性和安全性。SLSA 由 Google 開發並由開放原始碼安全基金會 (OpenSSF) 維護,提供了一套指導方針和最佳實踐,以防止篡改、提高完整性並保護軟體專案中的包和基礎設施。

SLSA 定義了 四個不斷提高的安全嚴謹性構建級別(0-3),重點關注構建出處、原始碼完整性和構建環境安全等領域。每個級別都在前一個級別的基礎上建立,為實現更高水平的軟體供應鏈安全提供了結構化方法。

為什麼 SLSA 很重要?

由於軟體供應鏈日益複雜和互聯,SLSA 對於現代軟體開發至關重要。SolarWinds 漏洞等供應鏈攻擊突顯了軟體開發過程中的漏洞。透過實施 SLSA,組織可以:

  • 確保工件完整性:驗證軟體工件在構建和部署過程中未被篡改。

  • 增強構建出處:維護關於軟體工件如何以及何時生成的、可驗證的記錄,提供透明度和問責制。

  • 保護構建環境:實施控制措施,保護構建系統免受未經授權的訪問和修改。

  • 緩解供應鏈風險:降低將漏洞或惡意程式碼引入軟體供應鏈的風險。

什麼是 SLSA 構建級別 3?

SLSA 構建級別 3,即強化構建,是 SLSA 框架中四個漸進級別中最高的級別。它引入了嚴格的要求,以確保軟體工件以安全且可追溯的方式構建。要達到級別 3,構建必須:

  • 完全自動化和指令碼化,以防止手動篡改。
  • 使用強制執行源和構建器身份驗證的受信任構建服務。
  • 生成一個簽名、防篡改的出處記錄,描述工件是如何構建的。
  • 捕獲關於構建環境、源儲存庫和構建步驟的元資料。

此級別提供了強有力的保證,即軟體是在受控、可審計的環境中從預期源構建的,這顯著降低了供應鏈攻擊的風險。

Docker 強化映象和 SLSA

Docker 強化映象 (DHI) 是預設安全的容器映象,專為現代生產環境而構建。每個 DHI 都經過加密簽名並符合 SLSA 構建級別 3 標準,確保可驗證的構建出處和完整性。

透過將符合 SLSA 的 DHI 整合到您的開發和部署流程中,您可以:

  • 實現更高的安全級別:利用符合嚴格安全標準的映象,降低漏洞和攻擊的風險。

  • 簡化合規性:利用簽名軟體物料清單 (SBOM) 和漏洞例外 (VEX) 宣告等內建功能,促進符合 FedRAMP 等法規。

  • 提高透明度:訪問有關每個映象元件和構建過程的詳細資訊,促進透明度和信任。

  • 簡化審計:利用可驗證的構建記錄和簽名來簡化安全審計和評估。

獲取並驗證 Docker 強化映象的 SLSA 出處

每個 Docker 強化映象 (DHI) 都經過加密簽名幷包含證明。這些證明提供了可驗證的構建出處,並證明符合 SLSA 構建級別 3 標準。

要獲取並驗證 DHI 的 SLSA 出處,您可以使用 Docker Scout。

$ docker scout attest get <your-namespace>/dhi-<image>:<tag> \
  --predicate-type https://slsa.dev/provenance/v0.2 \
  --verify

例如:

$ docker scout attest get docs/dhi-node:20.19-debian12-fips-20250701182639 \
  --predicate-type https://slsa.dev/provenance/v0.2 \
  --verify

資源

有關 SLSA 定義和 Docker 構建的更多詳細資訊,請參閱 SLSA 定義