Tenable:透過 SLSA 加強 Nessus 軟體供應鏈

在軟體供應鏈安全性日益受到重視的當下,作為網路安全領域的翹楚,Tenable 公司採用了嚴格的 Supply-chain Levels for Software Artifacts (SLSA) 框架來保護其旗艦產品 Nessus 的軟體供應鏈。本篇文章分享了 Tenable 從 SLSA 新手到專家的歷程,以及實施 SLSA 框架的心得與收穫。

什麼是 SLSA?

SLSA 是由 Google 開發的一套軟體供應鏈安全標準,旨在確保軟體製程的完整性與可靠性。它提供了一系列漸進式的指南,幫助企業在軟體生產的每個環節建立可信任的機制。

SLSA 框架可以被視為食品安全處理的指引,確保每一個成分都是可信的,同樣地,SLSA 也為軟體製作過程的每個步驟提供了安全保證。

Tenable 在實施 SLSA 的初期,主要有以下幾個關鍵體會:

1. 建立明確的信任機制:SLSA 著重於直接控制範圍內的可信任性,如原始碼庫、建置系統、軟體成品和版本控制系統等。

2. 增強供應鏈信心:SLSA 旨在透過驗證每個建置步驟,並防範上游供應鏈攻擊,來強化建置流程的可信度。

3. 需要自主實作:SLSA 只是一個藍圖,並非現成的解決方案,需要手動進行工程和流程變更,以符合 SLSA 的要求。

Tenable 採用 SLSA 的歷程

經過數月的努力,Tenable 首先達成了 SLSA Level 1 的要求,其中包括:

1. 建立腳本化的建置流程:Tenable 的 Nessus 產品建置流程全部由版本控制的管線定義和建置腳本來執行,過程可被完全驗證。

2. 提供建置來源證明:Tenable 記錄並儲存了 Nessus 建置的來源清單(SBOM)和建置過程細節(provenance),以便日後重建。

3. 採用版本控制系統:Nessus 的原始碼受版本控制系統管理,能夠追蹤每個修訂的變更歷史,包括提交者、時間、變更內容等。

在 SLSA Level 1 的驗證過程中,Tenable 也遇到了一個需要特別處理的挑戰 - 防止秘密資訊在 provenance 文件中洩露。他們採用了自動掃描provenance,並以 <Redacted>替換掉任何檢測到的敏感資訊。

接下來是 SLSA Level 2 的實施,其主要包括:

1. 使用受管理的建置服務:Tenable 確保所有建置步驟都在受控的建置服務上執行,而非開發人員的個人電腦上。

2. 驗證 provenance 的真實性:Tenable 確保 provenance 資訊是由專用的建置管線直接產生,而非人工插入或修改。provenance 資訊也經過數位簽章以防止篡改。

3. 驗證建置環境和來源:Tenable 使用 Rego 政策來檢查 provenance,確保建置代理程式的可信度,以及原始碼來源的正確性。

最後,Tenable 達成了 SLSA Level 3 的要求,包括:

1. 永久保留原始碼變更歷史

2. 確保完全隔離的建置環境,每個步驟都在獨立的虛擬機上進行

3. 確保 provenance 資訊的真實性和不可篡改性,由專用的簽章服務簽署

Tenable 在 2023年12月通過第三方安全評估,獲得了 SLSA Level 3 的認證。

結語

Tenable 的 SLSA 實施經驗給其他組織帶來以下啟示:

1. 軟體供應鏈安全是重中之重,需要投入大量資源來建立可信任的機制。

2. SLSA 雖然是一個嚴格的框架,但能有效防範上游的供應鏈攻擊,值得企業認真考慮。

3. 實施 SLSA 需要大量的工程和流程變更,沒有現成的方案,需要自主實作。

4. 在實施過程中,會遇到需要特別處理的挑戰,需要審慎規劃並靈活應對。

Tenable的 SLSA 之路並非一蹴而就,但他們相信這樣的努力最終將為產品和客戶帶來長遠的好處。

詳情請看:

Strengthening the Nessus Software Supply Chain with SLSA

Posted in  on 4月 05, 2026 by Kevin |