If you have a self-hosted build server (e.g. Cloud VM), you may have security monitoring implemented on it. When you use GitHub Actions hosted-runner, you can use harden-runner
to add security controls and monitoring to the build server (Ubuntu VM) on which GitHub Actions runs your workflows. Unlike traditional monitoring for Cloud VMs, harden-runner
insights and policy are granular per job of a workflow.
First-of-its-kind patent-pending technology that automatically correlates outbound traffic with each step of a workflow.
-
Add
step-security/harden-runner
to your GitHub Actions workflow file as the first step. Use StepSecurity's online tool to quickly add this and fix additional security issues.steps: - uses: step-security/harden-runner@bdb12b622a910dfdc99a31fdfe6f45a16bc287a4 # v1 with: egress-policy: audit
-
In the workflow logs, you will see a link to security insights and recommendations.
-
Click on the link (example link). You will see outbound traffic made by each step.
-
Below the insights, you will see the recommended policy. Add the recommended outbound endpoints to your workflow file, and only traffic to these endpoints will be allowed. When you use
egress-policy: block
mode, you can also setdisable-telemetry: true
to not send telemetry to the StepSecurity API.
Hands-on tutorials to learn how harden-runner
would have prevented past software supply chain attacks, such as the Codecov breach.
Support for private repositories is now in Preview
. Install the Harden Runner App if you want to use harden-runner
for Private
repositories or if you want the insights to show up instantly after the workflow run completes for Public
repositories. This App only needs actions: read
permissions on your repositories. You can install it on selected repositories, or all repositories in your organization.
If you have questions or ideas, please use discussions.
- Support for private repositories
- Generation of accurate SBOM (software bill of materials)
- SLSA Level 1
- Cryptographically verify tools run as part of the CI/ CD pipeline
During workflow runs, it was observed that unnecessary outbound calls were being made to some domains. All of the outbound calls were due to unnecessary services running on the GitHub Actions hosted-runner VM. These services have been stopped, except for snapd
, which makes calls to api.snapcraft.io
. You can read more about this issue here. api.snapcraft.io
is not needed for your workflow, and does not need to be added to the allowed-endpoints
list.
Workflows using harden-runner:
- https://github.com/nvm-sh/nvm/tree/master/.github/workflows (link to insights)
- https://github.com/microsoft/msquic/tree/main/.github/workflows (link to insights)
- https://github.com/Automattic/vip-go-mu-plugins/blob/master/.github/workflows/e2e.yml (link to insights)
- https://github.com/MTRNord/matrix-art/tree/main/.github/workflows (link to insights)
- https://github.com/jauderho/dockerfiles/blob/main/.github/workflows/age.yml (link to insights)