2026 年每日通報的 CVE 數量比前一年多 131%。

比較

CI/CD 資安工具比較

CI/CD 資安工具可分為四類:讀取程式碼的掃描器、強化其周邊管線的工具、監看執行器的代理程式,以及管控並記錄建置的執行器。以下說明各類工具涵蓋的範圍,以及 CRACI 的定位。

更新日期

Where CI/CD security tools act Scanners read the code in the repository, and pipeline hardening checks its workflow files. Each build then runs on a runner. On a runner you keep, an added security agent watches network, processes and files and can block egress in block mode. The CRACI runner is the runner itself: an egress policy you can set to default deny controls what the job can reach, and it records the SBOM and provenance. Under both, with blocking on, a request to the npm registry is allowed and a request to an unknown host is blocked. Repository src/ package.json .github/workflows/ Scanners read the code Pipeline hardening checks workflows each build runs on a runner Your existing runner build job + security agent Watches network, processes and files; can block egress in block mode CRACI runner build job SBOM Provenance Is the runner: egress policy (deny or allow), records what each job fetched npm registry unknown host allowed blocked npm registry unknown host allowed blocked

每篇比較都會說明另一款產品的強項、CRACI 的不同之處,以及何時適合兩者並用。所有類別請見所有比較。

為什麼管線需要專屬的資安工具

CI/CD 管線持有憑證、從網際網路取得程式碼,並產出您的客戶所執行的建置產物。這使它本身就成為攻擊目標。能夠改變建置下載內容或產出內容的攻擊者,根本不必碰您的原始碼。程式碼掃描器並不是為此而設計的,因為它們讀取的是儲存庫,而不是建置。

CI/CD 資安工具從不同方向填補這個缺口。有些檢查管線的設定,有些監看作業執行時執行器上發生的事,有些則管控執行器本身。了解一項工具屬於哪一類,比它的功能清單更能說明問題,因為這決定了工具能看到什麼、能阻止什麼。

CI/CD 資安工具的類型

讀取程式碼的掃描器

靜態分析(SAST)、機密掃描與軟體組成分析(SCA)讀取的是儲存庫:原始碼檔案、manifest 與鎖定檔。例如 GitHub Advanced Security 結合了 CodeQL 程式碼掃描、機密掃描與推送保護,以及來自 GitHub Advisory Database 的 Dependabot 警示。這些工具在建置執行前找出問題,但看不到建置實際取用了什麼,或連線到哪裡。

強化建置周邊管線的工具

態勢與治理工具檢查管線的設定。Cycode 監控 CI/CD 資安政策、設定與治理。StepSecurity 維護您所使用第三方 actions 的資產清冊,為新的 actions 設置核准流程,並開立 pull request,將 actions 釘選到 commit SHA,並設定最小權限的 GITHUB_TOKEN 權限。這些工具讓管線更難被濫用,但它們處理的是建置的定義,而不是執行中的建置。

監看執行器的代理程式

執行階段代理程式在您保留的執行器上、於作業內部執行。StepSecurity Harden-Runner 監控對外連線、程序與檔案寫入,將每一項對應到引發它的工作流程步驟,並可封鎖允許清單以外的對外連線。Cycode 的 Cimon 以 eBPF 在核心層級監控程序執行、網路對外連線與檔案存取,產生執行階段觀察到的 SBOM,並為 SLSA 來源證明簽章。由於代理程式是加到既有的基礎設施上,因此能在許多 CI 系統與託管執行器上運作。

管控並記錄建置的執行器

CRACI 採取最後一種做法:取代執行器。作業透過 runs-on: craci 在 CRACI 上執行,執行結果仍會顯示在 GitHub 中。對外連線政策是執行器的一部分,會在作業開始前完成驗證,並採失效即封鎖。具備套件感知能力的代理伺服器會記錄作業取用的每個套件,包括從 CI 快取還原的套件,因此每個作業都會產生附有完整性狀態的 SBOM、網路追蹤記錄與來源證明資料。

並列比較

