Supply chain security refers to protecting the integrity, security, and reliability of the software development lifecycle from development to deployment. Tekton Chains is designed to address supply chain security concerns by providing mechanisms to verify that artifacts produced by CI/CD pipelines have not been tampered with and can be trusted.
SLSA (Supply-chain Levels for Software Artifacts) is a security framework that provides a checklist of standards and controls to prevent tampering, improve integrity, and secure packages and infrastructure. Tekton Chains supports multiple SLSA provenance formats:
slsa/v1
or in-toto
formattersslsa/v2alpha3
and slsa/v2alpha4
formattersAs part of the framework, SLSA has multiple levels of assurances. These levels contain industry-recognized best practices to create four levels of increasing assurance.
Track/Level | Requirements | Focus |
---|---|---|
Build L0 | (none) | (n/a) |
Build L1 | Provenance showing how the package was built | Mistakes, documentation |
Build L2 | Signed provenance, generated by a hosted build platform | Tampering after the build |
Build L3 | Hardened build platform | Tampering during the build |
Tekton can achieve SLSA Level 2 compliance. For more information, please refer to Getting To SLSA Level 2 with Tekton and Tekton Chains
Signing is the process of cryptographically signing provenance to ensure its integrity and authenticity. Tekton Chains supports multiple signing methods:
Image attestation is used for storing and verifying metadata information related to images. It provides richer supply chain security information, such as:
SLSA Provenance is metadata containing verifiable information about software artifacts, describing how they were built, what sources were used, and who built them. In Tekton Chains, provenance is cryptographically signed to ensure its integrity and authenticity.
There are two types of provenance in Tekton Chains:
SBOM is a nested inventory for software, a list of ingredients that make up software components, including:
SBOM can be in various formats, such as:
Cosign Vulnerability Scan results record the security assessment of the software build process, including:
Custom metadata can be added as needed to support specific security requirements.
For example, grype can generate vulnerability scan results, and these results can be uploaded to the image registry as a custom type.
The verification mechanism is highly flexible and can be customized to validate any metadata present in the attestation. This means that any information stored in the attestation can be used as validation criteria, allowing organizations to implement precise security controls based on their specific requirements.
The flexibility of attestation verification is demonstrated through various validation methods:
Kyverno JMESPath Validation
Rego Policy Validation
CUE Validation
Artifacts in Tekton Chains refer to the inputs and outputs of a build process:
Type hinting is a mechanism used by Tekton Chains to understand the input and output artifacts of a TaskRun or PipelineRun. Type hints are specially named parameters or results that follow specific formats:
CHAINS-GIT_URL
and CHAINS-GIT_COMMIT
ARTIFACT_INPUTS
IMAGES
or parameters/results with the suffix IMAGE_URL
and IMAGE_DIGEST
ARTIFACT_OUTPUTS
Storage backends are where Tekton Chains stores the generated provenance and signatures. Supported backends include:
The Tekton Chains controller is the core component that observes TaskRun and PipelineRun executions, captures relevant information, and generates, signs, and stores provenance. It runs as a Kubernetes deployment in the tekton-pipelines
namespace.