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

比較

2026 年 13 款最佳軟體組成分析(SCA)工具

軟體組成分析(SCA)工具會找出您程式碼中的開源元件,並標記已知漏洞與授權風險。本文介紹九款商用 SCA 工具與四款免費工具、它們的差異,以及以記錄建置取代掃描建置的 CRACI 如何與它們搭配。

更新日期

Declared dependencies or fetched dependencies An SCA scanner reads the manifest and lockfile and lists the dependencies the project declares. CRACI records what the build job actually fetched, which can also include a tool installed by a CI step or a file downloaded by a script. Both lists are matched against the same vulnerability advisories to produce findings. SCA scanner Reads what the project declares package-lock.json Declared dependencies express 4.19.2 lodash 4.17.21 and the rest of the lockfile CRACI Records what the build fetched build job Fetched dependencies express 4.19.2 lodash 4.17.21 tool from a CI step script download Same vulnerability advisories Findings are only as complete as the list going in

本頁適合誰

本頁適合正在挑選 SCA 工具,或想確認現有工具是否仍然合用的團隊。CRACI 是我們打造的,請將這點納入考量。所有關於其他產品的說法都來自該廠商自己的文件,而且多數產品都有更詳細的 CRACI vs X 頁面。

先說明一點:CRACI 並不是傳統意義上的 SCA 掃描工具,而是記錄工具。它執行您的 GitHub Actions 作業,並記錄作業取得的內容。它的定位是與 SCA 工具並用,而不是取代 SCA 工具。

SCA 工具做什麼

幾乎每款 SCA 工具都遵循相同的步驟,差別在於每一步做得多好。基本概念請參閱什麼是軟體組成分析、SCA 掃描如何運作、SAST 與 SCA 比較以及可達性分析。

  1. 識別元件。讀取 manifest 與 lockfile、分析原始碼,或為二進位檔建立指紋,以列出直接與遞移相依套件。
  2. 比對漏洞。將每個元件及版本與 NVD、GitHub Advisory Database 和 OSV 等資料庫比對。
  3. 檢查授權是否符合您的政策。
  4. 排定優先順序。依嚴重程度、EPSS 等漏洞利用資料,以及許多工具提供的可達性為發現排序。
  5. 修補。建議升級或開啟 pull request。
  6. 監控與報告。針對新漏洞發出警示並匯出 SBOM。

第一步決定了之後的一切。工具從未識別出的元件,就無法被比對、排序或列入 SBOM,這正是下方表格第一列要問每款工具的元件清單從何而來的原因。基本概念請參閱軟體組成分析是什麼,以及它與 SAST 有何不同。

如何選擇

比起功能清單,以下幾個問題能更快區分這些工具:

  • 合併前還是發布後?SCA 工具在 pull request 與 IDE 中表現出色。如果您真正的難題是已出貨的版本裡包含了什麼,您需要的是建置紀錄。
  • 只看相依套件,還是也要看自有程式碼?這些產品多數現在都搭售 SAST,有些還加上機密、IaC、容器或雲端掃描。
  • 您能承受多少警示雜訊?可達性分析會檢查您的程式碼能否呼叫有漏洞的函式,這正是多家廠商競爭的重點。
  • 您需要在門口就擋下不良套件嗎?儲存庫防火牆與套件代理伺服器會在下載前阻擋它們,掃描工具只能在事後回報。
  • 您使用哪種 CI?這裡多數 SCA 工具都能搭配多種 CI 系統。CRACI 目前僅支援 GitHub Actions,GitLab CI 與 Jenkins 已列入產品藍圖。
  • 是否涵蓋您的語言與建置系統?請檢查您出貨的每個生態系,包括 monorepo,以及建置中沒有任何 lockfile 描述的部分。
  • 您需要交出什麼?如果客戶或歐盟 Cyber Resilience Act(CRA)要求每個版本提供 SBOM,請確認支援的格式、哪個方案包含匯出功能,以及工具是否會在清單不完整時告訴您。
  • 您想如何付費?按開發人員、按 committer、按貢獻者、按方案,或依報價。

一覽表

十個欄位放不進一張表格,因此產品分為兩組。兩張表格使用相同的列。「未說明」表示我們引用的廠商頁面並未說明。價格截至 2026 年 9 月。

