比較
CRACI vs Finite State
Finite State 從進入裝置的所有內容建立產品風險紀錄,包括並非由您撰寫的程式碼。CRACI 則從您能完全掌控的地方建立紀錄:您自己的建置。
更新日期
簡短的答案
Finite State 是針對連網裝置的產品資安平台。它分析韌體、二進位檔、原始碼與供應商 SBOM,依可達性排定漏洞優先順序, 並將結果轉化為 CRA 等法規所需的佐證資料。CRACI 則是 GitHub Actions 執行器,會在建置執行時記錄其拉入的內容, 依據該紀錄產生 SBOM,並控管建置可連線的對象。Finite State 分析您出貨的內容,無論其來源為何; CRACI 則記錄您自己的建置做了什麼。兩者大多是互補的。
一覽表
| 功能 | CRACI | Finite State |
|---|---|---|
| 執行您的建置 | 作業在 CRACI 執行器上執行 | 由您的 CI 上傳二進位檔或 SBOM |
| 記錄建置擷取的內容 | 由執行器在每個作業期間觀測 | 分析原始碼、二進位檔與供應商 SBOM |
| 建置執行期間的對外連線政策 | 作業前檢查,失效即封鎖 | 不在其範圍內 |
| 二進位檔與韌體分析 | 50 種以上的二進位指令集架構 | |
| 供應商 SBOM 與第三方檢測結果 | 可加入廠商 SBOM;不含第三方檢測結果 | 匯入單一產品紀錄 |
| 可達性分析 | 優先處理真正可被利用的項目 | |
| 記錄分級研判決策 | 研判檢測結果並分派給各團隊 | 含可利用性狀態的 VEX 決策 |
| CycloneDX 與 SPDX 格式的 SBOM | 每次建置一份,附完整度狀態 | 每個版本一份,來自原始碼與二進位檔 |
| CRA 佐證資料 | CycloneDX 或 SPDX 格式的 SBOM、透過 API 取得紀錄、預先備妥 CRA 通報內容;不提供報告匯出 | CRA 控制項對應與可供稽核的報告 |
| CI 系統 | 目前支援 GitHub Actions;GitLab CI 與 Jenkins 已列入產品藍圖 | GitHub Actions、GitLab CI、Jenkins 等 |
- 支援
- 部分支援
- 不支援
Finite State 的強項
涵蓋二進位檔與韌體。Finite State 可針對韌體、二進位檔與原始碼產生 SBOM 與軟體資產清冊, 「支援 50 種以上的二進位指令集架構」。對於在特殊晶片上執行多家廠商程式碼的裝置而言,這樣的廣度正是關鍵。
橫跨供應商的單一紀錄。它將韌體、二進位檔、原始碼、供應商 SBOM 與第三方檢測結果整合到同一個平台, 當您需要比對供應商的說法與產品中實際包含的內容時,這會很有幫助。
減少雜訊。Finite State 依可達性、漏洞利用情資與產品脈絡為檢測結果排序。 它表示,自 2024 年以來,其進行可達性分析的檢測結果中,有 40.5% 確認為不可達。 它會記錄包含產品影響與可利用性狀態的 VEX 決策。
法規遵循佐證資料。其法規遵循流程涵蓋歐盟 CRA 控制項對應與佐證資料維護, 並能產生含 SBOM 與 VEX 檔案的可供稽核報告。它也支援 FDA 指引、UN R155 與 IEC 62443 等框架。
CI 整合。Finite State 可在 GitHub Actions、GitLab CI 與 Jenkins 中嵌入檢查。其 Binary Scan action 會將 CI 期間建置的二進位檔上傳到 Finite State 平台,進行快速或完整掃描。
CRACI 的不同之處
Finite State 從建置產物著手:完成的二進位檔、原始碼樹、供應商送來的 SBOM。CRACI 則從建置本身著手, 因為建置就在 CRACI 上執行。
實際觀測,而非推斷
您將 runs-on 改為 craci,作業就會在 CRACI 執行器上的隔離虛擬機器中執行。
具備套件感知能力的代理伺服器會記錄作業從套件來源下載的內容,而從 CI 快取還原的套件也會延續記錄。
每份 SBOM 都會依作業與快取標示其完整度:Complete、Complete with connections、Incomplete、Unavailable 或 Not recorded。
韌體團隊可在最高 32 vCPU 與 96 GB RAM 的執行器上執行 Yocto。
BitBake 從 Yocto 原始碼鏡像擷取的原始碼,會記錄在 CRACI 作業 SBOM 中。
若想了解掃描完成的 Yocto 映像檔有何不同,請參閱為何 SBOM 掃描工具會遺漏 Yocto 建置中的內容。
建置期間的控管
掃描輸出結果無法改變建置當時能連線到哪裡,CRACI 的對外連線政策則可以:它可設為預設拒絕或預設允許, 在作業開始前驗證,失效即封鎖,並在違規時發出警示。
來源證明與監控
API 會回傳 SBOM、網路追蹤與來源證明。CRACI 會彙整各次建置與各儲存庫的漏洞, 並在新的資安公告出現時持續重新評估受監控的 SBOM。
CRACI 不分析二進位檔,也不進行可達性分析。其建置紀錄涵蓋在 CRACI 上執行的建置, 您也可以加入廠商提供的 SBOM。對於您收到的、沒有 SBOM 的供應商二進位韌體,Finite State 涵蓋了 CRACI 未涵蓋的範圍。
部署位置的資產清冊
CRACI 的資產清冊檢視會在全球範圍內,準確顯示哪些軟體版本部署到哪些產品上。當新的漏洞出現時, 您可以直接看出哪些產品執行受影響的版本,而不必從版本說明與試算表中拼湊答案。
何時使用哪一個,以及何時兩者並用
- 您的韌體大多來自供應商。選擇 Finite State。二進位分析與供應商 SBOM 匯入正是為此而設計。
- 您在 GitHub Actions 中建置自己的映像檔與應用程式。CRACI 會記錄每次建置。將同一個建置產物上傳到 Finite State, 您就能將建置紀錄與二進位分析並列檢視。
- 您需要涵蓋眾多產品與供應商的紀錄系統。選擇 Finite State。CRACI 的 SBOM 可匯出為 CycloneDX 或 SPDX,這兩種格式都可透過 Finite State 的上傳 action 匯入。
- 您想限制建置能下載的內容。選擇 CRACI。這種控管只能在建置執行的地方實現。
關於 CRA
Cyber Resilience Act(CRA)要求製造商識別並記錄其產品中的元件(包括 SBOM),在支援期間內處理漏洞, 並自 2026 年 9 月起通報遭積極利用的漏洞。Finite State 透過 CRA 控制項對應與報告,協助您彙整涵蓋產品及其供應商的佐證資料。 CRACI 則提供每次建置的佐證資料,說明哪些內容進入了您所建置的軟體,並提供來源證明、持續監控,以及 CycloneDX 或 SPDX 格式的 SBOM 匯出。 CRACI 將製造商在更廣泛的 CRA 法規遵循流程中所需的相當大一部分軟體供應鏈可視性與佐證資料自動化; 但 CRACI 本身並不能讓產品符合法規。請閱讀 CRA 的要求。
在 Finite State 之外加入 CRACI
您不需要將任何東西移出 Finite State。將建置作業指向 runs-on: craci,保留 Finite
State 的上傳步驟,同一個工作流程就會在 CRACI 執行器上執行,並由 CRACI 記錄。關於 Yocto,
CRACI 文件中的範例展示了完整的 BitBake
工作流程。CRACI 目前僅支援 GitHub Actions,因此 GitLab CI 或 Jenkins 管線必須搬移才能使用
CRACI 執行器。GitLab CI 與 Jenkins 已列入產品藍圖。了解 CRACI 如何服務工業
IoT 與
消費性電子產業。
正在評估兩種以上的工具嗎?Finite State 替代方案並列比較了九種選項。