|
| 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