CI/CD 資安工具比較(截至 2026 年 9 月)
功能 CRACI StepSecurity Harden-Runner Cycode (Cimon) GitHub Advanced Security
執行位置 本身就是執行器 安裝在您自行維護之執行器上的代理程式 安裝在您現有 CI 內的代理程式 掃描 GitHub 上的儲存庫
建置對外連線控制 預設拒絕或允許,失效即封鎖 封鎖模式下的允許清單 可指定允許主機的防止模式
封鎖前的稽核模式 監控模式或試運行模式 每個作業的基準 偵測模式 無對外連線控制
程序與檔案監控 eBPF 未說明
從建置記錄的 SBOM 每個作業一份,附完整性狀態 記錄連線目的地、程序與檔案 執行階段觀察到的 SBOM 由 manifest 產生的關係圖,加上提交的建置資料
已簽署的建置來源證明 無已簽署的來源證明 未說明 SLSA Provenance v1.0 建置產物證明(Artifact attestations)
SAST 未說明 CodeQL
機密掃描 未說明 Secret Protection
支援的 CI 目前支援 GitHub Actions;GitLab CI 與 Jenkins 已列入產品藍圖 GitHub Actions、GitLab CI、Azure DevOps GitHub Actions、Azure Pipelines、Jenkins、GitLab CI、Buildkite、Harness GitHub,以及另行購買的 Azure DevOps
  • 支援
  • 部分支援
  • 不支援
  • 已列入產品藍圖

「未說明」表示我們無法在廠商的公開頁面中確認。各欄的詳細內容,請參閱 CRACI 與 StepSecurity 比較、 CRACI 與 Cycode 比較與 CRACI 與 GitHub Advanced Security 比較。

哪種工具涵蓋哪些 CI/CD 風險

OWASP Top 10 CI/CD Security Risks 是最廣為使用的管線風險清單。其十大風險如下:

  1. CICD-SEC-1: Insufficient Flow Control Mechanisms(流程控制機制不足)
  2. CICD-SEC-2: Inadequate Identity and Access Management(身分與存取管理不當)
  3. CICD-SEC-3: Dependency Chain Abuse(相依鏈濫用)
  4. CICD-SEC-4: Poisoned Pipeline Execution (PPE)(管線執行遭汙染)
  5. CICD-SEC-5: Insufficient PBAC (Pipeline-Based Access Controls)(以管線為基礎的存取控制不足)
  6. CICD-SEC-6: Insufficient Credential Hygiene(憑證管理不足)
  7. CICD-SEC-7: Insecure System Configuration(系統設定不安全)
  8. CICD-SEC-8: Ungoverned Usage of 3rd Party Services(第三方服務使用缺乏治理)
  9. CICD-SEC-9: Improper Artifact Integrity Validation(建置產物完整性驗證不當)
  10. CICD-SEC-10: Insufficient Logging and Visibility(記錄與可視度不足)

沒有任何單一工具能涵蓋全部十項。以下四項是 CRACI 的管控措施適用之處:

CRACI 處理的 OWASP CI/CD 風險
功能 風險的內容 CRACI 的做法
CICD-SEC-3: Dependency Chain Abuse 建置取用了惡意或非預期的套件 對外連線政策限制作業可取用的來源,作業的 SBOM 會記錄它取用的每個套件
CICD-SEC-7: Insecure System Configuration 執行管線的系統設定薄弱 作業在隔離的虛擬機器中執行,無法套用的政策會失效即封鎖
CICD-SEC-9: Improper Artifact Integrity Validation 遭竄改的建置產物被當成合法產物在管線中流通 不提供簽章的來源證明;API 會回傳每次建置的來源證明資料
CICD-SEC-10: Insufficient Logging and Visibility 管線中的攻擊無人察覺,也無從調查 每個作業的網路追蹤記錄、政策違規警示,以及可回傳 SBOM、網路追蹤記錄與來源證明的 API

就 CICD-SEC-7 而言,CRACI 涵蓋的是執行器。您的儲存庫與 GitHub 組織的設定仍由您負責。坦白說明其餘部分:CRACI 不處理身分與存取管理(CICD-SEC-2)或憑證管理(CICD-SEC-6),也不治理流程控制、管線權限或第三方服務(CICD-SEC-1、5 與 8)。機密掃描(例如 GitHub 的 Secret Protection 或 Cycode 的機密偵測)以及前述的態勢工具,才是為這些風險而打造的。

如何選擇 CI/CD 資安工具

  • 取代執行器,還是保留它們。如果您想保留 GitHub 託管執行器、自架執行器或其他 CI 系統,要加入執行階段管控就該使用代理程式。如果您願意更換執行器,像 CRACI 這樣的執行器無需部署代理程式,就能提供對外連線管控與建置記錄。
  • 目前的稽核模式。Harden-Runner 與 Cimon 可以在封鎖任何連線之前先監看流量。CRACI 的監控(或試運行)模式已列入產品藍圖。
  • 程序層級的鑑識。如果您需要在資安事件期間得知哪個程序寫入了哪個檔案,監控程序與檔案的代理程式可以做到。CRACI 不監控程序或檔案寫入。
  • SBOM 與 CRA 佐證資料。如果您需要每次建置的套件層級 SBOM、來源證明,以及 Cyber Resilience Act(CRA)所需的佐證資料,請檢視每項工具記錄了什麼,以及它是否會持續監控已出貨的內容。CRACI 在建置執行時記錄 SBOM,在新漏洞出現時重新評估受監控的 SBOM,並以 CycloneDX 或 SPDX 匯出 SBOM。
  • CI 平台與作業系統。CRACI 目前支援 GitHub Actions,GitLab CI 與 Jenkins 已列入產品藍圖;它在 x86-64 與 ARM64 的 Linux 上執行,Windows 與 macOS 已列入產品藍圖。如果您在其他 CI 系統上建置,或現在就需要 Windows 或 macOS 執行器,請先確認代理程式的支援範圍。
  • 程式碼與機密。原始碼與機密掃描器涵蓋了任何執行器都不涵蓋的範圍。CRACI 不提供 SAST 或機密掃描,因此請另外規劃。