企業級 SCA 與 AppSec 套件

功能 CRACI Sonatype Black Duck Mend.io Checkmarx One
在建置執行時記錄相依套件 執行器上可辨識套件的代理伺服器 掃描建置輸出 掃描程式碼與二進位檔 在建置後掃描 上傳的原始碼封存檔
建置網路的對外連線政策 失效即封鎖
建置產物的簽章來源證明 無簽章來源證明 未說明 未說明 未說明 未說明
SBOM 匯出 標示完整度
持續監控 SBOM Manager 未說明
依可達性排定優先順序
針對自有程式碼的 SAST 未說明 Coverity Mend SAST
授權掃描或政策 授權政策可阻擋建置
阻擋惡意套件 套件封鎖清單 Repository Firewall 會標記 可偵測 可阻擋建置
GitHub Actions 以外的 CI GitLab CI 與 Jenkins
價格 每 vCPU 分鐘 $0.002(2 vCPU 為 $0.004),按秒計量;無月費 Guide Pro 每年 $1,200 起;Firewall Pro 每年 $4,800 起 需報價 每位開發人員每年最高 $1,000 需報價
  • 支援
  • 部分支援
  • 不支援
  • 已列入產品藍圖

開發人員優先與平台型工具

功能 CRACI Snyk Endor Labs Semgrep GitHub (GHAS) Aikido
在建置執行時記錄相依套件 執行器上可辨識套件的代理伺服器 Manifest 與 lockfile 分析原始碼 從程式碼讀取相依套件 Manifest 加上提交的資料 Manifest 與 lockfile
建置網路的對外連線政策 失效即封鎖
建置產物的簽章來源證明 無簽章來源證明 未說明 endorctl 未說明 Artifact attestations 未說明
SBOM 匯出 標示完整度 僅限 Enterprise 方案 CycloneDX SPDX
持續監控 未說明 Dependabot 警示 未說明
依可達性排定優先順序 函式層級 未說明
針對自有程式碼的 SAST Snyk Code AI SAST Semgrep Code CodeQL
授權掃描或政策 授權政策可阻擋建置 未說明 未說明
阻擋惡意套件 套件封鎖清單 未說明 Package Firewall 可偵測 未說明 Safe Chain
GitHub Actions 以外的 CI GitLab CI 與 Jenkins 未說明
價格 每 vCPU 分鐘 $0.002(2 vCPU 為 $0.004),按秒計量;無月費 提供免費方案;Team 每月 $25 起 提供免費 Developer 方案;付費方案請洽業務 10 位貢獻者以內免費;Teams 每位貢獻者每月 $30 起 每位 committer 每月 $19 與 $30 提供免費方案;付費方案每月 $350 起
  • 支援
  • 部分支援
  • 不支援
  • 已列入產品藍圖

逐一介紹各工具

CRACI

CRACI 官網首頁
craci.com

CRACI 是記錄工具,不是掃描工具。您的 GitHub Actions 作業在 CRACI 執行器上執行,可辨識套件的代理伺服器會記錄每個作業取得的內容,相依套件的佐證資料也會隨 CI 快取一併保留。CRACI 依據這份紀錄產生標示自身完整度的 CycloneDX 或 SPDX SBOM,持續重新評估受監控的 SBOM,將每項發現轉交給負責修正的團隊,並可依授權阻擋建置。最適合必須證明每個版本包含哪些內容的團隊。注意:不提供 SAST、機密、IaC 掃描或可達性分析,目前僅在 GitHub Actions 上執行 Linux 作業(其他 CI 系統、Windows 與 macOS 已列入產品藍圖)。 建置時 SBOM 產生

Snyk

Snyk 官網首頁
snyk.io

Snyk 是開發人員優先的平台:SCA 加上 Snyk Code(SAST)、Snyk Container 與 Snyk IaC,可在 IDE、CLI、SCM 整合與 CI 中執行。它依可達性、漏洞利用成熟度、EPSS 與 CVSS 為相依套件的發現排序,並開啟升級的 pull request。最適合希望開發人員從編輯器開始就著手修正問題的團隊。注意:它的相依關係樹來自 manifest 與 lockfile,而 snyk sbom 指令僅限 Enterprise 方案使用。 CRACI vs Snyk

