-
-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
needs investigationprovenanceSupply chain provenance issues.Supply chain provenance issues.securitySecurity related issues.Security related issues.
Description
As a security project, an assessment about the SLSA Level of the project should be made and documented at SLSA.md.
Several best practices for supply chain provenance are already employed:
- All the GitHub security features are already enabled for the repository
- Users that are not members of the repository cannot trigger GitHub workflows
- No static/long-lived credentials exist for the purpose of implementing this project (all the access and ID tokens used in the GitHub workflows are 1h-lived)
- The pull request approval process is very strict, requiring all commits to be signed and three strong status checks to pass, covering: build, linting, tests, advanced static code analysis from GitHub, repository formatting and CI infrastructure planning
- The dependencies of the project are restricted to a small set of strongly trusted sources: Go's base images, trusted GitHub Actions, Kubernetes and Google official libraries, the netlink library for adding the Google IP address to the loopback interface, and a few other very popular Go libraries with large communities
- The
go mod downloadbuild layer is pushed toghcr.ioon every build (useful for disaster recovery) - The GitHub workflows are built in a way that CI builds of the emulator are fully isolated
- Dependencies are monitored and proactively updated by GitHub security tools like Dependabot
- The
mainbranch is protected with several rules including no deletion, no force push, administrators (except the owner) cannot bypass branch protection rules, etc. - All artifacts are cryptographically signed using Sigstore's
cosign - Pull request authors cannot approve their own pull requests
- The
releaseGitHub workflow carries the images through their digests all the way from building to testing, pushing, signing, verifying and creating a GitHub release - GitHub Actions inputs are never interpolated inside shell scripts or commands (but rather passed as environment variables)
A few obvious items for achieving Level 3:
- Pull request approval by at least two more people besides the author is still not enforced (but authors, including the owner, already cannot approve their own pull requests)
- A general review of the core decisions and codebase by more people
- Evaluate how much "hermetic" a build needs to be. Do we need to vendor dependencies?
Metadata
Metadata
Assignees
Labels
needs investigationprovenanceSupply chain provenance issues.Supply chain provenance issues.securitySecurity related issues.Security related issues.