執行器上的代理程式,還是執行器本身

代理程式是加到別人設計的基礎設施上。在 GitHub 託管執行器上,它是由每個作業開頭的一個步驟安裝,能觸及的範圍取決於該基礎設施允許什麼。正因如此,代理程式能同時涵蓋託管執行器、自架機群與多個 CI 系統;當您的建置分散在這些環境中時,這是實實在在的優勢。

自行執行政策的執行器則恰好相反。在 CRACI 上,對外連線政策會在作業開始前完成驗證、拒絕未知欄位並採失效即封鎖,因此無法套用的政策不會產生未受保護的執行。它的來源依生態系定義類型,提供 24 個內建軟體來源預設組態,以及針對 npm、PyPI、apt、apk、Go proxy、Nix、Cargo、OCI 映像檔庫與 Git 的自訂來源,因此記錄的是套件,而不只是主機。對於在 CRACI 上執行的作業,它會取代執行階段代理程式,而不是與之並行。進一步了解 CI/CD 整合與 建置時 SBOM 產生,或 預約示範,看看 GitHub Actions 作業如何在對外連線政策下執行。

CRACI 與各工具比較

並列比較

在同一頁比較多款工具,適合您在選擇類別而非單一產品時參考。

CI/CD 資安工具常見問題

什麼是 CI/CD 資安工具?

CI/CD 資安工具保護將原始碼轉變為已發布軟體的管線。它們可分為四類:讀取程式碼與相依套件的掃描器(SAST、機密掃描、SCA)、強化建置周邊管線設定的工具、在作業執行時監看執行器的代理程式,以及自行管控並記錄建置的執行器。OWASP Top 10 CI/CD Security Risks 是檢查某項工具處理哪些風險的常見方式。

CI/CD 資安與 SCA 有什麼不同?

軟體組成分析(SCA)讀取您的 manifest 與鎖定檔(lockfile),告訴您哪些宣告的相依套件有已知漏洞。CI/CD 資安保護的是管線本身:誰可以修改它、建置可以連到哪裡,以及您出貨的建置產物是否就是當初建置出來的那一個。CRACI 從建置著手:它記錄每個作業實際取用的套件,包括從 CI 快取還原的套件,並在發布後持續監控新漏洞。

使用 CRACI 還需要執行階段代理程式嗎?

若是為了對外連線管控或建置記錄,就不需要。在 CRACI 上,對外連線政策是執行器的一部分,會在作業開始前完成驗證並採失效即封鎖(fail closed),因此對於在 CRACI 上執行的作業,CRACI 可取代 Harden-Runner 與 Cimon 等代理程式。您會失去的是程序與檔案監控(CRACI 不提供),以及稽核模式(已列入 CRACI 的產品藍圖)。如果程序層級的鑑識是硬性需求,目前可以在您保留的執行器上使用執行器代理程式來滿足。

CI/CD 資安工具能封鎖惡意套件嗎?

有些可以,方式各不相同。對外連線管控會阻止建置連到政策以外的來源,因此從非預期主機的下載會失敗。套件封鎖清單與套件庫管控則能從根本阻止已知的惡意版本被安裝。CRACI 目前依作業執行對外連線政策,來源依生態系定義類型;全組織的套件封鎖清單已列入 CRACI 的產品藍圖。

哪些 CI/CD 資安工具可在 GitHub Actions 以外使用?

截至 2026 年 9 月,StepSecurity 除了 GitHub Actions 之外,也列出 GitLab CI 與 Azure DevOps;Cycode 的 Cimon 也能在 Azure Pipelines、Jenkins、GitLab CI、Buildkite 與 Harness 上執行。GitHub Advanced Security 也有針對 Azure DevOps 的版本。CRACI 目前支援 GitHub Actions,GitLab CI 與 Jenkins 已列入產品藍圖。

其他類別

在您自己的管線上體驗 CRACI

預約示範,我們將與您一起檢視您的建置、SBOM 與法規遵循佐證資料。

預約示範