比較
2026 年 13 款最佳軟體組成分析(SCA)工具
軟體組成分析(SCA)工具會找出您程式碼中的開源元件,並標記已知漏洞與授權風險。本文介紹九款商用 SCA 工具與四款免費工具、它們的差異,以及以記錄建置取代掃描建置的 CRACI 如何與它們搭配。
更新日期
本頁適合誰
本頁適合正在挑選 SCA 工具,或想確認現有工具是否仍然合用的團隊。CRACI 是我們打造的,請將這點納入考量。所有關於其他產品的說法都來自該廠商自己的文件,而且多數產品都有更詳細的 CRACI vs X 頁面。
先說明一點:CRACI 並不是傳統意義上的 SCA 掃描工具,而是記錄工具。它執行您的 GitHub Actions 作業,並記錄作業取得的內容。它的定位是與 SCA 工具並用,而不是取代 SCA 工具。
SCA 工具做什麼
幾乎每款 SCA 工具都遵循相同的步驟,差別在於每一步做得多好。基本概念請參閱什麼是軟體組成分析、SCA 掃描如何運作、SAST 與 SCA 比較以及可達性分析。
- 識別元件。讀取 manifest 與 lockfile、分析原始碼,或為二進位檔建立指紋,以列出直接與遞移相依套件。
- 比對漏洞。將每個元件及版本與 NVD、GitHub Advisory Database 和 OSV 等資料庫比對。
- 檢查授權是否符合您的政策。
- 排定優先順序。依嚴重程度、EPSS 等漏洞利用資料,以及許多工具提供的可達性為發現排序。
- 修補。建議升級或開啟 pull request。
- 監控與報告。針對新漏洞發出警示並匯出 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 是記錄工具,不是掃描工具。您的 GitHub Actions 作業在 CRACI 執行器上執行,可辨識套件的代理伺服器會記錄每個作業取得的內容,相依套件的佐證資料也會隨 CI 快取一併保留。CRACI 依據這份紀錄產生標示自身完整度的 CycloneDX 或 SPDX SBOM,持續重新評估受監控的 SBOM,將每項發現轉交給負責修正的團隊,並可依授權阻擋建置。最適合必須證明每個版本包含哪些內容的團隊。注意:不提供 SAST、機密、IaC 掃描或可達性分析,目前僅在 GitHub Actions 上執行 Linux 作業(其他 CI 系統、Windows 與 macOS 已列入產品藍圖)。 建置時 SBOM 產生
Snyk
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 以開源治理為核心。Lifecycle 套用資安與授權政策(其授權政策涵蓋超過 2,000 種授權),對建置產出的內容使用 Advanced Binary Fingerprinting,並開啟 Golden Pull Requests。Repository Firewall 會在元件進入您的儲存庫之前將其隔離,SBOM Manager 則監控匯入的 SBOM。最適合希望在儲存庫設下關卡的大型組織。注意:產品組合正在調整,新客戶現在購買的是 Sonatype Guide。 CRACI vs Sonatype
Black Duck
Black Duck 能找出藏在任何地方的開源元件:套件管理工具掃描、特徵碼與程式碼片段掃描,以及無需原始碼即可分析執行檔與韌體的二進位分析。它的 KnowledgeBase 追蹤超過 2,750 種授權,Coverity 則提供涵蓋 22 種語言的 SAST。最適合含有大量長年複製或內嵌開源程式碼的專案,以及需要檢查第三方二進位檔的情況。注意:價格需報價,其 Fix PR 僅涵蓋直接相依套件。 CRACI vs Black Duck
Mend.io
Mend AppSec 結合了 Mend SCA(可追蹤經由遞移相依套件的呼叫圖)與支援超過 30 種語言的 Mend SAST。Mend Renovate 讓 90 種以上套件管理工具中的相依套件保持最新,而 Renovate CLI 是免費的。最適合積壓大量問題、希望同時兼顧優先排序與自動更新的團隊。注意:Mend 自己的文件建議在建置步驟之後掃描,因此準確度取決於您在管線中的哪個位置執行它。 CRACI vs Mend.io
Checkmarx One
Checkmarx One 是涵蓋面廣的 AppSec 平台:SAST、SCA、機密、IaC、API 安全、DAST、容器與惡意套件防護,並在其上提供 ASPM 層。它的 SCA 使用可利用路徑分析,政策可讓建置中斷。最適合希望由單一廠商負責應用程式安全測試的組織。注意:其 GitHub Action 會上傳您原始碼的 zip 封存檔進行掃描(也可改用 SCA Resolver 在本地端分析),價格需報價。 CRACI vs Checkmarx One與Checkmarx 替代方案
Endor Labs
Endor Labs 以函式層級的可達性分析為核心,追蹤從您的原始碼到直接與遞移相依套件中有漏洞函式的程式碼路徑。它還提供升級影響分析、將修正向後移植的 Endor Patches、AI SAST、機密與容器掃描、Package Firewall 以及建置產物簽章。最適合被相依套件警示淹沒的團隊。注意:無法完整建置時,它會退回到較粗略的相依套件層級可達性分析。 CRACI vs Endor Labs
Semgrep Supply Chain
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 現在於相依關係圖與 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 將 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 與各工具比較
- CRACI vs Snyk 資訊清單宣告的內容,對比建置實際做了什麼。
- CRACI vs Aikido 涵蓋廣泛的 AppSec 套件,對比確定性的建置佐證資料。
- CRACI vs Sonatype 儲存庫把關與 SCA,對比建置佐證資料。
- CRACI vs Black Duck 程式碼、片段與二進位檔掃描,對比建置佐證資料。
- CRACI vs Mend.io 相依套件掃描,對比相依套件觀察。
- CRACI vs Checkmarx AppSec 測試平台,對比建置時佐證資料。
- CRACI vs Endor Labs 可達性分析,對比建置觀察。
- CRACI vs JFrog 建置產物管理,對比每次建置的佐證資料。
- CRACI vs GitHub Advanced Security 程式碼、機密與相依套件掃描,對比建置佐證資料。
- CRACI vs Dependabot 版本更新,對比掌握建置實際使用了什麼。
並列比較
在同一頁比較多款工具,適合您在選擇類別而非單一產品時參考。
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 工具搭配使用。