Sonatype

Sonatype 官網首頁
sonatype.com

Sonatype 以開源治理為核心。Lifecycle 套用資安與授權政策(其授權政策涵蓋超過 2,000 種授權),對建置產出的內容使用 Advanced Binary Fingerprinting,並開啟 Golden Pull Requests。Repository Firewall 會在元件進入您的儲存庫之前將其隔離,SBOM Manager 則監控匯入的 SBOM。最適合希望在儲存庫設下關卡的大型組織。注意:產品組合正在調整,新客戶現在購買的是 Sonatype Guide。 CRACI vs Sonatype

Black Duck

Black Duck 官網首頁
blackduck.com

Black Duck 能找出藏在任何地方的開源元件:套件管理工具掃描、特徵碼與程式碼片段掃描,以及無需原始碼即可分析執行檔與韌體的二進位分析。它的 KnowledgeBase 追蹤超過 2,750 種授權,Coverity 則提供涵蓋 22 種語言的 SAST。最適合含有大量長年複製或內嵌開源程式碼的專案,以及需要檢查第三方二進位檔的情況。注意:價格需報價,其 Fix PR 僅涵蓋直接相依套件。 CRACI vs Black Duck

Mend.io

Mend.io 官網首頁
mend.io

Mend AppSec 結合了 Mend SCA(可追蹤經由遞移相依套件的呼叫圖)與支援超過 30 種語言的 Mend SAST。Mend Renovate 讓 90 種以上套件管理工具中的相依套件保持最新,而 Renovate CLI 是免費的。最適合積壓大量問題、希望同時兼顧優先排序與自動更新的團隊。注意:Mend 自己的文件建議在建置步驟之後掃描,因此準確度取決於您在管線中的哪個位置執行它。 CRACI vs Mend.io

Checkmarx One

Checkmarx 官網首頁
checkmarx.com

Checkmarx One 是涵蓋面廣的 AppSec 平台:SAST、SCA、機密、IaC、API 安全、DAST、容器與惡意套件防護,並在其上提供 ASPM 層。它的 SCA 使用可利用路徑分析,政策可讓建置中斷。最適合希望由單一廠商負責應用程式安全測試的組織。注意:其 GitHub Action 會上傳您原始碼的 zip 封存檔進行掃描(也可改用 SCA Resolver 在本地端分析),價格需報價。 CRACI vs Checkmarx One與Checkmarx 替代方案

Endor Labs

Endor Labs 官網首頁
endorlabs.com

Endor Labs 以函式層級的可達性分析為核心,追蹤從您的原始碼到直接與遞移相依套件中有漏洞函式的程式碼路徑。它還提供升級影響分析、將修正向後移植的 Endor Patches、AI SAST、機密與容器掃描、Package Firewall 以及建置產物簽章。最適合被相依套件警示淹沒的團隊。注意:無法完整建置時,它會退回到較粗略的相依套件層級可達性分析。 CRACI vs Endor Labs

Semgrep Supply Chain

Semgrep 官網首頁
semgrep.dev

Semgrep Supply Chain 是 Semgrep AppSec 平台中的 SCA 產品,與 Semgrep Code(SAST)及 Semgrep Secrets 並列。它將發現分類為可觸及、有條件可觸及或不可觸及,Semgrep 表示這最多可減少 98% 的誤報。在 lockfile 不完整時,Dynamic Dependency Resolution 會結合 manifest 解析與套件管理工具來補齊清單。它也會依您的政策檢查授權、偵測惡意相依套件、開啟升級的 pull request,並匯出 CycloneDX SBOM。最適合已在撰寫 Semgrep 規則的團隊,或小型團隊:免費方案涵蓋最多 10 位貢獻者。注意:付費產品分開計價,Teams 方案的 Supply Chain 每位貢獻者每月 $30 起。

GitHub Advanced Security

GitHub Advanced Security 官網首頁
github.com

GitHub 現在於相依關係圖與 Dependabot(每個 GitHub 方案都包含)之上,另售 Secret Protection 與 Code Security(CodeQL、Copilot Autofix、dependency review)。Artifact attestations 提供 SLSA v1.0 Build Level 2 的簽章來源證明。最適合已在使用 GitHub、希望在 pull request 中處理資安的團隊。注意:相依關係圖描述的是儲存庫的 manifest 與 lock file,私人儲存庫需要 Team 或 Enterprise 方案才能使用付費產品。 CRACI vs GitHub Advanced Security

Aikido

Aikido 官網首頁
aikido.dev

Aikido 將 SCA、SAST、機密、IaC、雲端態勢、容器、DAST 與授權掃描整合在同一個儀表板中。它的 SCA 使用函式層級的可達性分析,AutoFix 會開啟 pull request,免費的 Safe Chain 工具則會在 npm 與 PyPI 安裝時阻擋已知惡意軟體。最適合希望快速取得廣泛涵蓋的小型團隊,或需要從 AppSec 發現產出 SOC 2 與 ISO 27001 報告的團隊。注意:這些合規報告從 Advanced 方案起才提供,且相依套件資訊來自 manifest 與 lockfile。 CRACI vs Aikido

免費與開源的 SCA 工具

如果預算是限制,四款開源工具即可涵蓋 SCA 的核心功能,全部以 Apache-2.0 授權免費提供。這些工具由您自行執行,因此監控、分級研判與報告都要由您自己建立。

功能 掃描對象 漏洞資料 值得注意
Trivy 映像檔、檔案系統、儲存庫、VM 映像檔、Kubernetes 廠商資安公告、GitHub Advisory Database、NVD 也能找出 IaC 設定錯誤、機密與授權
Grype 映像檔、檔案系統與 SBOM 自有資料庫,下載至本機 EPSS、KEV 與風險評分;OpenVEX 篩選;可用 --fail-on 讓建置失敗
OSV-Scanner Lockfile、容器映像檔、SBOM、內嵌(vendored)的 C 與 C++ 程式碼 OSV.dev 選用的呼叫分析;針對 npm 與 Maven 的引導式修補
OWASP Dependency-Check 專案相依套件,完整支援 Java 與 .NET NVD,以 CPE 比對 CLI、Maven、Gradle 與 Ant 外掛程式,以及 CI 整合

Trivy 由 Aqua Security 開發,會讀取儲存庫中的 lock file 與映像檔中已安裝套件的中繼資料,並輸出 CycloneDX 或 SPDX SBOM。CRACI vs Trivy。Grype 由 Anchore 開發,掃描其搭配工具 Syft 列出的內容,除了下載資料庫之外完全在本機執行。CRACI vs Syft 與 Grype。OSV-Scanner 由 Google 開發,是 OSV.dev 資料庫的官方用戶端,支援 19 種以上的 lockfile 類型。OWASP Dependency-Check 以 CPE 識別元件並與 NVD 比對,最適合 Java 與 .NET 專案。若想了解這些掃描工具背後的免費 SBOM 產生工具如何讀取儲存庫,以及它們為何結果不一,請參閱開源 SBOM 產生工具會遺漏什麼。

CRACI 的定位

上述其他工具都是掃描工具:讀取 manifest、lockfile、原始碼封存檔或二進位檔,再判斷其中內容。CRACI 是記錄工具。您的 GitHub Actions 作業在 CRACI 執行器上執行(將 runs-on 改為 craci),可辨識套件的代理伺服器會記錄每個作業從 npm、PyPI、RubyGems、Composer、Cargo、Go、Nix、OCI、apt、apk 與 Git 來源取得的內容,以及下載預設集。相依套件的佐證資料會隨 CI 快取一併保留。CRACI 的資產清冊檢視會在全球範圍內清楚顯示哪些軟體版本部署到哪些產品。

CRACI 依據這份紀錄產生 CycloneDX 或 SPDX SBOM,並針對每個作業與每個快取標示其完整度。它強制執行失效即封鎖(fail closed)的對外連線政策,透過 API 提供 SBOM、網路追蹤與來源證明,持續重新評估受監控的 SBOM,並讓資安團隊研判發現,將每項發現轉交給負責修正的團隊。每個元件都附有其宣告的授權,因此 copyleft 與其他限制性授權會在出貨前浮現,而授權政策可依授權阻擋建置。它將企業在更廣泛的 CRA 法規遵循流程中所需的軟體供應鏈可視性與佐證資料,自動化了相當大的一部分。

