⌂ Home

Software Composition Analysis (SCA)

Your application includes other people’s code—SCA tells you when that code is risky.

What is SCA?

SCA tools build a bill of materials (BOM) of open-source and third-party dependencies (direct and transitive), then match versions against vulnerability databases. Advanced SCA also flags license risk, outdated packages, and malware in registries.

Why open-source dependencies are a risk

Tools

ToolScopeTypical use
OWASP Dependency-CheckMulti-ecosystem CLICI job producing SARIF/HTML reports
SnykSCA + container + IaCPR fixes, policy by severity
npm auditNode/npmLocal and CI `npm audit --production`
OSV / GitHub DependabotGit-nativeAutomated version bump PRs

CVE databases (and friends)

SourceRole
CVE dictionaryIdentifiers + descriptions (MITRE)
NVDEnriched CVE records, CVSS scores, CPE matching
GHSAGitHub Security Advisory database
OSVOpen-source vuln DB with ecosystem-specific ranges

Example: npm audit output (illustrative)

# npm audit --json (excerpt)
{
  "vulnerabilities": {
    "lodash": {
      "name": "lodash",
      "severity": "high",
      "via": [{ "source": 1234567, "name": "lodash", "range": "<4.17.21" }],
      "effects": [],
      "range": "<4.17.21",
      "nodes": ["node_modules/lodash"],
      "fixAvailable": { "name": "lodash", "version": "4.17.21" }
    }
  },
  "metadata": { "vulnerabilities": { "high": 1 } }
}

Remediation strategies

Upgrade path

  1. Patch to fixed version in lockfile.
  2. Run tests + smoke scan; watch breaking changes.

When upgrade is hard

  • Isolate dependency behind a wrapper service.
  • Compensating controls (WAF rules, feature flags off).
  • Time-boxed exception with owner + expiry.

SBOM Export CycloneDX/SPDX from CI so operations and customers can consume the same inventory you scan.