Artefact signatures, provenance, attestations #1002
ThomasVitale
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I'm starting this discussion to share ideas and gather feedback on how to reconcile emerging frameworks and standards for securing software supply chains and Cartographer.
Background material
Current situation
At the moment, I can address some supply chain security concerns within the context of a specific resource. Cartographer doesn't know about what's going on within each resource.
Image
resource. That would be the service account configured on theWorkload
resource in the developer namespace and then passed along to theImage
resource by Cartographer. In order to ensure non-falsifiable artefacts, the private key should be available only to the build service. In the default setup, since the kpack builder Pod runs in the developer namespace, the private key would be exposed to developers. Any thoughts on this? It might be useful to provide some guidelines.Artefact signatures and attestations
A fundamental part of all three resources mentioned in the Background material section is the need for each stage in a supply chain to be able to trust+validate the input coming from a previous stage, and document+sign the produced output. That is in order to ensure integrity and non-falsifiable attestations.
The SLSA Framework defines the importance of generating Provenance data for each step of the supply chain to register information about the instance that ran the step, how it was triggered, what are the materials/dependencies used, what process was followed, and so on.
The in-toto attestation format is the recommended one to use to register such provenance data. And cosign can be used to sign and push the attestation to some storage.
In a nutshell:
Brainstorming about Cartographer, signatures and attestations
One of the main features of Cartographer is that it provides a common abstraction to design supply chains. It take care of transferring inputs and outputs between the different supply chain resources without having to know the specific of what they are doing. That is an awesome feature to "glue" together different Kubernetes-native tools and design paths to production.
How do you see Cartographer in relation to the idea of supporting artefact signatures and attestations to secure supply chains? Since it deals with input and output data already, could Cartographer be the right place to implement a uniform strategy to achieve that rather than putting the responsibility on each resource?
If Cartographer is not the right place, what should the best practice or "reference architecture" be to define secure supply chains?
Prior art
Tekton has recently introduced a new project to deal with artefact signatures and attestations: Tekton Chains. From the official docs:
The SLSA project worked on a generic generator for GitHub Actions that can be used to generate different provenance metadata.
Beta Was this translation helpful? Give feedback.
All reactions