{"id":448,"date":"2026-10-14T11:21:07","date_gmt":"2026-10-14T11:21:07","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2015\/10\/22\/open-source-scanning-software\/"},"modified":"2026-10-14T11:21:07","modified_gmt":"2026-10-14T11:21:07","slug":"open-source-scanning-software","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/open-source-scanning-software\/","title":{"rendered":"Open Source Scanning Software: Evaluate Legacy Tools and Build a Modern SCA Workflow"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2015\/10\/open-source-scanning-softwa.png\" alt=\"Open source scanning software\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><em>Originally published on 2015-10-22; fully revised and updated.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are choosing or modernizing software composition analysis in a DevOps pipeline, this guide helps you map older tool references to current practice. The <a href=\"https:\/\/www.devopsschool.com\/blog\/open-source-scanning-software\/\">original post<\/a> listed tool names only; this revision explains how to evaluate scanners, design a CI workflow, and apply policy gates with practical commands.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What open source scanning software means in practice<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In modern DevSecOps, open source scanning usually means analyzing dependencies and source artifacts for license risk, known vulnerabilities, and policy compliance. Many teams implement this as part of CI using SBOM generation plus vulnerability and governance checks before merge or release.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tools named in the original post and how to interpret them today<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original article named Palamida, OpenLogic, Black Duck, and Fisheye without context. These tools are not equivalent in scope, and some are better understood as commercial governance platforms or repository analysis tools rather than strictly open source scanners.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tool name from original post<\/th><th>Typical role<\/th><th>How to evaluate for current use<\/th><\/tr><\/thead><tbody><tr><td>Palamida<\/td><td>Historically associated with open source governance and compliance analysis<\/td><td>Confirm current product status, ownership, and support model before planning adoption<\/td><\/tr><tr><td>OpenLogic<\/td><td>Commonly associated with open source management and enterprise support offerings<\/td><td>Validate whether you need scanning only or broader support and governance services<\/td><\/tr><tr><td>Black Duck<\/td><td>Commercial software composition analysis platform<\/td><td>Assess depth of policy controls, reporting, and CI integrations<\/td><\/tr><tr><td>Fisheye<\/td><td>Repository browsing and code intelligence tooling<\/td><td>Check whether it meets SCA requirements; do not assume full dependency risk scanning<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">A practical CI workflow for open source risk scanning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A strong baseline workflow is: generate an SBOM, scan for vulnerabilities, apply policy gates, and store evidence with build metadata.<\/p>\n\n\n\n<pre class=\"mermaid\">\nflowchart TD\n    A[Developer opens pull request] --> B[CI runs dependency and source scan]\n    B --> C[Generate SBOM artifact]\n    C --> D[Scan SBOM for known vulnerabilities]\n    D --> E{Policy gate result}\n    E -- fail --> F[Block merge and open remediation task]\n    E -- pass --> G[Approve merge and publish build]\n    G --> H[Store SBOM and scan evidence]\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Example commands for a pipeline baseline<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The following command sequence shows a common pattern teams use in CI: create an SBOM, scan code artifacts, then fail builds on policy violations.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\"><span class=\"hljs-comment\">#!\/usr\/bin\/env bash<\/span>\nset -euo pipefail\n\n<span class=\"hljs-comment\"># 1) Generate an SBOM from the repository<\/span>\nsyft dir:. -o cyclonedx-json &gt; sbom.cdx.json\n\n<span class=\"hljs-comment\"># 2) Scan project files for vulnerabilities and fail on high severity<\/span>\ntrivy fs --severity HIGH,CRITICAL --<span class=\"hljs-keyword\">exit<\/span>-code <span class=\"hljs-number\">1<\/span> .\n\n<span class=\"hljs-comment\"># 3) Scan the SBOM and fail on high risk findings<\/span>\ngrype sbom:sbom.cdx.json --fail-on high<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Tip:<\/strong> keep scanner rules in version control (severity thresholds, allowlists, and expiry dates for exceptions) so audits and change reviews remain traceable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comparison: platform suites vs CLI-first scanning<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Option<\/th><th>Best for<\/th><th>Strength<\/th><th>Trade-off<\/th><\/tr><\/thead><tbody><tr><td>Black Duck<\/td><td>Enterprise SCA governance<\/td><td>Centralized policy and reporting<\/td><td>Commercial licensing and platform overhead<\/td><\/tr><tr><td>OpenLogic offerings<\/td><td>Teams needing support plus governance<\/td><td>Can combine operational support with open source management<\/td><td>Fit depends on service scope beyond scanning<\/td><\/tr><tr><td>Palamida (historical reference)<\/td><td>Legacy environments or historical processes<\/td><td>Known in earlier OSS compliance programs<\/td><td>Current positioning must be verified before use<\/td><\/tr><tr><td>Fisheye<\/td><td>Repository visibility and code navigation<\/td><td>Useful for code exploration<\/td><td>Not a direct replacement for full SCA scanning<\/td><\/tr><tr><td>CLI-first stack (for example Syft plus Grype plus Trivy)<\/td><td>DevOps teams that want pipeline-native control<\/td><td>Flexible automation and transparent outputs<\/td><td>Requires internal ownership of policy, reporting, and maintenance<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Best practices<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Separate <strong>detection<\/strong> from <strong>policy<\/strong>: scanners find issues, policy decides what blocks releases.<\/li><li>Generate and archive SBOMs for every release artifact, not only for main branch builds.<\/li><li>Fail fast in pull requests on critical findings, then run deeper scans on release candidates.<\/li><li>Review suppressions regularly and require expiry dates for temporary exceptions.<\/li><li>Verify each tool&#8217;s current product scope before procurement; names in older lists may not match current capabilities.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The original post listed several tool names but no implementation guidance. This revised guide explains what open source scanning means in DevSecOps, how to interpret those legacy names, and how to implement a practical CI scanning workflow.<\/p>\n","protected":false},"author":1,"featured_media":3120,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[49],"tags":[647,1437,1434,1435,507,1438,666,1430,1433,1432,1428,950,1429,1431,179,341,637,1436],"class_list":["post-448","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general","tag-best","tag-best-scanning-software","tag-blackduck","tag-fisheye","tag-list","tag-list-of-scanning-software","tag-open-source","tag-open-source-scanning-software","tag-openlogic","tag-palamida","tag-scan","tag-scanning","tag-scanning-software","tag-scanning-tool","tag-software","tag-tool","tag-top","tag-top-scanning-software"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/448","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=448"}],"version-history":[{"count":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/448\/revisions"}],"predecessor-version":[{"id":79323,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/448\/revisions\/79323"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/3120"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=448"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=448"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}