以下情況,CRACI 並不是合適的選擇:

  • 您需要 SAST、機密或 IaC 掃描(它都不提供),
  • 可達性是您的首要考量(CRACI 不提供),或您現在就需要套件封鎖清單(已列入產品藍圖),
  • 您的管線在 GitLab、Jenkins 或 CircleCI 上執行,或需要 Windows 或 macOS 執行器(CRACI 目前在 GitHub Actions 上執行 Linux 作業;其他 CI 系統、Windows 與 macOS 已列入產品藍圖)。

在這些情況下,請從上述工具中挑選。如果您也需要證明每個版本包含哪些內容,請以 CRACI 作為執行器,並繼續在 pull request 上使用您的 SCA。想更深入了解掃描工具與記錄工具的差異,請參閱CRACI vs SCA 與 SBOM 工具及SBOM 工具比較,閱讀建置時 SBOM 產生與價格方案,或預約示範,看看 GitHub Actions 建置的紀錄。

關於 CRACI 能取代與不能取代的工具,請參閱CRACI 能取代什麼。

CRACI 與各工具比較

並列比較

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

SCA 工具常見問題

關於軟體組成分析常見問題的簡短解答

什麼是 SCA 工具?

軟體組成分析(SCA)工具會找出您軟體中的開源與第三方元件,將其與 NVD、GitHub Advisory Database 或 OSV 等漏洞資料庫比對,並標記已知漏洞與授權風險。多數 SCA 工具也會為發現的問題排定優先順序、建議升級或開啟升級的 pull request、匯出 SBOM,並持續監控新漏洞。

什麼是 SCA 掃描?

SCA 掃描會讀取專案的 manifest、lockfile、已安裝的套件或容器映像檔,判斷其中包含哪些元件,再與漏洞及授權資料比對。多數工具會在每個 pull request 上執行,並定期排程執行,因此針對您已在使用之版本的新資安公告也能被發現。

SCA 與 SAST 有什麼不同?

SAST 分析您團隊撰寫的程式碼,找出注入等缺陷。SCA 分析您所相依的元件,找出已知漏洞與授權問題。本頁多數商用工具現在兩者都有販售,但兩者回答的是不同的問題。

SCA 與 SBOM 有什麼不同?

SCA 是找出並評估元件的流程。SBOM 是這些元件的機器可讀清單,通常採用 CycloneDX 或 SPDX 格式。多數 SCA 工具都能匯出 SBOM,而 SBOM 的完整程度取決於產生它的方法:manifest 掃描、二進位掃描,或是建置紀錄。

最好的免費 SCA 工具有哪些?

Trivy、Grype、OSV-Scanner 與 OWASP Dependency-Check 都是免費的開源工具。商用工具中,Semgrep 提供 10 位貢獻者以內的免費方案,Snyk、Endor Labs 與 Aikido 有免費方案,而 Dependabot 警示包含在每個 GitHub 方案中。免費工具通常要由您自行負責監控、分級研判與報告。

SCA 中的可達性分析是什麼?

可達性分析會檢查您的程式碼是否真的能呼叫相依套件中有漏洞的函式,讓無法觸及的發現排到清單後面。Snyk、Endor Labs、Mend、Checkmarx、Semgrep、Aikido、Sonatype 與 Black Duck 都提供某種形式的可達性分析。CRACI 不提供。

CRACI 是 SCA 工具嗎?

不是傳統意義上的 SCA 工具。SCA 工具掃描檔案來判斷其中內容。CRACI 是記錄工具:它執行您的 GitHub Actions 作業,記錄每個作業實際取得的套件,產生標示自身完整度的 CycloneDX 或 SPDX SBOM,並持續監控其中的新漏洞。團隊會將它與負責 pull request 和 SAST 的 SCA 工具搭配使用。

看看您的建置實際取得了什麼

預約示範,比較 CRACI 在 GitHub Actions 建置期間記錄的 SBOM 與您的 SCA 工具產生的 SBOM。

預約示範