-
Notifications
You must be signed in to change notification settings - Fork 450
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
Equip users who would like to verify fleetd releases #20219
Comments
@lucasmrod @sharon-fdm Will you please review and consider if it's possible for our The challenge here is that per #5 of on the TUF FAQ:
Perhaps we could sign the binaries locally, but still use GitHub Actions to upload them? |
Luke: Proposed changes to accomplish this:
Alternatively we considered adding a GitHub action to do the signing AND pushing to TUF. We decided not to do this because it violates TUF: keys would be in GitHub (keys have to be local/offline). |
cc @willmayhone88 ^ |
Hi folks! As far as I can see, this requirement is an addition to the current build process (to add build provenance attestation) and we don't need to modify how how we release to Fleet's TUF. fleetd has three components:
We can add build provenance attestation to We should also open an issue on osquery's repository to do the same for osqueryd. |
Here's an example: I have a hello-world repository that builds a hello-world executable and I added attestation to the build CI action: Then I download the executable from the action artifacts and we can verify that the downloaded executable hasn't been tampered with (as long as we trust Github and organizations member of the Sigstore’s Public Good Instance, which I think is reasonable :):
|
Here are the tasks that I see so far:
|
For #20219. Added commit for customer-figali
@lucasmrod Let's make sure to review any attestation we have in place to make sure we're consistent with with the standard we're using. Do we want to adopt SLSA, or do we already have something in place? Want to make sure we don't use two different standards in different places. |
AFAICS we don't have any build provenance attestation in place for TUF components (https://github.com/fleetdm/fleet/attestations is empty).
IMO we should adopt SLSA given we build all our TUF artifacts in Github Actions and Github supports it, see here. |
@lucasmrod Thanks for the info! Agreed SLSA looks like the way to go if we don't have something else in place. |
Focusing on the first bullet here looks to be the way forward once we're ready to build a user story(ies) for this:#20219 (comment) (the other two can be left out for now, since this is about equipping users with the ability to do the checking themselves) See updated bullets at top of issue description for reason why. i.e. @noahtalerman see what you think, but I believe this should do it, provided the way we do it addresses the bullets we added above the line in the issue description:
|
Moving the original issue description here for safekeeping: "Add SLSA provenance attestations" Request: As a security engineer, I want there to be a little string associated with whatever version of fleetd I am about to install, where I could hypothetically use that string to verify (manually or via a programmatic check) there hasn't been a person-in-the-middle-attack that replaced it with something nasty, so that I can describe it as a potential security risk reduction in my CISO's risk register. ProblemIn simple terms, I want to verify that the fleetd uploaded to GitHub is the same fleetd downloaded from TUF server. Currently, there is no mechanism in Fleet to verify that the binaries we use are built and uploaded using GitHub Actions from the Fleet repository at a specific commit SHA. This creates a potential security risk, as there is no assurance that the code reviewed is the code that is run, leaving room for possible discrepancies or tampering unless GitHub itself is compromised. Potential solutionsImplement SLSA provenance attestations for the Fleet client binary artifacts and server container image to enable verification that the binaries are built and uploaded using GitHub Actions from the Fleet repository at a particular commit SHA. GitHub now offers native support for SLSA provenance attestations, making it feasible to integrate this feature with relative ease. This addition would enhance the security and integrity of the software by ensuring that the reviewed code matches the deployed binaries, thereby mitigating the risk of supply chain attacks. See GitHub docs here. |
@Patagonia121 heads up that we peeled off this user story and pulled it into the upcoming design sprint. |
customer-figali
: Gong snippet: https://us-65885.app.gong.io/call?id=7283736297840441495&highlights=%5B%7B%22type%22%3A%22SHARE%22%2C%22from%22%3A150%2C%22to%22%3A960%7D%5Dcustomer-figali
: "What's important to us is that GitHub is signing whatever is built (example), -- ideally we're not doing verification ourselves or building custom verification -- rather we want it to just be done with whatever GitHub Actions/GitHub Releases supports natively. We'll probably use this string to use the GitHub command-line tool to the string in our custom script that deploys new versions of agents to laptops. For server images/ECR, we might use a different approach longer-term"User stories
fleetd
release binaries and images #23825The text was updated successfully, but these errors were encountered: