為開發者與 AI 代理打造的自動化網路韌性
讓每一次建置 成為您的第一道防線。
以快速、可靠且成本更低的執行器,將供應鏈安全放在您軟體的核心。
- 安全的執行器
- 建置時 SBOM
- 漏洞監控
- 漏洞應變
- 已記錄 185 個套件
- 已拒絕 6 個連線
- SBOM 完整
- 已於 v2.4.1 修正
- 建置
northwind-controls/web-portal
- 套件
- next 15.2.2
- react 19.0.0
- react-dom 19.0.0
- express 4.21.2
- tailwindcss 4.0.14
- typescript 5.8.2
- 政策關卡建置 #1843 已停止 建置 #1844 已通過
- 已發布的建置產物
ghcr.io/northwind-controls/web-portal:2.4.1
以 v2.4.1 發布
使用 CRACI 建置的團隊
漏洞出現的速度,快過任何修正。
攻擊者只需要一個入口,而 AI 代理幫助他們以前所未有的速度找到它。您的團隊卻必須堵住每一個缺口,而且大多靠人工。
2026 年至今
- 每天發布的 CVE 數量
- 303
- 平均每 5 分鐘一個。
- 每天比前一年增加
- +131%
- 與 2025 年的每日數量相比。
- 每天被評為 High 或 Critical
- 155
- 依據其 CVSS 分數。
| 年度 | 每天的 CVE | 每天的 High 或 Critical |
|---|---|---|
| 2020 | 39 | 7 |
| 2021 | 54 | 12 |
| 2022 | 68 | 20 |
| 2023 | 78 | 28 |
| 2024 | 109 | 48 |
| 2025 | 131 | 54 |
| 2026 年至今 | 303 | 155 |
為什麼是現在
- 警示已成為雜訊。
當數百個發現都是緊急的,就沒有一個是緊急的。團隊不再管理風險,而是開始數警示。
- 數量超出任何團隊的負荷。
分級研判與修正仍靠人工完成。在這樣的數量下,增聘人手也無法縮小差距。
- 修正與新功能互相競爭。
產品團隊以交付功能來衡量績效,因此資安工作只能等待一個永遠不會到來的空檔衝刺。
- 掃描工具只是在估算。
建置後根據檔案整理出的清單,會遺漏實際放進去的內容,而錯誤的信心讓人不再去檢查。
您的軟體在建置過程中成形。
您的鎖定檔(lockfile)固定了應該安裝的內容,但實際到達的內容由建置決定。CRACI 會在每個套件進入時加以記錄,包括解析後的版本、來源,以及是否從 CI 快取還原。
"packages": {
…
…
} | 套件 | 解析版本 | 進入途徑 | 來源 |
|---|---|---|---|
| 經由 package.json | |||
| express 經由 package.json | 4.21.2 | package.json | registry.npmjs.org |
| next 經由 package.json 目前受 CVE-2025-29927 影響 · Critical | 15.2.2 | package.json | registry.npmjs.org |
| react 經由 package.json · 來自 CI 快取 | 19.0.0 | package.json | CI 快取 |
| react-dom 經由 package.json · 來自 CI 快取 | 19.0.0 | package.json | CI 快取 |
| styled-jsx 經由 next | 5.1.6 | next | registry.npmjs.org |
| 經由建置腳本 | |||
| tailwindcss 經由 建置腳本 | 4.0.14 | 建置腳本 | registry.npmjs.org |
| typescript 經由 建置腳本 | 5.8.2 | 建置腳本 | registry.npmjs.org |
| 以及另外 178 個已記錄的套件 | |||
保護建置,記錄其相依套件。
您的作業在 CRACI 執行器上執行,而非 GitHub 託管執行器,速度快兩倍。它們引入的每個套件都會連同版本、來源與授權一併記錄。來自政策以外來源的任何內容都會被拒絕。
Secure Build Service
每個作業都在自己的隔離虛擬機器中執行,並受到在作業開始前即已檢查的對外連線政策保護。
- 隔離的 VM
- 預設拒絕或允許
- 失效即封鎖
- 違規時發出警示
Package Analytics
能辨識套件的代理伺服器會記錄作業引入的每個套件,包括解析後的版本、來源與宣告的授權。
- npm
- PyPI
- RubyGems
- Cargo
- Go
- Nix
- OCI
- Yocto
- 以及更多
- time2025-03-14 09:13:07 UTC
- jobrelease.yml #1842
- stepnpm run build
- policyDefault deny. Allowed: npm, GitHub, ghcr.io, Docker Hub, example.com
- denied malicious.example:443
- reason主機不在政策中
- action已在執行器端封鎖
{
"bomFormat": "CycloneDX",
"specVersion": "1.7",
…
"components": [{
"name": "next",
"version": "15.2.2",
"purl": "pkg:npm/[email protected]",
"licenses": [
{ "license": { "id": "MIT" } }
]
}, …]
} CRACI 看得見掃描工具看不見的流量。
其他 SBOM 工具讀取鎖定檔或建置的產出,再推測放進了什麼。CRACI 則看見每次建置實際進入的內容,包括由建置時 hook、建置腳本與基礎映像檔引入的隱藏相依套件。
掃描工具
競品掃描工具
- 方式
- 讀取 package-lock.json
- 時機
- 建置之後
- 看見的內容
- 鎖定檔所列的內容
| 套件 | 版本 | 授權 | 發現於 |
|---|---|---|---|
| next pkg:npm/[email protected] | 15.2.2 | MIT | package-lock.json |
| react pkg:npm/[email protected] | 19.0.0 | MIT | package-lock.json |
| react-dom pkg:npm/[email protected] | 19.0.0 | MIT | package-lock.json |
| express pkg:npm/[email protected] | 4.21.2 | MIT | package-lock.json |
| styled-jsx pkg:npm/[email protected] | 5.1.6 | MIT | package-lock.json |
| 不在任何鎖定檔中,因此不在 SBOM 中 | |||
| 不在任何鎖定檔中,因此不在 SBOM 中 | |||
| 不在任何鎖定檔中,因此不在 SBOM 中 | |||
列出 142 個套件 缺少 43 個
記錄的 SBOM
- 方式
- 觀察建置的流量
- 時機
- 建置期間
- 看見的內容
- 建置所擷取的內容
| 套件 | 版本 | 授權 | 擷取自 |
|---|---|---|---|
| next pkg:npm/[email protected] | 15.2.2 | MIT | registry.npmjs.org |
| react pkg:npm/[email protected] | 19.0.0 | MIT | registry.npmjs.org |
| react-dom pkg:npm/[email protected] | 19.0.0 | MIT | registry.npmjs.org |
| express pkg:npm/[email protected] | 4.21.2 | MIT | registry.npmjs.org |
| styled-jsx pkg:npm/[email protected] | 5.1.6 | MIT | registry.npmjs.org |
| 預先建置的二進位檔 隱藏 經由 postinstall hook · pkg:npm/hidden-package | — | — | registry.npmjs.org |
| 2 個建置腳本下載的內容 隱藏 經由 建置腳本 · pkg:generic/[email protected]?download_url=example.com/tool | — | — | example.com |
| 40 個基礎映像檔的作業系統套件 隱藏 經由 Dockerfile FROM · pkg:oci/ubuntu | — | — | registry.hub.docker.com |
已記錄 185 個套件 比鎖定檔多 43 個
範例建置。 拖曳分隔線即可比較。 建置時 SBOM 如何運作
將潛在漏洞精確對應到受影響的版本。
CRACI 持續檢查已記錄的 SBOM 是否出現新漏洞。在這個示意範例中,一個嚴重漏洞在版本發布 7 天後被揭露。請沿著建置紀錄,從受影響的套件一路追到團隊的修正。
第 1 步,共 4 步
CVE-2025-29927 已揭露
next 是直接相依套件,建置 #1842 記錄了它的確切版本。
- 嚴重程度
- Critical 9.1
- 套件
- next
- 受影響
- 15.0.0 至 15.2.2
- 修正於
- 15.2.3
第 2 步,共 4 步
有一個版本受到影響
CRACI 將其與記錄的 SBOM 比對。
- 版本
- web-portal v2.4.0
- 比對
- next 15.2.2,直接相依套件
- SBOM
- Complete
第 3 步,共 4 步
它以這個映像檔出貨
版本、其映像檔與其 SBOM 會保存在一起。
- 映像檔
- ghcr.io/northwind-controls/web-portal:2.4.0
- 版本
- v2.4.0
- SBOM
- 追蹤中
第 4 步,共 4 步
修正有專人負責
分級研判、轉交負責人,並追蹤到修正版本發布。
- 負責人
- 平台團隊
- 處置
- 將 next 升級至 15.2.3 並重新建置
- 修正於
- web-portal v2.4.1,2025-03-22
用證據回答每一位稽核人員。
每次建置都會留下佐證資料:SBOM、漏洞紀錄,以及每個修正如何進入版本。將它們用於您的 CRA、NIS2、ISO 27001 與 SOC 2 流程,稽核人員的提問只需要一次下載,而不是一個專案。
- 組成
- 每個版本都有一份建置時 SBOM。
- CycloneDX
- SPDX
- 遞移相依套件
- 漏洞
- 宣告的授權
- 漏洞處理
- 已記錄的 SBOM 會持續重新評估。
- 分級研判
- 修正
- 與版本一併保存
- 通報
- CRACI 準備內容,由您提交。
- 早期預警
- 事件通報
- 最終報告
Cyber Resilience Act
- 通報義務開始適用
- 法規全面適用
漏洞通報 節錄
web-portal v2.4.0
northwind-controls/web-portal · 建置 #1842
- SBOM
- CycloneDX · Complete
- 建置
- #1842 · commit 9f3c2e1
- 漏洞
- CVE-2025-29927 · Critical
- 元件
- next 15.2.2
- 通報對象
- 透過 CRA Single Reporting Platform 通報 CSIRT 與 ENISA
處理時間軸
- 版本已建置,SBOM 已記錄
- 資安公告已發布,並與此版本比對
- 由 產品資安 分級研判,指派給 平台團隊
- v2.4.1 已發布,包含 next 15.2.3
SBOM 可匯出為 CycloneDX 或 SPDX
5 分鐘內執行您的第一次建置。
在這段示範中,我們帶一個 TanStack Start 網站從註冊走到在 CRACI 上的第一次執行。我們連接 GitHub,以 runs-on: craci 導向作業,並觀看第一次執行。CRACI 會記錄建置引入的每個外部相依套件,標示已知漏洞,並將每個漏洞追溯到引入它的作業。
From sign-up to your first build on CRACI
CRACI 的 YouTube 頻道:CRACI demo.
看看 CRACI 如何融入您的交付工作流程。
CRACI 取代的是執行器,而不是 GitHub Actions。您的工作流程、審查與部署步驟都維持不變。
-
連接 GitHub App
可套用到所有儲存庫,或僅限您選擇的儲存庫。
-
更新您的執行器
在工作流程中設定
runs-on: craci。其他一切都不變。 -
執行下一次建置
執行結果仍會顯示在 GitHub 中。建置紀錄與 SBOM 則顯示在 CRACI 中。
- 執行器
- 位於歐洲基礎設施上的 x86-64 與 ARM64 代管 Linux 執行器。
- 建置
- 支援 Docker Engine、Buildx 與 Compose v2。Yocto 與 BitBake 建置已有文件說明。
- 您的程式碼與資料
- CRACI 在建置期間處理原始碼,但不會儲存。建置資料託管於歐洲。快取內容取決於您的工作流程儲存了什麼。閱讀資安頁面。
- 已列入產品藍圖
- GitLab、Jenkins 及其他 CI 系統、Windows 與 macOS 執行器、地端執行器、Maven 與 Java。
團隊在示範前常問的問題
相容性、設定、資安與資料處理。
支援哪些 CI 環境與套件生態系?
目前支援的 CI 整合是 GitHub Actions,其他 CI 系統已列入產品藍圖。CRACI 會記錄 npm、PyPI、RubyGems、Cargo、Go、Nix 與 OCI registry、Debian、Ubuntu 與 Alpine 套件儲存庫,以及 Git 與其他原始碼下載。Maven 與 Java 已列入產品藍圖。執行器為 x86-64 與 ARM64 上的 Linux。
設定需要做些什麼?
您只要在所有或選定的儲存庫上連接 CRACI GitHub App,並在工作流程中設定 runs-on: craci。CRACI 取代的是執行器,而不是 GitHub Actions,因此您的執行結果仍會顯示在 GitHub 中。
CRACI 會存取哪些資料?資料儲存在哪裡?
GitHub App 會讀取您的程式碼與 Actions 執行紀錄,並管理它為您的組織註冊的執行器。CRACI 在建置期間處理原始碼,但不會儲存。建置資料(包括中繼資料、套件資料、網路軌跡、SBOM、來源證明、快取與稽核紀錄)託管於歐洲,Enterprise 方案可自訂保存期限。快取內容取決於您的工作流程儲存了什麼。閱讀資安與資料處理說明。
CRACI 是封鎖還是發出警示?違反政策的建置會怎樣?
對外連線政策在執行器端強制執行。它會在作業開始前驗證,並採失效即封鎖(fail closed),因此政策以外的連線會被拒絕,您也會收到警示。政策關卡也能即時停止建置。
可以匯出哪些格式?
SBOM 可匯出為 CycloneDX 或 SPDX,包含遞移相依套件、漏洞與宣告的授權。
目前有哪些功能,哪些已列入產品藍圖?
目前提供:GitHub Actions 的代管 Linux 執行器、包含漏洞資訊的建置時 SBOM、對外連線政策、具分級研判功能的持續漏洞監控,以及政策關卡。已列入產品藍圖:GitLab、Jenkins 及其他 CI 系統、Windows 與 macOS 執行器,以及地端執行器。
投資方
媒體報導
看見從建置到修正的完整路徑。
- 探索建置期間記錄的相依套件。
- 找出受漏洞影響的版本。
- 追蹤從分級研判到修正版本發布的應變過程。