Skip to content

Commit 92d8158

Browse files
committed
Add notes from the slsa source track breakout
Signed-off-by: Tom Hennen <[email protected]>
1 parent 36c9950 commit 92d8158

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

Diff for: breakouts/slsa_source_track_breakout.md

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
Open Discussion
2+
3+
* SLSA is meant to establish standards / language to communicate how trustworthy development processes are
4+
* Breaks standards into levels: higher the level, the better the guarantees
5+
* V1.0 has Build track: how builders can secure transforming source code to build artifacts like binaries
6+
* Build level 1: protects against mistakes, documentation
7+
* Build level 2: protects against tampering after the build
8+
* Build level 3: some protections during build with isolation requirements, etc.
9+
* Build track allows for mapping a binary artifact to the source code that produced it
10+
* But raises the question about how to trust the source code
11+
* Q: does build level 3 include reproducible builds?
12+
* No, this was discussed extensively and was part of the spec pre v1.0
13+
* On a related note, there’s a separate track being worked on to get hardware attested trust for a build, that provides some similar guarantees
14+
* For the source track, we want to enable repository maintainers to be able to say “repo at revision X meets level Y”
15+
* This statement would be via a cryptographically signed attestation
16+
* Which would enable a level of verifiability, inspection of evidence, etc.
17+
* Would any of the SLSA source track requirements help with the xz-utils maintainer incident?
18+
* The source track would not address this
19+
* Level 1 today just requires a modern VCS (Git, Mercurial, etc.)
20+
* Level 2 is branch history: disallow rewriting protected branches
21+
* Level 3 is provide source provenance attestations that connect a revision to its prior revision
22+
* Safe expunging process: legal or security reasons where history rewrites are required
23+
* Are there connections to existing standards / compliance requirements?
24+
* Somewhere in the build track, there was an effort to map requirements to the SSDF so as to say “if you meet this requirement, you can check these SSDF requirements”
25+
* Are there liability concerns by adopting SLSA?
26+
* Will I be involved in more legal situations as a consequence of adopting SLSA?
27+
* How does this relate to CRA?
28+
* Not 100% sure about CRA, but maps to requirements in SSDF etc and perhaps similar?
29+
* Additionally, SLSA is more verifiable with tooling rather than a human-filled checklist
30+
* SLSA \<-\> gittuf
31+
* SLSA doesn’t want to require a specific toolchain for managing source code
32+
* Requiring a specific toolchain would also stop the development of new tools
33+
* Is the ambition of SLSA to get bigger players (Google etc) to align on these goals? Startups?
34+
* Large enterprises and startups
35+
* Related: do we expect small orgs / engineers to implement controls?
36+
* One set of SLSA’s consumers are in fact developer tooling / platforms builders who can build requirements into tooling to make it available invisibly to end users
37+
* Individual developers driven repositories
38+
* A significant number of repositories have one or so significant developers
39+
* Requirements being imposed on a developer doing this as a hobby
40+
* Side note: Does the CRA impose more requirements on such hobby developers?
41+
* SLSA does not set requirements, thinking more along the lines of sane defaults and making it part of the tooling itself
42+
* Ideal: Most developers needn’t even know SLSA is a thing, just gets built into the tooling.
43+
* Do you foresee something like “this thing we’re bringing into our enterprise is a particular SLSA level?”
44+
* Yes, that could well be the case
45+
* If the vendor is a hobbyist, it’s on the enterprise to compensate the hobbyist
46+
* What’s the tooling to verify the attestations for some repo you’re consuming?
47+
* One option is to trust the attestation to an extent, check the revision matches the attestation, etc.
48+
* Who makes the attestation (maintainer of repository vs someone else for eg) is an interesting question
49+
* gittuf
50+
* SLSA isn’t prescriptive
51+
* You can meet a lot of these requirements by trusting a platform to do them
52+
* But maybe we can go further and remove the need to trust the platform
53+
* What does it mean to be SLSA Level 3 if the system enforcing those things can be compromised
54+
* Thoughts on code review
55+
* Anonymity / pseudo-anonymity are important
56+
* Individuals can’t meet this requirement
57+
* In startups: requiring code reviews would be difficult
58+
* Quality of code reviews vary so the review may not mean much
59+
* What is reviewed is important to define
60+
* But code review as a whole is not well defined
61+
* From the consumer’s perspective
62+
* Would a consumer expect code review from a vendor?
63+
* Automated tests may be better signal than code review
64+
65+
SLSA community: [https://slsa.dev/community](https://slsa.dev/community)
66+
Source Track *Draft:* [https://slsa.dev/spec/draft/source-requirements](https://slsa.dev/spec/draft/source-requirements)

0 commit comments

Comments
 (0)