Safeguard
Security Guides•

What does ASPM need from SCA to work? A data quality checklist

ASPM is only as good as the findings fed to it. This checklist lists the fields SCA must provide: identity, version, path, fix data, and ownership hints.

Safeguard Security Team
6 min read

ASPM can only rank what it can identify. From SCA it needs exact component identity, resolved version, where the component sits in the dependency tree, which application and build it belongs to, fix information, and a stable finding ID. Missing any of these, and deduplication and ownership fail.

Why input quality decides the outcome

ASPM correlates and prioritizes. It does not re-scan your code. If SCA hands over a vague alert such as "lodash is vulnerable" with no version or location, nothing can be matched, deduplicated or routed. The aggregator then shows a bigger list, not a better one.

The checklist

1. Component identity. A package URL or equivalent that names the ecosystem, name and version. Name alone is ambiguous across ecosystems.

2. Resolved version. The version actually installed, taken from the lockfile or built artifact, not the range in the manifest.

3. Dependency path. Direct or transitive, and the chain that brought it in. This tells you which upgrade will remove it.

4. Application and build context. Repository, branch, build or image digest, and service name. Without these, findings cannot be mapped to a running application.

5. Vulnerability identifier. A CVE or advisory ID, so the finding can be joined to exploit data. The CISA KEV catalog and FIRST's EPSS scores are both keyed by CVE.

6. Fix data. The first fixed version, if one exists, and whether it is a major version jump. This feeds effort estimates.

7. Reachability signal. Whether your code calls the vulnerable function, where the tool can tell. This is context ASPM cannot recreate by itself.

8. Stable finding ID. The same issue should keep the same ID across scans, so closing and reopening can be tracked.

9. Timestamps. First seen, last seen and fixed dates. Age is a core metric.

10. Ownership hint. A code owner file, team tag or repository owner, to route the ticket.

How to test your SCA output

Take ten recent findings and check them against the list. Score each one. If more than a couple miss items one to four, fix the SCA configuration first. Common causes are scanning manifests instead of lockfiles, scanning without build context, or exporting a report format that drops fields.

CISA describes an SBOM as a nested inventory of the ingredients that make up software. A good SBOM export carries many of these fields, so using it as the exchange format between SCA and ASPM is a sensible default.

Common failure patterns

  • Ranges instead of resolved versions. A finding based on a version range cannot be confirmed.
  • No application link. The finding lives in a repository but not in any service record.
  • Unstable IDs. Every scan produces new IDs, so closed issues reappear as new.
  • Severity only. The export has a score but no CVE, so exploit data cannot be joined.

A worked example

Here is a poor SCA finding as it might arrive, followed by a good one. Both describe the same issue.

Poor: "A vulnerable version of a logging library was detected. Severity: high."

Good: a record with the package URL, the resolved version from the lockfile, the CVE identifier, the dependency path from the top level package, the repository and build digest, the first fixed version, a reachability flag, the first seen date, and a stable ID.

From the poor record, ASPM can do almost nothing. It cannot match the finding to a service, join it to KEV or EPSS, estimate the fix, or detect that the same finding reappeared. From the good record, it can do all of those.

Step by step: audit your SCA output in an afternoon

  1. Export 20 recent findings in the format your ASPM or sheet will receive.
  2. Make a grid with the ten fields above as columns.
  3. Mark each cell as present, partial or missing.
  4. Count the gaps by field. The most common missing fields point to configuration problems.
  5. Trace each gap to a cause. Manifest scanning instead of lockfiles, no build context, a report format that strips fields, or a tool that does not collect the data at all.
  6. Fix the biggest gap first, rescan, and repeat the audit.

Typical causes and fixes

GapLikely causeFix
No resolved versionScanning manifests onlyScan lockfiles or built artifacts
No application linkScans run without project metadataPass repository and service name at scan time
No dependency pathReport format drops itUse a richer export, such as an SBOM with relationships
Unstable IDsIDs generated per scanDerive IDs from component, CVE and application
No fix dataTool does not look up fixed versionsAdd a lookup step or switch format

Why SBOMs help

CISA describes an SBOM as a nested inventory of the ingredients in software. Because it records relationships between components, it carries the dependency path in a standard form. Using an SBOM as the handoff between SCA and ASPM avoids custom parsing and gives the aggregator a clean base to build on.

Questions to ask your SCA owner

  • Which fields are present on every finding, and which only sometimes?
  • Do identifiers stay the same between scans?
  • Can we export history, not just the latest result?
  • How are findings tied to a specific build?

Improving these answers raises the quality of everything downstream, including the metrics leadership sees.

Try it yourself

Open the demo and look at how direct and transitive components are listed for one project.

Click through it at your own pace, or open it full screen.

Where Safeguard fits

Safeguard generates SBOMs and dependency findings with reachability analysis, so the fields above are available from one place, and its asset discovery helps tie findings to applications. A free scan is at gold.safeguard.sh/scan.

Quick check

What is the single most important field?

Exact component identity with a resolved version. Without it nothing can be matched or deduplicated.

Do I need reachability data for ASPM to work?

No, but it is context the aggregator cannot generate itself, and it removes a lot of noise when available.

Do I need an SBOM to feed ASPM?

Not strictly, but an SBOM is a convenient standard carrier for component identity and dependency relationships.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.