比較
CRACI 與 Dependabot
Dependabot 往往是 GitHub 團隊第一個開啟的供應鏈工具,而且應該保持開啟。CRACI 補足的是 Dependabot 原本就不是設計來看見的部分:您的建置實際做了什麼。
更新日期
保留 Dependabot。以下是它涵蓋的範圍。
如果您的程式碼放在 GitHub 上,您很可能已經在使用 Dependabot。它做三件實用的事。Dependabot 警示會在儲存庫中的相依套件符合已知漏洞時通知您。安全性更新會開啟升級有漏洞相依套件的 pull request。版本更新則讓相依套件即使沒有漏洞也保持最新。
這一切都建立在 GitHub 的相依關係圖之上,它會解析儲存庫中的 manifest 與 lockfile。GitHub 可以將這張圖匯出為 SPDX SBOM。對於 Go、Gradle 與 Maven 等生態系,現成的 actions 可以透過相依套件提交 API,提交在建置時解析出的相依套件。
若要以最少的心力讓相依套件保持修補狀態,Dependabot 很難被超越,而 CRACI 不會開啟 pull request。CRACI 補足的是另一半:每次建置實際引入內容的紀錄,並監控是否出現新漏洞,讓您知道新的資安公告影響哪些已出貨的建置,以及應該優先合併哪些更新 pull request。
Dependabot 無法回答的問題
Dependabot 以儲存庫為中心。它掃描預設分支,並仰賴您的 manifest 與 lockfile。GitHub 的文件對此說得很直接:警示無法捕捉所有資安問題,您應該讓 manifest 與 lock 檔保持最新以確保偵測準確,而且只有經 GitHub 審查的資安公告才會觸發警示。
這留下了一些資安或法遵負責人遲早會被問到的問題:
- 4.2 版的建置實際下載了什麼,包括不在任何 manifest 中的工具與映像檔?
- 建置在執行時是否能連線到網際網路上的任意主機?
- 您能證明客戶收到的二進位檔來自那次建置嗎?
- 幾個月後,您能為稽核人員提出這些佐證資料嗎?
要回答這些問題,需要從建置內部觀察,而這正是 CRACI 執行的地方。
| 功能 | CRACI | Dependabot |
|---|---|---|
| 執行您的建置 | 作業在 CRACI 執行器上執行 | 讀取儲存庫資料,而非建置 |
| 從建置記錄相依套件 | 觀察到的擷取,包括 CI 快取還原 | manifest 與 lockfile,以及相依套件提交 API |
| SBOM 匯出 | CycloneDX 與 SPDX,依作業與快取標示完整性 | 以 SPDX 匯出相依關係圖 |
| 建置網路對外連線政策 | 預設拒絕或允許,失效即封鎖 | 不在其範圍內 |
| 漏洞警示 | 彙整各建置與儲存庫 | 來自 GitHub 審查過的資安公告 |
| 監控新的資安公告 | 持續重新評估受監控的 SBOM | 新增資安公告時對預設分支發出警示 |
| 開啟更新 pull request | 安全性更新與版本更新 | |
| 分級研判並轉交負責團隊 | 跨建置與儲存庫 | 以儲存庫為單位的警示 |
| 不需更換執行器即可使用 | 作業需在 CRACI 上執行 | 內建於 GitHub 儲存庫 |
| 法規遵循佐證資料 | CycloneDX 或 SPDX 格式的 SBOM,紀錄可透過 API 取得;無報告匯出 | GitHub 中的警示檢視與 SPDX 匯出 |
- 支援
- 部分支援
- 不支援
CRACI 補足了什麼
建置時可視性
CRACI 是與 GitHub Actions 相容的執行器。您將 runs-on 改為 craci,作業就會在 CRACI 的隔離虛擬機器中執行,而執行結果仍會顯示在 GitHub 介面中。在每個作業期間,一個能辨識套件的代理伺服器會記錄前往套件來源的流量:npm、PyPI、RubyGems、Composer、Cargo、Go、Nix、OCI、apt、apk 與 Git 來源,以及下載預設集。從 CI 快取還原的套件也會一併沿用,因為相依套件的佐證資料會隨快取一起保存。
每份 SBOM 都會依作業與快取標示其完整程度:Complete、Complete with connections、Incomplete、Unavailable 或 Not recorded。這與一張品質只取決於所解析檔案的相依關係圖不同。
這個差異在實務中顯而易見。GitHub 的相依關係圖匯出是根據 GitHub 對儲存庫的了解所建立,因此可能列出任何以檔案為基礎的掃描工具都找不到的元件,而且它反映的是預設分支,而非您建置的那個 commit。就這張圖的設計目的而言,這兩種行為都沒有錯。它們說明了儲存庫檢視與建置紀錄是不同的東西。(CRACI 無法以這種方式比較,因為它記錄的是建置,而不是掃描目錄。)
執行時控管
Dependabot 會在有漏洞的套件進入您的 manifest 之後通知您,但它無法決定建置可以連線到哪裡。CRACI 可以,因為建置由它執行。對外連線政策可設為預設拒絕或預設允許,內建 24 個軟體來源預設集,並提供 npm、PyPI、apt、apk、Go proxy、Nix、Cargo、OCI registry 與 Git 的類型化自訂來源,以及明確的 TLS、TCP、UDP 與 ICMP 規則。政策會在作業開始前驗證、失效即封鎖(fail closed),並在違規時觸發警示。
來源證明
CRACI 在自己的執行器內,根據作業擷取的內容產生 SBOM。API 會回傳 SBOM、網路軌跡與來源證明(provenance)。
法規遵循佐證資料
歐盟 Cyber Resilience Act 等法規要求製造商掌握每個產品版本中包含的內容,並處理其中的漏洞。CRACI 彙整各建置與儲存庫的漏洞,在新的資安公告出現時持續重新評估受監控的 SBOM,並以 CycloneDX 或 SPDX 匯出包含漏洞資訊的 SBOM。它自動化了企業在更廣泛的 CRA 法規遵循流程中所需的相當大一部分軟體供應鏈可視性與佐證資料。進一步了解什麼是 CRA 與 CRA 佐證資料。
部署內容與位置的資產清冊
CRACI 的資產清冊檢視會精確顯示全球哪些軟體版本部署在哪些產品上。當新漏洞出現時,您可以直接看到哪些產品執行受影響的版本,而不必從版本說明與試算表中拼湊答案。
團隊如何同時使用兩者
- Dependabot 讓預設分支上的相依套件保持修補狀態,並在資安公告出現時開啟 pull request。
- CRACI 執行 GitHub Actions 作業、記錄每次建置擷取的內容、限制建置可以連線到哪裡、監控每次建置引入的內容是否出現新漏洞,並保存版本發布的佐證資料。
不需要任何遷移。Dependabot 會繼續在您的儲存庫上運作,您的工作流程也會繼續在 GitHub Actions 上執行,只是換了一個執行器。
CRACI 目前支援 GitHub Actions,也正是 Dependabot 所在的地方。進一步了解 建置時 SBOM 產生、 漏洞追蹤與價格方案。
CRACI 與 Dependabot:常見問題
各工具涵蓋的範圍、SBOM、價格與法規遵循
CRACI 能取代 Dependabot 嗎?
不能。請繼續開啟 Dependabot。它會標示儲存庫中有漏洞的相依套件,並開啟升級這些套件的 pull request。CRACI 則執行您的 GitHub Actions 作業,記錄每次建置實際引入的內容、控管建置可以連線到哪裡,並監控已出貨的內容是否出現新漏洞。
CRACI 的漏洞檢視能取代 Dependabot 警示嗎?
不能。它們回答的是不同的問題。Dependabot 警示針對的是單一儲存庫的預設分支。CRACI 則彙整各建置與儲存庫的漏洞,並持續重新評估受監控的 SBOM,讓您看出哪些建置共用同一個有漏洞的相依套件,資安團隊也能分級研判發現的問題,並轉交給負責修正的團隊。政策關卡可以阻擋建置;門檻警示已列入產品藍圖。
CRACI 會像 Dependabot 一樣開啟 pull request 嗎?
不會。Dependabot 的安全性更新與版本更新會開啟 pull request,CRACI 則不會。CRACI 增加的是建置紀錄,因此當新的資安公告出現時,您會知道它影響哪些已出貨的建置,以及應該優先合併哪些更新 pull request。
GitHub 與 CRACI 的 SBOM 有何不同?
GitHub 將相依關係圖匯出為 SPDX SBOM,它根據儲存庫中的 manifest、lockfile 以及相依套件提交 API 建立,反映的是預設分支。CRACI 則在每次建置執行時記錄 SBOM,並以 CycloneDX 或 SPDX 匯出,依作業與快取標示完整性狀態,讓您知道紀錄是否有缺漏。
當相依套件不在任何 manifest 中時,CRACI 有幫助嗎?
有,前提是建置從套件來源擷取它。由於 CRACI 在作業期間記錄流量,由腳本下載的工具或從快取還原的套件,仍會出現在建置紀錄中,而 SBOM 的完整性狀態會告訴您是否有任何內容無法記錄。
Dependabot 與 CRACI 的費用是多少?
Dependabot 的安全性更新與版本更新包含在每個 GitHub 方案中,包括 Free 方案(截至 2026 年 9 月)。CRACI 只依建置分鐘數收費:每 vCPU 分鐘 $0.002(預設 2 vCPU 執行器為 $0.004),按秒計費,沒有月費,也不按 SBOM 收費。最新條款請參閱價格方案。
CRACI 只適用於有法規遵循要求的團隊嗎?
不是,但佐證資料在這種情況下最能發揮價值。如果您在歐盟銷售軟體,Cyber Resilience Act(CRA)會讓每個版本的元件清冊與漏洞處理成為必要工作。對其他團隊而言,掌握建置擷取了什麼,仍是供應鏈事件應變的基礎。預約示範,看看您自己某個工作流程的建置紀錄。