Skip to content

Conversation

@paveliak
Copy link
Contributor

This is an alternative PR for the #1267

For the most part it reiterates threats expressed in the original PR but it takes an effort to group threats differently into these classes:

  • in transit (during the image distribution) aligning those with L1 level
  • at rest threats aligning those with L2
  • in use threats aligning those with L3

We think that such an alignment provides a better mental model for BuildEnv track levels and gives users a clear picture of what kind of threats are expected to be mitigated if certain BuidlEnv level is implemented by a Build Platform.

CC @marcelamelara

@netlify
Copy link

netlify bot commented Aug 26, 2025

Deploy Preview for slsa ready!

Name Link
🔨 Latest commit 3eb698e
🔍 Latest deploy log https://app.netlify.com/projects/slsa/deploys/6920e311e0242100085d169c
😎 Deploy Preview https://deploy-preview-1479--slsa.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@marcelamelara marcelamelara changed the title Threat model for the BuildEnv track (take 2) content: Threat model for the BuildEnv track (take 2) Aug 28, 2025
@navagj0
Copy link

navagj0 commented Sep 2, 2025

This is an alternative PR for the #1267

For the most part it reiterates threats expressed in the original PR but it takes an effort to group threats differently into these classes:

  • in transit (during the image distribution) aligning those with P1 level
  • at rest threats aligning those with P2
  • in use threats aligning those with L3

We think that such an alignment provides a better mental model for Building track levels and gives users a clear picture of what kind of threats are expected to be mitigated if certain Buildings level is implemented by a Build Platform.

CC @marcella

Copy link
Contributor

@marcelamelara marcelamelara left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @paveliak ! I mostly have nitpicky/clarifying changes actually, though I think there's still an open question about the BuildEnv L3 threat and whether it should be two separate threats or just one.

paveliak and others added 13 commits September 18, 2025 20:58
Co-authored-by: Marcela Melara <[email protected]>
Signed-off-by: Pavel Iakovenko <[email protected]>
Co-authored-by: Marcela Melara <[email protected]>
Signed-off-by: Pavel Iakovenko <[email protected]>
Co-authored-by: Marcela Melara <[email protected]>
Signed-off-by: Pavel Iakovenko <[email protected]>
Co-authored-by: Marcela Melara <[email protected]>
Signed-off-by: Pavel Iakovenko <[email protected]>
Co-authored-by: Marcela Melara <[email protected]>
Signed-off-by: Pavel Iakovenko <[email protected]>
Co-authored-by: Marcela Melara <[email protected]>
Signed-off-by: Pavel Iakovenko <[email protected]>
Co-authored-by: Marcela Melara <[email protected]>
Signed-off-by: Pavel Iakovenko <[email protected]>
Co-authored-by: Marcela Melara <[email protected]>
Signed-off-by: Pavel Iakovenko <[email protected]>
Co-authored-by: Marcela Melara <[email protected]>
Signed-off-by: Pavel Iakovenko <[email protected]>
@marcelamelara marcelamelara self-requested a review October 3, 2025 23:09
Comment on lines 101 to 103
Trustworthiness of the build process largely depends on the trustworthiness of the [build environment] the build runs in.
The Build track assumes full trust into the [Build Platform], and provides no requirements to verify integrity of the build environment.
BuildEnv track intends to close this gap.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this an accurate representation? Is it that the trustworthiness depends on the build environment or is it that intentional and recordable mitigation of build environment threats can provide further assurances for the build provenance? It seems reasonable that a consumer may trust the entity running the build platform, but it also seems reasonable that a different consumer may not want to trust that same entity.

Should this be worded in terms of the build process generically or the build provenance specifically?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@arewm This might be a good continuation for #1479 (comment)

Initially I had "build provenance" in this text and later changed it to the "build process" (see the linked discussion) 😁 What I would like to convey in this text is that trustworthiness of build artifacts (as captured by the build provenance) depends on the trustworthiness of the build environment. Would that be a better wording?

CC @marcelamelara

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to try to fold this into the PR for #1520 , but may decide to do this separately.

4. *Build execution*: Finally, the build agent within the environment executes
the tenant's build definition.

### Build environment threats
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The wording of this section feels odd. We are inconsistent with leading articles like "the," for example. Are these meant to just inform the information in the mermaid chart? If so, should the chart be before the text?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also addressed in #1520


BuildEnv track assumes full trust in the software that comes with the build image or is installed at runtime.
Malicious software having privileged access within the build environment might be able to circumvent protections provided by the BuildEnv track.
Image providers should manage vulnerabilities in the image components to reduce the risks of such attacks, e.g. by using SLSA Dependency track and hardening images with mandatory access control (MAC) policies.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this something that needs to be included here? It falls into the broader cross-track workflows.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am Ok with removing the e.g section. I do think it is important to mention that vulnerabilities in the image tools and dependencies are out of scope in the BuildEnv track. In fact BuildEnv track relies on the kernel security mechanisms and if build is running with "sudo" and image vulnerabilities get exploited then "all bets are off"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also to be addressed through #1520

Build environment is bootstrapped from a [build image], which is expected to be an artifact of a SLSA build pipeline.
Build platform verifies image security properties including provenance upon starting up the environment and makes evidence of the verification available to tenants or other auditors.

BuildEnv track assumes full trust in the software that comes with the build image or is installed at runtime.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels odd to me -- switching between talking about the BuildEnv track and the different entities in the process. Should there be headings or sections in here somewhere?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracking in #1520

Comment on lines 113 to 117
Bootstrapping the build environment is a complex process, especially at higher SLSA levels.
[Build L3] usually requires significant changes to existing build platforms to maintain ephemeral build environments.
It is not uncommon for the build platforms to rely on public cloud providers to manage the compute resources that power build environments.
This in turn significantly expands the attack surface because added build platform dependencies become part of the [TCB].
Cloud providers are big companies with complex infrastructure that often provide limited abilities to scope the context of trust and continuously validate it over time when using their services.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be separated as the two threats -- bootstrapping and cloud providers -- are not closely related?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They are. Bootstrapping is L2, cloud providers (which is a common case of an external compute platform) is L3. Bootstrapping may not be a good wording here. This paragraph tries to convey the complexity of operating a compute platform that provides ephemeral build environments.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be addressed as part of #1520

Comment on lines 138 to 143
<div class="mermaid">
flowchart LR
BuildImage>Build Image] ---> |L1|BuildPlatform[[Build Platform]]
BuildPlatform[[Build Platform]] ---> |L2|ComputeProvider[[Compute Provider]]
ComputeProvider[[Compute Provider]] ---> |L3|BuildEnvironment[(Build Environment)]
</div>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what @MarkLodato has used for graphics in the past, but this renders as something that is starkly different from the rest of them.

Including mermaid is nice because it makes maintenance of the diagrams easier. Is there any way that we can be more consistent though?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good. I will convert those to Figma. I do like diagrams as code though 😁

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tracked in #1519

@marcelamelara
Copy link
Contributor

@paveliak and I had a sync today where we discussed a path forward. We've decided to merge this PR into draft so that we can continue iterating over the text with the feedback we got here. We will address this feedback in subsequent PRs that address #1519 and #1520 .

Signed-off-by: Marcela Melara <[email protected]>
Copy link
Contributor

@marcelamelara marcelamelara left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a good first iteration on the BuildEnv threat model. We'll continue refining this text in a subsequent PR.

@marcelamelara marcelamelara merged commit 975c780 into slsa-framework:main Nov 21, 2025
6 checks passed
@github-project-automation github-project-automation bot moved this from 🆕 New to ✅ Done in Issue triage Nov 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

7 participants