Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Specification SIG] Clarify/refine SLSA source requirements #463

Closed
marcelamelara opened this issue Aug 8, 2022 · 11 comments
Closed

[Specification SIG] Clarify/refine SLSA source requirements #463

marcelamelara opened this issue Aug 8, 2022 · 11 comments
Labels
slsa 2 Applies to a SLSA 2 requirement slsa 3 Applies to a SLSA 3 requirement source-track spec-change Modification to the spec (requirements, schema, etc.)

Comments

@marcelamelara
Copy link
Contributor

As we work to clarify the intent and requirements for SLSA 1-3, several folks have suggested to revisit how source requirements are treated.

One suggestion is to more clearly separate the source requirements from the build requirements, possibly even defining separate source-specific SLSA tiers on top of a core set of SLSA requirements. The main reasoning behind this is that source management and build are not necessarily handled by the same entity, meaning that builders do not have insight into/control over the source management of a package they are building. A clearer separation may also help in identifying additional or more fine-grained source management requirements.

The goal of this issue to capture a set of recommended source requirements.

cc @melba-lopez @MarkLodato

@MarkLodato MarkLodato added spec-change Modification to the spec (requirements, schema, etc.) slsa 3 Applies to a SLSA 3 requirement slsa 2 Applies to a SLSA 2 requirement labels Aug 9, 2022
@MarkLodato MarkLodato added this to the SLSA spec v1.0 milestone Aug 9, 2022
@melba-lopez
Copy link
Contributor

These are just a few items I think of when I think of source integrity and the system the houses code. I don't think we need to duplicate what these frameworks state, but it is something to consider when designing for what SLSA requirements should be.

https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-218.pdf

image

image

image

https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-161r1.pdf
image

image

image

@melba-lopez
Copy link
Contributor

Here is what I've been working on. This is currently still draft, but wanted to share with the team progress so far

SW Supply Chain Security Brainstorming (16)

@MarkLodato @marcelamelara @joshuagl (the case for separation of source vs build)

@marcelamelara
Copy link
Contributor Author

marcelamelara commented Aug 22, 2022

@melba-lopez These figures are really helpful, thank you for putting them together! I think they distill some of the major use cases for separating source repo integrity from build integrity. I have a couple questions.

Where do dependency sources fit into these figures? I'm thinking of two scenarios.
(1) The builder pulls dependencies from npm at build time, and these dependencies might or might not include their own SLSA attestations.
(2) A git source repo includes one or more git submodules, some first- or third-party repos, each with different visibility settings, and each with different source management and SLSA source attestations.
Given these scenarios, should integrity info about these dependencies, in both cases, be considered part of build or source integrity info? I think in the first scenario, including dependency info in the build integrity attestation makes sense. I'm a bit less clear about what the right thing to do is in scenario 2, where you have nested source repos that are built from source together with the parent source to produce a single artifact. What integrity info, if any could/should the parent source repo provide in scenario 2 about the submodules?

A few other clarifying questions:

  • For all the boxes that say "Trusted", who are those components trusted by?
  • Should the deployment tools be attested as part of the source integrity? I would guess that deployment tools might be used in several different components of the the supply chain, including a builder. Do you have a specific use case in mind for including deployment tools under the source category?

@melba-lopez
Copy link
Contributor

per hybrid meeting @camaleon2016 suggesting Jonathan meadows (from citi) to help with the oss/proprietary model that may answer some of these questions. Awaiting diagram.

@marcelamelara
Copy link
Contributor Author

Based on the Hybrid OSS/Proprietary meetings today and last month, two points have emerged out of these discussions:
(1) developing the source management/repo SLSA requirements is necessary but warrants more time and careful consideration to get right, and
(2) ensuring that the SLSA build requirements cover Hybrid OSS/Proprietary build workflows is a separate effort and should be prioritized for 1.0.

@melba-lopez @MarkLodato Given this split and the focus on Build Levels for 1.0, do we think it would make sense to defer refining source management requirements until after 1.0?

@MarkLodato
Copy link
Member

Agreed.

@shaunmlowry
Copy link

+1 on deferring this

@marcelamelara
Copy link
Contributor Author

Per the Specification SIG meeting today, how should we mark this issue? Can we create a post-1.0 tag?

@MarkLodato
Copy link
Member

Thanks @marcelamelara. I just moved it to a new "SLSA spec v1.1+" milestone and removed the maybe-1.0 tag.

@kpk47 kpk47 moved this to 🆕 New in Issue triage May 25, 2023
@kpk47 kpk47 moved this from 🆕 New Issues to 📋 Backlog in Issue triage May 25, 2023
@kpk47 kpk47 moved this from 📋 Backlog to Untriaged in Issue triage Jun 26, 2023
@zachariahcox zachariahcox moved this to In review in SLSA Source Track Sep 23, 2024
@TomHennen
Copy link
Contributor

So I think we can now close this bug? We've removed source requirements from the build track, we're working on a separate source track. I think the decision has been made?

@TomHennen TomHennen moved this from In review to Let's close it. in SLSA Source Track Oct 24, 2024
@zachariahcox
Copy link
Contributor

agree! marking closed for now.

@github-project-automation github-project-automation bot moved this from Untriaged to ✅ Done in Issue triage Nov 18, 2024
@github-project-automation github-project-automation bot moved this from Let's close it. to Done in SLSA Source Track Nov 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
slsa 2 Applies to a SLSA 2 requirement slsa 3 Applies to a SLSA 3 requirement source-track spec-change Modification to the spec (requirements, schema, etc.)
Projects
Status: Done
Status: Done
Development

No branches or pull requests

6 participants