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

content: draft: Flesh out "Usage" threat #1191

Merged
merged 8 commits into from
Oct 23, 2024

Conversation

TomHennen
Copy link
Contributor

There are two ways to look at the usage threat:

  1. Can the attacker modify the software being delivered to a consumer.
  2. Can the consumer use the software insecurly allowing an attacker
    to take advantage of that insecurity to exploit them.

IMO 1 has the same solutions as 'G' (PR #1190). I could repeat them
here under usage, but instead I've updated 'G' to include modification
in transit, and I've had 'Usage' address 2 above (albeit by just
deferring to CISA's work in this area).

fixes #1182

NOTE: this PR is based on top of #1190 since the solution presented in 1190 obviates the need for addressing that here.

These threats generally match the threats for 'Artifact Publication' with
the twist that the consumer must do the verification instead.

Consumer verification may be simplified if a VSA was issued at publication time.

fixes slsa-framework#1180

Signed-off-by: Tom Hennen <[email protected]>
Signed-off-by: Tom Hennen <[email protected]>
Signed-off-by: Tom Hennen <[email protected]>
Copy link

netlify bot commented Oct 14, 2024

Deploy Preview for slsa ready!

Name Link
🔨 Latest commit 0c7e4a3
🔍 Latest deploy log https://app.netlify.com/sites/slsa/deploys/67110d860ceb360009097e04
😎 Deploy Preview https://deploy-preview-1191--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 site configuration.

@TomHennen
Copy link
Contributor Author

Hey @MarkLodato, if you have time can you take a quick look at 'I' in this PR and double-check my logic? I'd like to make sure I'm not missing anything (or if there's a good reason to include much of 'G' here too).

Thanks!

Copy link
Member

@MarkLodato MarkLodato left a comment

Choose a reason for hiding this comment

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

Yeah, I think this is good enough. I didn't have a strong notion of what (I) would be; we added it mostly for symmetry.

docs/spec/draft/threats.md Show resolved Hide resolved
docs/spec/draft/threats.md Show resolved Hide resolved
@MarkLodato
Copy link
Member

Oh, note that this is based on #1190 so that one needs to be merged first.

There are two ways to look at the usage threat:

1. Can the attacker modify the software being delivered to a consumer.
2. Can the consumer use the software insecurly allowing an attacker
   to take advantage of that insecurity to exploit them.

IMO 1 has the same solutions as 'G' (PR slsa-framework#1190).  I could repeat them
here under usage, but instead I've updated 'G' to include modification
in transit, and I've had 'Usage' address 2 above (albeit by just
deferring to CISA's work in this area).

fixes slsa-framework#1182

Signed-off-by: Tom Hennen <[email protected]>
Signed-off-by: Tom Hennen <[email protected]>
Copy link
Member

@mlieberman85 mlieberman85 left a comment

Choose a reason for hiding this comment

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

LGTM

@TomHennen
Copy link
Contributor Author

I think we're good to here. Issues have been filed where we might want to make some other things more clear.

@TomHennen TomHennen merged commit 289b361 into slsa-framework:main Oct 23, 2024
6 checks passed
</details>
<details><summary>Tamper with provenance or VSA <span>(Build L2)</span></summary>

*Threat:* Perform a build that would not meet expectations, then modify the
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
*Threat:* Perform a build that would not meet expectations, then modify the
*Threat:* Issue an attestation that purposefully misrepresents the subject.

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 don't think this is quite right. In example 1 and 2 the threat described is that an existing attestation is tampered with, the mitigation described detects these problems because the attacker cannot modify the valid attestations without invalidating the expected signatures.

However, I think 'example 3' should probably be captured in a threat by itself as that deals with expectations mismatching which is usually captured elsewhere.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Filed #1223 to track.

field to match the digest of the malicious package. Solution: Verifier rejects
because the cryptographic signature is no longer valid.

*Example 3:* Adversary uploads a malicious package to `repo/evil-package`,
Copy link
Contributor

Choose a reason for hiding this comment

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

I think slsa doesn't help with this.

This is basically saying "slsa worked perfectly, but the artifact was not suitable for use because of external policy."
There wasn't really any tampering involved, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

SLSA should help here because the downstream consumer has an expectation for what the resourceUri is and they validate that expectation as expected by other threats example.

How the consumer establishes that expectation for VSAs is being clarified in #1220, but when checking provenance it's a bit more wishy-washy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

TODO: Need to fill out description of "(I) Usage" in threat and mitigation section
5 participants