比較
CRACI vs ONEKEY
ONEKEY 檢視您出貨的韌體,CRACI 檢視產出它的建置。對多數裝置製造商而言,兩者回答的是不同的問題,而這兩個問題在 Cyber Resilience Act(CRA)下都會出現。
更新日期
簡短的答案
ONEKEY 是針對連網裝置的產品資安與法規遵循平台。您上傳韌體映像檔,它會分析二進位檔,找出元件、已知漏洞、可能的零時差漏洞與合規缺口,不需要原始碼。CRACI 是 GitHub Actions 執行器,會在每次建置執行時記錄它引入的內容,並依據這份紀錄產生 SBOM。ONEKEY 分析的是產出;CRACI 保留的是來自建置的佐證資料。兩者可以良好搭配,彼此無法互相取代。
一覽
| 功能 | CRACI | ONEKEY |
|---|---|---|
| 記錄韌體建置所擷取的內容 | 由執行器在每個作業期間觀察 | 在映像檔建置完成後才分析 |
| 執行您的 CI 建置 | 作業在 CRACI 執行器上執行 | 由您的 CI 將韌體上傳至 ONEKEY |
| 分析完成的二進位映像檔 | 自動化二進位韌體分析 | |
| 適用於非您建置的韌體 | 建置必須在 CRACI 上執行 | 不需要原始碼或網路存取 |
| 二進位檔的零時差分析 | 找出寫死憑證等問題 | |
| CycloneDX 與 SPDX 格式的 SBOM | 來自建置,並附完整性狀態 | 來自二進位檔,並可匯入 SBOM |
| 建置執行期間的對外連線政策 | 作業開始前檢查,失效即封鎖 | 不在其範圍內 |
| 版本發布後的監控 | 持續重新評估受監控的 SBOM | 每天重新分析韌體 |
| 依標準進行的引導式檢查 | 提供 SBOM 匯出與 API,無報告匯出或標準精靈 | Compliance Wizard 支援 CRA、IEC 62443 等 |
| CI 系統 | 目前支援 GitHub Actions;GitLab CI 與 Jenkins 已列入產品藍圖 | 提供 GitHub、GitLab 與 Jenkins 的文件範例 |
- 支援
- 部分支援
- 不支援
ONEKEY 的強項
不需原始碼的二進位分析。ONEKEY 直接分析編譯後的韌體。其網站說得很直白:「No source code or network access needed.」(不需要原始碼或網路存取。)當裝置上出貨的內容大多來自晶片廠商、模組供應商與外包商,而您從未見過他們的建置時,這一點就很重要。
已知 CVE 之外的發現。除了將元件與漏洞資料比對之外,ONEKEY 還會執行自動化零時差分析,在二進位檔中尋找命令注入、不安全的通訊與寫死憑證等問題。
來自映像檔的 SBOM。ONEKEY 從二進位檔產生 SBOM,可讓您匯入來自原始碼掃描工具或供應商的 SBOM,並匯出 CycloneDX 與 SPDX。
法規遵循引導。ONEKEY Compliance Wizard 引導團隊逐步檢視 Cyber Resilience Act、IEC 62443-4-2、ETSI EN 303 645 與無線電設備指令(Radio Equipment Directive)的要求,並匯出結果以供第三方驗證。
監控與 CI。其韌體監控功能會在新漏洞出現時,每天重新分析已上傳的韌體。ONEKEY 的文件說明如何從 GitHub、GitLab 或 Jenkins 上傳每個新建置,並在出現新發現時讓管線失敗。ONEKEY 也維護 unblob,這是一套用於二進位 blob 的開源解壓縮工具組。
CRACI 的不同之處
二進位掃描是從完成的映像檔往回推。CRACI 則是從建置往前推,因為它就是建置執行的機器。特別是 Yocto 映像檔,請參閱為何 SBOM 掃描工具會遺漏 Yocto 建置中的內容。
建置就是事實來源
只要變更一行 runs-on,您的韌體工作流程就會在 CRACI 的執行器上執行。作業執行時,一個能辨識套件的代理伺服器會記錄它從套件來源下載的內容,從 CI 快取還原的套件也會一併沿用。每份 SBOM 都會依作業與快取標示其完整程度:Complete、Complete with connections、Incomplete、Unavailable 或 Not recorded。對於 Yocto,CRACI 在最高 32 vCPU 與 96 GB RAM 的執行器上執行 BitBake。在一次core-image-sato 的並列建置中,CRACI 的 SBOM 包含 Yocto 自身 SPDX 輸出中的每個元件,另外還多了 88 個(例如主機套件與 GitHub Actions),並為 Yocto 列出卻未附 package URL 的 653 個 Rust crate 版本各自提供 package URL。BitBake 從 Yocto 原始碼鏡像擷取的原始碼,都會記錄在 CRACI 作業 SBOM 中。
控管建置能連線到哪裡
執行器上的對外連線(egress)政策決定作業可以連線到哪些主機。它會在作業開始前驗證、失效即封鎖(fail closed),並在違規時發出警示。對於 Yocto,它在 BitBake 自身的 BB_ALLOWED_NETWORKS 之外再加上第二層防護。
來源證明與已出貨的內容
API 會回傳 SBOM、網路軌跡與來源證明(provenance)。CRACI 不會簽署來源證明。它會彙整各建置與儲存庫的漏洞,並在資安公告出現時持續重新評估受監控的 SBOM。
CRACI 不做的事在這裡同樣重要。它不分析二進位檔,因此無法告訴您建置下載的供應商 blob 內有什麼,只能告訴您建置擷取了它,以及從哪裡擷取。
部署內容與位置的資產清冊
CRACI 的資產清冊檢視會精確顯示全球哪些軟體版本部署在哪些產品上。當新漏洞出現時,您可以直接看到哪些產品執行受影響的版本,而不必從版本說明與試算表中拼湊答案。
何時用哪一個,何時兩者並用
- 您整合了並非自己建置的韌體。選 ONEKEY。二進位分析是看清其內部的方法。
- 您在 GitHub Actions 中建置自己的 Linux 映像檔。CRACI 執行建置並記錄其輸入。加上 ONEKEY,就能對完成的映像檔獲得第二個獨立視角。
- 稽核人員詢問您如何確認 SBOM 與產品相符。CRACI 來自執行器的紀錄回答「這次建置放進了什麼」;ONEKEY 的分析回答「這個映像檔裡有什麼」。兩者可以互相交叉驗證。
- 您需要依 IEC 62443 或 ETSI EN 303 645 進行引導式檢查。ONEKEY 內建此功能。CRACI 以 CycloneDX 或 SPDX 匯出 SBOM,其 API 則回傳網路軌跡與來源證明,供您更廣泛的流程使用。
針對 CRA
Cyber Resilience Act 要求製造商識別並記錄其產品中的元件(包括 SBOM),並在產品支援期間持續處理漏洞。遭積極利用之漏洞的通報義務自 2026 年 9 月起適用。ONEKEY 的協助在於分析您投放市場的韌體,並引導您了解各項要求。CRACI 的協助則在於產出每次建置的佐證資料,說明該韌體放進了什麼,並附有來源證明與持續監控。CRACI 自動化了製造商在更廣泛的 CRA 法規遵循流程中所需的相當大一部分軟體供應鏈可視性與佐證資料;它本身並不會讓產品符合法規。請閱讀 CRA 的要求。
在 ONEKEY 之外加入 CRACI
保留您的 ONEKEY 上傳步驟。將 runs-on: craci 設定好,把韌體作業移到 CRACI 執行器上,同一個工作流程會繼續在 GitHub Actions 中執行,而 CRACI 則記錄建置。之後上傳到 ONEKEY 的,就是一個有佐證資料的建置。CRACI 文件中的 Yocto 範例展示了完整的 BitBake 工作流程。CRACI 目前僅支援 GitHub Actions,因此 GitLab 或 Jenkins 管線需要遷移才能使用 CRACI 執行器。GitLab CI 與 Jenkins 已列入產品藍圖。了解 CRACI 如何服務工業物聯網與消費性電子。
要比較的工具不只兩個嗎?ONEKEY 替代方案並列比較九個選項。