Cloud Native Security 的關鍵:Notary Project 如何強化軟體供應鏈安全

在雲原生技術快速發展的今天,軟體供應鏈安全(Software Supply Chain Security)已成為企業必須面對的核心挑戰。隨著容器化、微服務與持續整合/持續部署(CI/CD)的普及,軟體供應鏈中的潛在風險點大幅增加,例如第三方元件的惡意植入、鏡像簽名偽造或資料傳輸中斷等。為應對這些威脅,CNCF(Cloud Native Computing Foundation)旗下推出的 Notary Project 提供了一套基於標準的解決方案,專注於確保雲原生製品(如容器鏡像)的認證與完整性,成為軟體供應鏈安全的重要基石。

Notary Project 的核心目標與技術架構

Notary Project 的核心目標在於建立一個可信任的軟體供應鏈驗證機制,透過標準化工具與流程,確保雲原生製品在取得、建構與部署階段的真實性與安全性。其技術架構主要包含以下幾個關鍵組成:

1. 標準化支援與協議整合

Notary Project 支援多種國際標準,包括:

  • OCI(Open Container Initiative):實現跨註冊庫與多雲平臺的鏡像管理,確保資產格式一致性。
  • IETF 簽名格式:支援 JSON Web Signature(JWT)與 COSE 簽名,適應邊緣設備與物聯網(IoT)的輕量需求。
  • 時間戳與撤銷檢查:透過第三方安全審計,確保簽名的時效性與有效性。

2. 插件框架與多層級簽名驗證

Notary Project 提供模組化的插件框架,支援多種簽名機制,例如 HSM 裝置、AWS Signer、阿里雲、Vault 等。其簽名流程包含三個子命令:key add(密鑰管理)、generate signature(簽名生成)、get plugin metadata(插件元數據查詢)。此外,Notary 支援多層級簽名驗證,例如:

  • 開發階段:內部流水線簽名(一級)。
  • QA 階段:漏洞掃描與人工測試簽名(二級)。
  • 生產環境:最終驗證簽名(三級)。

3. 信任策略與驗證流程

Notary 的信任策略(Trust Policy)允許用戶自訂驗證規則,包含信任存儲(Trust Store)與信任識別(Trust Identity)。驗證流程中,消費者端下載檔案與簽名後,透過信任策略驗證簽名有效性,並確保發佈者提供的憑證主體字段符合預設規則。

實際應用場景與操作步驟

Notary Project 的應用場景涵蓋軟體供應鏈的三個主要階段:

1. 取得階段

  • 驗證外部鏡像的簽名,確保來自可信來源。
  • 企業內部註冊庫複製鏡像後,定期掃描漏洞並簽名,作為內部使用證明。

2. 建構階段

  • 驗證外部基礎鏡像與工具鏡像的簽名,確保符合企業政策。
  • 建構應用鏡像後,簽名安全元數據(如合規報告、漏洞報告)。

3. 部署階段

  • 部署前驗證簽名與安全元數據,確保鏡像可信任。
  • 支援多層級簽名驗證(開發、測試、生產環境)。

操作步驟大致如下:

  1. 安裝 Notary 工具與相關插件。
  2. 使用 blob notation sign 命令對檔案進行簽名,支援 Cozy 二進位格式與 SPDX 媒體類型。
  3. 將簽名後的檔案與憑證獨立存儲,並在發布時一同傳輸。
  4. 消費端透過信任策略驗證簽名,確保資產真實性。

關鍵優勢與挑戰

優勢:

  • 標準化整合:支援 OCI、IETF 等國際標準,提升跨平臺兼容性。
  • 多層級驗證:透過不同環境的簽名機制,強化供應鏈安全性。
  • 生態整合:與 DevOps 工具(如 Flux CD、GitHub Actions)及註冊庫(OCI 支援者)深度整合。

挑戰:

  • 非 OCI 資產支援:目前尚未完全解決非 OCI 格式(如二進位檔、AI 模型)的簽名問題。
  • 生態擴展:未來需整合更多工具(如 GitLab、Zapier CD)以提升應用廣度。

總結

Notary Project 透過 OCI 核心功能擴展、零依賴設計與非 OCI 資產支援,為雲原生軟體供應鏈提供強化的簽名與驗證解決方案。其多層級簽名驗證與標準化整合,不僅降低軟體供應鏈風險,也為企業建立可追蹤、可驗證的開發流程。對於追求雲原生安全的組織,Notary Project 是值得深入探索的關鍵技術。