They should require cryptographic signing, verified identity binding, and branch protection that blocks unsigned or untrusted commits. Provenance checks need to happen before merge, because downstream scanning can detect defects but cannot prove origin. The control objective is to make authorship auditable at the point of entry.
What code provenance should prove in a developer workflow
code provenance is about being able to show where code came from, who introduced it, and whether it passed the right controls before it reached the branch or merge queue. That makes it a supply-chain integrity control, not just a scanning step. If a commit cannot be tied to a verified author and trusted signing path, it should not be treated as ready for integration.
For security teams, the practical question is not whether code is “clean enough” after the fact, but whether the workflow can establish origin at the moment the change enters the trusted path. Provenance is strongest when identity binding, signing, and branch policy work together, because each control answers a different part of the trust question.
That is why provenance belongs in the same design conversation as SLSA, which focuses on build provenance and artifact integrity, and why developer-facing controls should also reflect OWASP Cheat Sheet Series guidance on secure implementation patterns that reduce trust-by-assumption in the pipeline.
How to enforce provenance before merge
The control point that matters most is pre-merge. Teams should require signed commits or equivalent attestations, verify that the signer is bound to a real, approved developer identity, and block merges when the commit is unsigned, untrusted, or outside policy. Branch protection is the enforcement layer that keeps provenance checks from becoming optional advice.
Identity binding matters because a signature only helps if the signer is known and the signing process is governed. If anyone can generate a trusted-looking signature without strong identity proofing, the control becomes cosmetic. The workflow should also distinguish human-authored code from code generated or updated by automation, because provenance rules need to stay explicit about which actor is accountable for the change.
When organisations use modern build and release pipelines, the provenance check should be attached to the same review gate that handles approval, test status, and policy enforcement. That ensures the merge system rejects untrusted input early instead of allowing it into a branch where later controls are only detecting exposure, not proving origin.
Why downstream scanning is not enough
Static analysis, dependency scanning, and malware detection still matter, but they answer a different question. They can help find defects, vulnerable dependencies, or suspicious content after code exists. They cannot prove who authored the change or whether the content entered the repository through a trusted path.
That distinction is critical because provenance failure is an origin problem, while scanning is a content problem. A malicious or compromised commit can be perfectly scanned and still be untrusted from a supply-chain perspective. In other words, “scanned” is not the same as “authorized to merge.”
Teams should treat provenance as complementary to scanning, not subordinate to it. A workflow that only scans after merge can reduce some technical risk, but it leaves the trust boundary open at the point where the code first becomes part of the shared branch history.
Risk and Threat Considerations
Weak provenance creates a trust gap that attackers can exploit by slipping unverified changes into the development stream, then relying on normal review fatigue or automated merge habits to carry the code forward. The risk is highest where build systems, release automation, and human reviewers all assume upstream trust without validating origin.
Failure mechanism: unsigned commits, weak signer identity binding, or permissive branch rules let untrusted code enter the trusted branch before any downstream control can establish origin. Once that happens, later scanning may still flag defects, but it no longer restores confidence in authorship or change integrity.
Impact: compromised or spoofed contributions can contaminate release artifacts, undermine auditability, and create a persistent chain-of-custody problem for incident response and compliance evidence. The practical consequence is that teams may know what code was shipped, but not be able to defend who introduced it or under what trust conditions.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
SLSA, NIST SP 800-53 Rev 5 and CIS Controls v8 set the technical controls, while ISO/IEC 27001:2022 defines the regulatory obligations.
| Framework | Control / Reference | Relevance |
|---|---|---|
| SLSA | Supply-chain Levels for Software Artifacts | Code provenance and artifact integrity are the core subject here. |
| Recommendation — Adopt SLSA-aligned provenance requirements for builds and merges. | ||
| NIST SP 800-53 Rev 5 | SA-12 — Supply Chain Protection | The question concerns code origin and trust in the software supply chain. |
| IA-5 — Authenticator Management | Signed commits depend on managed credentials and signing material. | |
| Recommendation — Apply supply-chain protection controls to verify code origin before release. Manage signing credentials and rotate or revoke them promptly. | ||
| ISO/IEC 27001:2022 | A.8.28 — Secure coding | Developer workflow provenance is part of secure software development practice. |
| Recommendation — Embed provenance checks into secure coding and merge workflows. | ||
| CIS Controls v8 | CIS-16 — Application Software Security | The control is about securing the software development lifecycle and release path. |
| Recommendation — Enforce software release controls that verify trusted code before deployment. | ||
Practitioner Guidance
What to verify: confirm that the merge gate checks both the cryptographic signature and the signing identity, not just one or the other. Also verify that branch protection actually blocks bypass paths such as force-pushes, direct merges, and emergency exceptions that are not logged and reviewed.
Decision rule: if a commit cannot be tied to an approved identity and a trusted signing path, treat it as unmergeable until the issue is remediated. If the code came through a bot, release tool, or service account, apply the same scrutiny to that non-human actor’s authority and provenance trail.
Practitioner takeaway: provenance control succeeds only when the workflow proves origin before trust is extended, because once untrusted code is merged, scanning can help detect problems but it cannot re-establish authorship.
Related resources from NHI Mgmt Group
- How should security teams implement code signing without slowing down developer workflows?
- How should security teams implement identity as code in developer workflows?
- How should security teams implement DAST in developer workflows without creating bottlenecks?
- How should security teams implement IDE-native AppSec without disrupting developer workflows?
Deepen Your Knowledge
Free weekly newsletter
Subscribe to the NHI & AI Identity Journal
The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.
Bonus 33% off our NHI Course when you subscribe.
Reviewed and updated by the NHIMG editorial team on October 8, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org