@@ -42,11 +42,11 @@ software developers and consumers.
42
42
43
43
SLSA addresses three issues:
44
44
45
- - Software producers want to secure their supply chains but don't know
45
+ - Software producers want to secure their supply chains but don't know
46
46
exactly how;
47
- - Software consumers want to understand and limit their exposure to supply
47
+ - Software consumers want to understand and limit their exposure to supply
48
48
chain attacks but have no means of doing so;
49
- - Artifact signatures alone prevent only a subset of the attacks we care about.
49
+ - Artifact signatures alone prevent only a subset of the attacks we care about.
50
50
51
51
### Supply Chain Threats
52
52
@@ -225,7 +225,7 @@ dependencies' supply chains plus its own sources and builds.
225
225
226
226
Special cases:
227
227
228
- * A ZIP file is containing source code is a package, not a source, because it
228
+ - A ZIP file is containing source code is a package, not a source, because it
229
229
is built from some other source, such as a git commit.
230
230
231
231
### SLSA Levels
@@ -297,6 +297,7 @@ Common - [Security] | | | | ✓
297
297
Common - [ Access] | | | | ✓
298
298
Common - [ Superusers] | | | | ✓
299
299
300
+ <!-- markdownlint-disable-next-line MD036 -->
300
301
_ ○ = required unless there is a justification_
301
302
302
303
[ Access ] : requirements.md#access
@@ -366,15 +367,15 @@ satisfy all of the SLSA build requirements.
366
367
That said, verified reproducible builds are not a complete solution to supply
367
368
chain integrity, nor are they practical in all cases:
368
369
369
- * Reproducible builds do not address source, dependency, or distribution
370
+ - Reproducible builds do not address source, dependency, or distribution
370
371
threats.
371
- * Reproducers must truly be independent, lest they all be susceptible to the
372
+ - Reproducers must truly be independent, lest they all be susceptible to the
372
373
same attack. For example, if all rebuilders run the same pipeline software,
373
374
and that software has a vulnerability that can be triggered by sending a
374
375
build request, then an attacker can compromise all rebuilders, violating the
375
376
assumption above.
376
- * Some builds cannot easily be made reproducible, as noted above.
377
- * Closed-source reproducible builds require the code owner to either grant
377
+ - Some builds cannot easily be made reproducible, as noted above.
378
+ - Closed-source reproducible builds require the code owner to either grant
378
379
source access to multiple independent rebuilders, which is unacceptable in
379
380
many cases, or develop multiple, independent in-house rebuilders, which is
380
381
likely prohibitively expensive.
@@ -396,38 +397,38 @@ data models. Currently this is joint work between
396
397
[ Binary Authorization] ( https://cloud.google.com/binary-authorization ) and
397
398
[ in-toto] ( https://in-toto.io/ ) but we invite wider participation.
398
399
399
- * [ Standard attestation format] ( https://github.com/in-toto/attestation#in-toto-attestations )
400
+ - [ Standard attestation format] ( https://github.com/in-toto/attestation#in-toto-attestations )
400
401
to express provenance and other attributes. This will allow sources and
401
402
builders to express properties in a standard way that can be consumed by
402
403
anyone. Also includes reference implementations for generating these
403
404
attestations.
404
- * Policy data model and reference implementation.
405
+ - Policy data model and reference implementation.
405
406
406
407
For a broader view of the software supply chain problem:
407
408
408
- * [ Know, Prevent, Fix: A framework for shifting the discussion around
409
+ - [ Know, Prevent, Fix: A framework for shifting the discussion around
409
410
vulnerabilities in open
410
411
source] ( https://security.googleblog.com/2021/02/know-prevent-fix-framework-for-shifting.html )
411
- * [ Threats, Risks, and Mitigations in the Open Source Ecosystem]
412
+ - [ Threats, Risks, and Mitigations in the Open Source Ecosystem]
412
413
413
414
Prior iterations of the ideas presented here:
414
415
415
- * [ Building Secure and Reliable Systems, Chapter 14: Deploying Code] ( https://sre.google/static/pdf/building_secure_and_reliable_systems.pdf#page=339 )
416
- * [ Binary Authorization for Borg] - This is how Google implements the SLSA
416
+ - [ Building Secure and Reliable Systems, Chapter 14: Deploying Code] ( https://sre.google/static/pdf/building_secure_and_reliable_systems.pdf#page=339 )
417
+ - [ Binary Authorization for Borg] - This is how Google implements the SLSA
417
418
idea internally.
418
419
419
420
Other related work:
420
421
421
- * [ CII Best Practices Badge] ( https://bestpractices.coreinfrastructure.org/en )
422
- * [ Security Scorecards] ( https://github.com/ossf/scorecard ) - Perhaps SLSA
422
+ - [ CII Best Practices Badge] ( https://bestpractices.coreinfrastructure.org/en )
423
+ - [ Security Scorecards] ( https://github.com/ossf/scorecard ) - Perhaps SLSA
423
424
could be implemented as an aggregation of scorecard entries, for at least
424
425
the checks that can be automated.
425
- * [ Trustmarks] ( https://trustmark.gtri.gatech.edu/ )
426
+ - [ Trustmarks] ( https://trustmark.gtri.gatech.edu/ )
426
427
427
428
Other takes on provenance and CI/CD:
428
429
429
- * [ The Path to Code Provenance] ( https://medium.com/uber-security-privacy/code-provenance-application-security-77ebfa4b6bc5 )
430
- * [ How to Build a Compromise-Resilient CI/CD] ( https://www.youtube.com/watch?v=9hCiHr1f0zM )
430
+ - [ The Path to Code Provenance] ( https://medium.com/uber-security-privacy/code-provenance-application-security-77ebfa4b6bc5 )
431
+ - [ How to Build a Compromise-Resilient CI/CD] ( https://www.youtube.com/watch?v=9hCiHr1f0zM )
431
432
432
433
<!-- Links -->
433
434
0 commit comments