軟體製品供應鏈等級 (SLSA)
什麼是 SLSA?
軟體製品供應鏈等級 (SLSA) 是一種旨在增強軟體供應鏈完整性與安全性的安全框架。SLSA 由 Google 開發並由開放原始碼安全基金會 (OpenSSF) 維護,提供了一套準則與最佳實踐,以防止篡改、提升完整性,並保護軟體專案中的套件與基礎設施。
SLSA 定義了四個安全性逐漸提高的 建構等級 (0–3),重點關注建構來源證明、原始碼完整性以及建構環境安全等領域。每個等級皆以前一個等級為基礎,為實現更高等級的軟體供應鏈安全提供了結構化的方法。
為什麼 SLSA 很重要?
由於軟體供應鏈日益複雜且環環相扣,SLSA 對於現代軟體開發至關重要。諸如 SolarWinds 漏洞攻擊等供應鏈攻擊,突顯了軟體開發流程中的安全性漏洞。透過實施 SLSA,組織可以:
確保製品完整性:驗證軟體製品在建構與部署過程中未遭到篡改。
增強建構來源證明:保存關於軟體製品如何以及何時產出的可驗證紀錄,提供透明度與責任追究能力。
保護建構環境:實施控制措施以保護建構系統免受未經授權的存取與修改。
降低供應鏈風險:減少在軟體供應鏈中引入漏洞或惡意程式碼的風險。
什麼是 SLSA 建構等級 3 (Build Level 3)?
SLSA 建構等級 3(強固建構,Hardened Builds)是 SLSA 框架中四個漸進等級的最高級別。它引入了嚴格的要求,以確保軟體製品是在安全且可追溯的情況下建構的。若要達到等級 3,建構必須:
- 實現完全自動化並透過腳本執行,以防止人工篡改。
- 使用強制執行原始碼與建構者驗證的受信任建構服務。
- 產生一份經過簽署且防篡改的來源證明紀錄,詳細描述製品的建構方式。
- 擷取有關建構環境、原始碼儲存庫與建構步驟的元數據 (metadata)。
此等級提供了強有力的保證,確認軟體是從預期的原始碼,在受控且可審計的環境中建構而成的,這能顯著降低供應鏈攻擊的風險。
Docker 強固映像檔與 SLSA
Docker 強固映像檔 (DHIs) 是專為現代生產環境打造、預設安全的容器映像檔。每個 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 Build 的更多詳細資訊,請參閱 SLSA 定義。