比較
CRACI 與 GitLab CI 比較
GitLab 掃描您的專案,並回報 lockfile 宣告的內容。CRACI 本身就是執行器,因此會記錄每次建置實際下載的內容。兩者的差別在於您的 SBOM 與來源證明從何而來。
更新日期
簡短的答案
GitLab 是完整的 DevSecOps 平台:原始碼控管、merge request、規劃與 CI/CD 整合在一個產品中, 並在 Ultimate 方案中提供廣泛的資安掃描工具與漏洞管理。如果您希望整個軟體生命週期都交給同一家廠商,GitLab 正是為此打造。
CRACI 的範圍較窄。它是相容於 GitHub Actions 的執行器,會記錄建置下載的每個外部相依套件、 控管建置能連線到哪裡,並將這些紀錄轉為 SBOM、來源證明資料與 CRA 佐證資料。核心差異在於: 一種是附加掃描工具的傳統 CI,另一種是執行器本身就是資安紀錄的 CI。
有一個實際問題要先說明。CRACI 目前僅支援 GitHub Actions;GitLab CI 與 Jenkins 已列入產品藍圖。 如果您的管線在 GitLab CI 上,您需要將其移轉到 GitHub Actions 才能使用 CRACI 執行器,或等待已列入產品藍圖的 GitLab CI 支援。
| 功能 | CRACI | GitLab |
|---|---|---|
| 從建置記錄的相依套件 | 觀察到的下載,包括來自 CI 快取的套件 | 掃描工具讀取 lockfile 與相依關係圖匯出檔 |
| SBOM 匯出 | 每次建置產生 CycloneDX 或 SPDX,附完整性狀態 | CycloneDX 報告;Ultimate 可匯出相依套件清單 |
| 建置網路對外連線政策 | 預設拒絕或預設允許,失效即封鎖 | 自行管理的執行器上由您自己的網路控管負責 |
| 建置來源證明 | 透過 API 提供來源證明資料;未簽章 | 執行器產生 SLSA 1.0 來源證明聲明 |
| 持續漏洞監控 | 持續重新評估受監控的 SBOM | Ultimate 提供持續漏洞掃描 |
| 法規遵循報告 | CycloneDX 或 SPDX 格式的 SBOM,透過 API 取得紀錄;無報告匯出 | Ultimate 提供法規遵循與治理功能 |
| SAST、機密偵測、DAST | 所有方案皆含基本 SAST 與機密偵測;DAST 在 Ultimate | |
| 原始碼控管與規劃 | 搭配您的 GitHub 儲存庫使用 | 儲存庫、merge request 與規劃整合在同一平台 |
| 支援的 CI 系統 | 目前支援 GitHub Actions;GitLab CI 與 Jenkins 已列入產品藍圖 | GitLab CI/CD,託管或自行管理 |
| 託管執行器平台 | x86-64 與 ARM64 上的 Linux,1 到 32 vCPU。Windows 與 macOS 已列入產品藍圖。 | x86-64 與 arm64 上的 Linux;Windows 與 macOS 託管執行器為 Beta 版。 |
| 價格 | 按建置分鐘數計費:每 2 vCPU 分鐘 $0.004,按秒計費。無月費,也不按 SBOM 收費。 | Free 含 400 運算分鐘;Premium 每位使用者每月 $29,按年計費;Ultimate 為客製報價(截至 2026 年 9 月)。 |
- 支援
- 部分支援
- 不支援
- 已列入產品藍圖
GitLab 的強項
一個平台。程式碼、審查、管線、資安發現與規劃都在同一個地方,並採用同一套權限模型。 對許多組織而言,光是這一點就足以決定選擇。
依方案提供的資安掃描。請精確掌握每個方案包含哪些功能。根據 GitLab 的說明,基本 SAST、 機密偵測與容器掃描在所有方案(包括 Free)中都能執行。在 Free 與 Premium 中,這些掃描會產生 JSON 報告建置產物。 Ultimate 則加上圍繞這些掃描的工作流程:merge request 中的發現結果、漏洞報告、相依套件清單、資安核准, 以及 GitLab Advanced SAST。相依套件掃描、持續漏洞掃描與 DAST 屬於 Ultimate 功能。 容器掃描在所有方案中也都能產生 CycloneDX SBOM 報告。
來源證明。GitLab Runner 在所有方案中都能產生 SLSA 1.0 格式的建置產物來源證明聲明。 經簽章的 SLSA Level 3 證明也存在,但 GitLab 將其列為 GitLab.com 上 Ultimate 的實驗功能, 需透過預設停用的功能旗標開啟。
執行器的選擇。GitLab 託管執行器涵蓋 x86-64(2 到 32 vCPU)與 arm64 上的 Linux, Windows 與 macOS 則為 Beta 版。您也可以在任何地方執行自己的執行器,GitLab 表示在您自己的執行器上執行的作業不會消耗運算分鐘數。 GitLab Dedicated 另外提供在您選擇之區域的資料落地。
CRACI 的不同之處
SBOM 來自建置,而非 lockfile
GitLab 以 SBOM 為基礎的相依套件掃描,會從支援的 lockfile 或相依關係圖匯出檔偵測相依套件。 當 lockfile 能說明全貌時,這是可靠的做法。但建置往往做得更多:執行安裝腳本、下載工具鏈、還原快取,以及拉取基礎映像檔。
CRACI 本身就是執行器,因此看得到這些活動。在作業執行期間,能辨識套件的代理伺服器會觀察通往套件來源的流量, 涵蓋 npm、PyPI、RubyGems、Composer、Cargo、Go、Nix、OCI、apt、apk 與 Git 來源,以及下載預設集。 相依套件的佐證資料會隨 CI 快取一起保存,因此從快取還原的套件仍會被記錄。每個作業都會產生 CycloneDX 或 SPDX 格式的 SBOM。
完整性是明確標示的,而非假設
每份 SBOM 都會依作業與依快取標示完整性狀態:Complete、Complete with connections、Incomplete、 Unavailable 或 Not recorded。當紀錄有缺口時,您看得到。
建置網路就是一項政策
CRACI 的對外連線政策可設為預設拒絕或預設允許,內建 24 個軟體來源預設集,並可為 npm、PyPI、apt、apk、 Go proxy、Nix、Cargo、OCI 登錄庫與 Git 設定具型別的自訂來源。政策會在作業開始前驗證,失效即封鎖, 並在違規時發出警示。在 GitLab 上,建置的網路控管取決於您在自己的執行器周圍所做的設定。
來源證明
API 會回傳 SBOM、網路追蹤紀錄與來源證明。CRACI 不會為來源證明簽章,也不宣稱任何 SLSA 等級。
監控已交付的內容
CRACI 彙整跨建置與跨儲存庫的漏洞,並在新資安公告出現時持續重新評估受監控的 SBOM。
哪一個適合您
- 繼續使用 GitLab:如果您的程式碼與管線都在 GitLab 上,且您想要單一平台, 或您需要在同一個產品中使用 SAST、DAST 與機密偵測。
- 選擇 CRACI:如果您的程式碼在 GitHub 上並使用 GitHub Actions,而且您需要每個版本內容的佐證資料、 控管建置能連線到哪裡,以及在稽核中站得住腳的 SBOM。
- 兩者並用:如果您的組織同時使用兩個平台。GitLab 繼續涵蓋其專案與掃描工具; CRACI 負責 GitHub Actions 這一側,並記錄這些建置。
因應 Cyber Resilience Act
根據歐盟 Cyber Resilience Act(CRA),製造商需要掌握每個產品版本的內容,並處理其中的漏洞。 漏洞通報義務自 2026 年 9 月起適用,法規則自 2027 年 12 月起全面適用。GitLab Ultimate 能協助您在各專案中找出並管理漏洞。 CRACI 記錄每個版本是由什麼建置而成、持續監控它,並以 CycloneDX 或 SPDX 格式匯出 SBOM。 它能自動化企業在更廣泛的 CRA 法規遵循流程中所需的相當大一部分軟體供應鏈可視性與佐證資料。 兩種工具都無法單獨讓您達成法規遵循。
加入 CRACI
對於 GitHub 上的儲存庫,請在您的組織上安裝 CRACI GitHub App(套用到所有儲存庫或選定的儲存庫),並變更執行器標籤:
runs-on: craci
工作流程、actions 與 GitHub 介面都維持不變。CRACI 取代的是執行器,而不是 GitHub Actions。 進一步了解建置時 SBOM 產生與CRA 佐證資料, 或查看價格方案。