比較
CRACI vs Exein
Exein 保護的是裝置:一個在裝置上執行的代理程式,以及發布前的韌體分析工具。CRACI 保護的是建置:建置您 Yocto 映像檔的執行器,以及其中所含內容的記錄。
更新日期
簡短回答
Exein 為嵌入式與連網裝置打造資安產品。Exein Runtime 在裝置本身監控並封鎖威脅,Exein Analyzer 則在發布前掃描韌體中的漏洞。其 Yocto 層
meta-exein 會將執行期代理程式放入您的映像檔。CRACI 是 GitHub Actions 執行器:您的 Yocto 建置在其上執行,CRACI 會記錄建置下載的內容,並限制建置可連線的目的地。Exein 作用於裝置與韌體;CRACI 作用於建置。兩者都需要的團隊,多半會同時使用兩者。
快速比較
| 功能 | CRACI | Exein |
|---|---|---|
| 執行您的 Yocto 建置 | 在最高 32 vCPU 的執行器上執行 BitBake | 整合至您既有的管線 |
| 記錄建置取用的內容 | 由執行器在每個作業期間觀察 | 分析韌體,或分析您提供的 SBOM |
| 建置執行期間的對外連線政策 | 作業開始前檢查,失效即封鎖 | 不在其範圍內 |
| 裝置上的資安代理程式 | Exein Runtime,以 eBPF 打造 | |
| 用於您映像檔的 Yocto 層 | CRACI 執行建置,不會在映像檔中加入任何內容 | meta-exein 將 Pulsar 加入映像檔 |
| 二進位韌體分析 | Exein Analyzer | |
| 依可達性排定優先順序 | 可達性評分與 LLM 篩選 | |
| SBOM | 來自建置,並附有完整性狀態 | 由 Exein Analyzer 產生 |
| CRA 佐證資料 | CycloneDX 或 SPDX 格式的 SBOM、透過 API 取得記錄、已準備好的 CRA 通報內容;不提供報告匯出 | Analyzer 中的 CRA 佐證資料對應 |
- 支援
- 部分支援
- 不支援
Exein 的 Yocto 整合是什麼
由於兩項產品都提到 Yocto,很容易混淆,因此值得精確說明。
meta-exein 是一個開源的 Yocto 層,「包含 Pulsar 與核心配方,用於將 Pulsar 資安框架加入映像檔」。您將這個層加入 bblayers.conf,把 pulsar 附加到
IMAGE_INSTALL 並啟用 BTF,您的映像檔就會內含 Pulsar,也就是 Exein 以 eBPF 為基礎的執行期資安工具。這個層已在 Kirkstone 之後的 Yocto 版本上測試,並於 2024 年成為官方的 Yocto Project Compatible 層。Exein 於 2023 年以白金會員身分加入 Yocto Project。
換句話說,Exein 的層改變的是裝置上執行的內容。它不會執行您的建置,也不會記錄建置取用的內容。Exein 也表示,Exein Analyzer「原生整合至 Yocto、Buildroot 與您的 CI/CD 管線」,以掃描每一次新的建置,這是在您自己的管線內分析建置產出。
Exein 的強項
裝置上的執行期防護。Exein Runtime 以 Rust 撰寫,使用 eBPF 在核心層級監控並封鎖惡意行為,「就在它試圖執行的那一刻」。在整個裝置群中,它會追蹤資安事件,並從執行期遙測資料產生鑑識與法規遵循報告。Exein 也將 Pulsar 以開源形式發布,這是「一款以 eBPF 驅動、模組化且極為快速的 IoT 執行期資安工具」。
發布前的韌體分析。Exein Analyzer 會直接檢查最終韌體,或在無法取得二進位檔時匯入您的 SBOM。Exein 表示其涵蓋 Linux、RTOS、Docker、UEFI、Android 等,並使用可達性評分與 LLM 驅動的篩選,優先呈現可遭利用的 CVE。
修補與 CRA 對應。Exein 介紹了在 Yocto 與 CI/CD 管線中執行的 AI 驅動修補,並將檢測結果對應至 Cyber Resilience Act(CRA)的要求。
CRACI 的不同之處
它執行建置
Yocto 建置既漫長又繁重。CRACI 從您的 GitHub Actions 工作流程執行 BitBake,執行器最高可達 32 vCPU 與 96 GB RAM,以 cracicorp/setup@v1 與 size: "32" 設定。作業在隔離的虛擬機器中執行,執行紀錄仍會顯示在 GitHub 中。
它記錄建置取用的內容
作業執行期間,CRACI 會觀察連往套件與原始碼主機的流量,並將其保存為建置佐證資料,同時為每個作業與每個快取標示完整性狀態。對 Yocto 而言,這是一份獨立記錄,說明有哪些內容透過網路傳入,包括 Yocto 的 create-spdx 類別所產生的 SPDX SBOM 遺漏的內容:在
並列建置 core-image-sato 的比較中,CRACI 的 SBOM 包含 Yocto 所列的每一個元件,另外還多出 88 個,例如主機套件與 GitHub Actions,並為 Yocto 列出卻未附套件 URL 的 653 個 Rust crate 版本各提供一個套件 URL。BitBake 從 Yocto 原始碼鏡像取得的原始碼,會記錄在 CRACI 作業 SBOM 中。
映像檔掃描工具與 Yocto 自身工具的比較,請參閱為什麼 SBOM 掃描工具會漏掉 Yocto 建置中的內容。
它控管建置可連線的目的地
BitBake 可透過 BB_ALLOWED_NETWORKS 限制其擷取器。CRACI 則在執行器層級加上對外連線政策,在作業開始前驗證並採取失效即封鎖,因此即使腳本或工具繞過擷取器,仍然無法連線到您未允許的主機。發生違規時,CRACI 會向您發出警示。
它監看已出貨的內容
API 會回傳 SBOM、網路追蹤記錄與來源證明。CRACI 會跨建置與儲存庫彙整漏洞,並持續重新評估受監控的 SBOM。
CRACI 不會在裝置上放置任何東西,也不分析二進位檔。如果您需要執行期防護或對完成的映像檔進行掃描,那是 Exein 的領域。
部署在何處的資產清冊
CRACI 的資產清冊檢視會在全球範圍內,精確顯示哪些軟體版本部署到哪些產品。當新漏洞出現時,您可以直接看到哪些產品執行受影響的版本,而不必從版本說明與試算表中拼湊答案。
何時使用哪一個,何時兩者並用
- 您需要在現場裝置上偵測並封鎖威脅。選擇 Exein Runtime。CRACI 沒有裝置端元件。
- 您的 Yocto 建置在桌下的伺服器上執行,或在小型 CI 執行器上要跑好幾個小時。CRACI 從 GitHub Actions 執行這些建置,並為每一次建置保留記錄。
-
您出貨的 Yocto 映像檔使用
meta-exein。在 CRACI 上建置。這個層的建置方式與其他層相同,而 CRACI 會記錄建置取用的內容。 - 您需要證明 SBOM 的來源。CRACI 的執行器記錄會將 SBOM 與特定建置連結起來。Exein Analyzer 對產出的掃描則是實用的第二視角。
關於 CRA
Cyber Resilience Act 要求製造商記錄其產品中的元件(包括 SBOM)、在支援期間內處理漏洞,並自 2026 年 9 月起通報遭積極利用的漏洞。Exein 在裝置端提供協助,包括發布前的韌體分析、CRA 佐證資料對應,以及來自現場的執行期遙測資料。CRACI 在建置端提供協助,包括每次建置中進入韌體之內容的佐證資料、來源證明、持續監控,以及以 CycloneDX 或 SPDX 格式匯出 SBOM。它會為您準備 CRA 通報的內容,供您透過 Single Reporting Platform 提交。CRACI 可自動化製造商在更廣泛的 CRA 法規遵循流程中所需之軟體供應鏈可視性與佐證資料中相當大的一部分;它本身並不會讓產品合規。請參閱CRA 的要求。
將 CRACI 加入 Yocto 工作流程
保留您的各個層(包括 meta-exein)以及 Exein Analyzer 步驟。在建置作業上設定 runs-on: craci
並選擇執行器規格。CRACI 文件中的 Yocto 範例會建置 core-image-sato,並使用官方 Yocto 原始碼鏡像與對應的 BB_ALLOWED_NETWORKS 設定。CRACI 目前僅支援 GitHub Actions,GitLab CI 與 Jenkins 已列入產品藍圖。了解 CRACI 如何應用於
工業 IoT與消費性電子。