Automatically apply security best practices in your GitHub repository
Pull request example: https://github.com/nginxinc/kubernetes-ingress/pull/3134
In this pull request, minimum permissions are set automatically for the GITHUB_TOKEN
Harden-Runner GitHub Action installs a security agent on the Github-hosted runner to prevent exfiltration of credentials, monitor the build process, and detect compromised dependencies.
Pull request example: https://github.com/python-attrs/attrs/pull/1034
This pull request adds the Harden Runner GitHub Action to the workflow file.
Secure-Repo updates the YAML file and adds Harden-Runner GitHub Action as the first step to each job.
Before the fix, your workflow may look like this (use of v1
and latest
tags)
After the fix, Secure-Repo pins each Action and docker image to an immutable checksum.
Pull request example: https://github.com/electron/electron/pull/36343
In this pull request, the workflow file has the GitHub Actions tags pinned automatically to their full-length commit SHA.
Before the fix, your Dockerfile uses image:tag, e.g. rust:latest
After the fix, Secure-Repo pins each docker image to an immutable checksum, e.g. rust:latest@sha256:02a53e734724bef4a58d856c694f826aa9e7ea84353516b76d9a6d241e9da60e
.
Pull request example: https://github.com/fleetdm/fleet/pull/10205
In this pull request, the Docker file has tags pinned automatically to their checksum.
dependabot.yml
configuration file into your repositoryBefore the fix, you might not have a dependabot.yml
file or it might not cover all ecosystems used in your project.
After the fix, the dependabot.yml
file is added or updated with configuration for all package ecosystems used in your project.
Pull request example: https://github.com/muir/libschema/pull/31
This pull request updates the Dependabot configuration.
Secure-Repo updates the dependabot.yml
file to add missing ecosystems. For example, if the Dependabot configuration updates npm packages but not GitHub Actions, it is updated to add the GitHub Actions ecosystem.
Before the fix, you do not have a CodeQL workflow.
After the fix, a codeql.yml
GitHub Actions workflow gets added to your project.
Pull request example: https://github.com/rubygems/rubygems.org/pull/3314
This pull request adds CodeQL to the list of workflows.
Secure-Repo has a workflow-templates folder. This folder has the default CodeQL workflow, which gets added as part of the pull request. The placeholder for languages in the template gets replaced with languages for your GitHub repository.
Before the fix, you do not have a dependency review workflow.
After the fix, a depdendency-review.yml
GitHub Actions workflow gets added to your project.
Pull request example: https://github.com/input-output-hk/catalyst-core/pull/286
This pull request adds GitHub's actions/dependency-review-action
workflow to the list of workflows.
Secure-Repo has a workflow-templates folder. This folder has the default dependency review workflow, which gets added as part of the pull request.
Before the fix, you do not have a OpenSSF Scorecard workflow.
After the fix, a scorecards.yml
GitHub Actions workflow gets added to your project.
Pull request example: https://github.com/microsoft/CLRInstrumentationEngine/pull/527
This pull request adds OpenSSF Scorecard to the list of workflows.
Secure-Repo has a workflow-templates folder. This folder has the default Scorecard workflow, which gets added as part of the pull request.
To secure your GitHub repo using a pull request:
write
access)Create pull request.
Here is an example pull request: https://github.com/electron/electron/pull/36343.
To create an instance of Secure Workflows, deploy cloudformation/ecr.yml and cloudformation/resources.yml CloudFormation templates in your AWS account. You can take a look at .github/workflows/release.yml for reference.
Contributions are welcome!
If you are the owner of a GitHub Action, please contribute information about the use of GITHUB_TOKEN for your Action. This will enable the community to automatically calculate minimum token permissions for the GITHUB_TOKEN for their workflows. Check out the Contributing Guide