Improve Github repository security #276
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates our CI setup according to the secure software development best practices
recommended by the Open Source Security Foundation (OpenSSF).
The overall goal is to strengthen the (supply chain) security posture.
The following changes are included:
Pin the Github Action dependencies to hash.
When developing a CI workflow, it's common to version-pin dependencies (i.e.
actions/checkout@v4
). However, version tags are mutable, so a malicious attacker could overwrite a version tag to point to a malicious or vulnerable commit instead.Pinning workflow dependencies by hash ensures the dependency is immutable and its behavior is guaranteed.
https://github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies
Set the default permission for CI workflows to only be able to read from the repository (scope:
contents
).A compromised action will not be able to modify the repo or even steal secrets since all other permission-scopes are implicit set to "none", i.e. not permitted.
https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions
Add a dependabot which will perform weekly checks of the Github actions used in CI.
When a newer version is found a pull request is opened to suggest a lift.
https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool
For future reference, additional Github guidelines and info about permissions.