- Tracks: A division into tracks that focus on distinct areas of supply chain security, enabling incremental adoption.
- Provenance: Enhanced guidance on verifying the origin and integrity of software artifacts.
- Stability: A solid foundation for future expansions without breaking changes.
SLSA Levels: Requirements, Benefits, and Problem Solving
SLSA defines three progressive levels of compliance that represent increasing rigor in securing the software supply chain. Each level addresses specific risks and builds upon the previous one. Let’s look at each level to see what it means and how Chainloop helps you verify it.SLSA Level 1: Build Process Documentation
It ensures that the entire build proces is documented and recorded. This gives basic visibility into how the software is made, but doesn’t protect against tampering. Chainloop ensures that the build is run on a dedicated infrastructure, but doesn’t verify its authenticity.SLSA Level 2: Protection Against Tampering
It ensures that the build is run on an authenticated, hosted runner with access to the build file. Chainloop checks this using an OIDC token from the build platform and also requires the provenance information to be signed using keyless signing. This helps prevent attackers from tampering with the code or build process, since all changes are tracked and the provenance is securely signed.SLSA Level 3: Advanced Threat Protection
Currently the most advanced level of SLSA. It strengthen the build system with security controls and auditing. Provenance is non-falsifiable, so even insiders or compromised systems have a much harder time sneaking in malicious changes. Chainloop uses a mixture of automatic and manual evidence to ensure this SLSA level.Detailed SLSA levels requirements
Let’s now look into deeper details of each SLSA level and their requirements.Level 1: Build Process Documentation
The first level of SLSA specifies the following requirements and addresses the following problems:- Requirements:
- Document all processes involved in building an artifact.
- Include metadata detailing sources and dependencies.
- What it means:
- Provides visibility into the build process, enabling consumers to assess risks and identify potential issues.
- Problems addressed:
- Helps detect honest mistakes or misconfigurations in the build process.
- Establishes a baseline for transparency in software development.
Requirement | Description | Chainloop Policy |
---|---|---|
slsa-build-l1-1 | Follows consistent build process: scripted, repeatable (e.g., GitHub Actions), low variability, includes Git commit SHA. | runner-automated (automatic) |
slsa-build-l1-2 | Ensures build is run on a dedicated infrastructure. | runner-automated (automatic) |
slsa-build-l1-3 | Provenance is distributed, preferably via ecosystem convention. | convention-agreed (manual evidence) |
slsa-build-l1-1
Software producer follows a consistent build process so that others can form expectations about what a correct build looks like. We understand the requirement as:- Build should be scripted.
- Build should use declarative and repeatable build system such as like GitHub Actions, GitLab CI, etc.
- Build variability should be minimized, so ensure packages are locked, etc.
- Git commit SHA should be embedded into the provenance file.
slsa-build-l1-2
Provenance exists describing how the artifact was built, including the build platform, build process, and top-level inputs. What Chainloop does:- Ensures runner environment presence.
- Ensures runner is one of the allowed runners.
slsa-build-l1-3
Software producer distributes provenance to consumers, preferably using a convention determined by the package ecosystem. We understand the requirement as:- Verification of existence of a provenance material.
Level 2: Protection Against Tampering
SLSA level 2 specifies the following requirements and addresses the following problems:- Requirements:
- Use a build version control for source code.
- Employ a hosted build service to generate signed provenance.
- What it means:
- Ensures that artifacts are traceable to their source and have not been tampered with during the build process.
- Problems addressed:
- Mitigates risks of unauthorized changes or tampering by requiring signed provenance and controlled infrastructure.
Requirement | Description | Chainloop Policy |
---|---|---|
slsa-build-l2-1 | Build runs on dedicated infra, provenance is signed using keyless signing. | signature-present (automatic) |
slsa-build-l2-2 | Provenance is signed using keyless signing and the runner is authenticated via OIDC token. | signature-present , runner-authenticated (automatic) |
slsa-build-l2-1
Build platform runs on dedicated infrastructure, not an individual’s workstation, and the provenance is tied to that infrastructure through a digital signature. What Chainloop does:- Verifies that the SLSA provenance is generated and signed using keyless signing.
slsa-build-l2-1
Downstream verification of provenance includes validating the authenticity of the provenance. What Chainloop does:- Verifies that the SLSA provenance is generated and signed using keyless signing and that the runner is authenticated via OIDC token and provides the workflow file reference.
Level 3: Advanced Threat Protection
SLSA level 3 specifies the following requirements and addresses the following problems:- Requirements:
- Hardened build systems with security controls.
- Provenance must be non-falsifiable and auditable.
- What it means:
- Provides stronger guarantees about artifact integrity by ensuring that both source and build platforms meet rigorous standards.
- Problems addressed:
- Protects against sophisticated threats such as insider attacks or compromised build environments.
Requirement | Description | Chainloop Policy |
---|---|---|
slsa-build-l3-1 | Build platform prevents cross-run interference, even within the same project. | Automatic:runner-authenticated Manual evidence: build-platform-multifactor build-platform-isolated build-platform-connections build-platform-access build-platform-monitoring controls-build-platform-evidence |
slsa-build-l3-2 | Build platform provenance signature is verified. | Automatic:signature-present Manual evidence: build-platform-certificate controls-build-platfrom-secrets-evidence |
slsa-build-l3-1
Build platform implements strong controls to prevent runs from influencing one another, even within the same project. The process of verification of theslsa-build-l3-1
is currently a mixture of manual and automatic checks in Chainloop with the
automation ensuring:
- Verification of the runner authentication.
slsa-build-l3-2
Build platform implements strong controls to prevent secret material used to sign the provenance from being accessible to the user-defined build steps. The process of verification of theslsa-build-l3-2
is currently a mixture of manual and automatic checks in Chainloop with the
automation ensuring:
- Verification of the SLSA provenance signature.