Safeguard
Security Guides•

Where do you find evidence to reconstruct a supply chain incident?

Lockfile history, CI logs, registry and proxy logs, stored inventories and cloud audit trails are the main sources. Collect them before retention ends.

Safeguard Security Team
3 min read

Start with lockfile history, CI build logs, registry or proxy logs, stored inventories and cloud audit trails. Together they show what was resolved, what ran, and what it could reach. Collect them early, because many of these sources are deleted on a schedule.

The principle: three questions, three sources

To write the postmortem you must answer what arrived, what executed, and what it touched. Each question has its own best evidence.

QuestionBest sourcesCommon gap
What arrived?Lockfile history in version control, package proxy logs, registry download recordsFloating ranges leave no record of the resolved version
What executed?CI job logs, runner records, developer machine history, container runtime logsShort log retention on build systems
What did it touch?Cloud audit logs, secret manager access logs, network egress logsLogging not enabled for the relevant service

Source by source

Version control history. Commit history of manifests and lockfiles shows when a version entered. Branches matter: check every branch that builds, not only the main one.

CI logs and metadata. Build logs show which version was installed in each run and which steps ran. Export the logs for the exposure window before the platform's retention removes them. Note that some platforms keep logs for a limited, configurable time, so check yours.

Package proxy or mirror logs. If you use an internal proxy, it can show who fetched the bad version and when. It also shows whether the proxy still serves it.

Stored inventories. An inventory taken at each build is faster than reading logs. If you only have a current inventory, you can say what is there now, not what was there then. That difference should be a finding.

Cloud and secret audit trails. For any environment that ran the code, review what its credentials did during and after the window. Compare against normal behaviour.

Network records. Egress logs may show connections to unexpected hosts from build runners.

Preserve before you clean up

Cleaning up destroys evidence. Before rebuilding runners or deleting caches, copy what you need to a restricted location. Record who collected it, when, and from where. This is useful for your own review and for any later request from customers, auditors or legal advisers. This post is not legal advice, so ask your adviser about evidence handling rules.

Timestamps

Use one time zone throughout, preferably UTC, and note clock differences between systems. A one hour mismatch between CI and cloud logs can produce a false story.

Write down the limits

For each source, write what period it covers and what it cannot show. "CI logs cover the last thirty days only" is a useful line. It tells the reader how much of the window is blind.

Fix the gaps afterward

The best output of this exercise is a list of missing evidence. Typical actions: extend retention for build logs, store a signed inventory per build, enable audit logging where it is off, and standardise on UTC.

Quick check

What is the first source to collect?

The one with the shortest retention. Usually that is CI logs or proxy logs.

Can a current inventory prove what was installed last month?

No. Only a record taken at the time can. Consider storing an inventory per build.

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.