Skip to content

step-security/harden-runner

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

180 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Step Security Logo

Security monitoring for the GitHub-hosted runner

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.

Prevent DNS exfiltration and exfiltration of credentials

First-of-its-kind patent-pending technology that automatically correlates outbound traffic with each step of a workflow.

  1. 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@14dc64f30986eaa2ad2dddcec073f5aab18e5a24 # v1
        with:
          egress-policy: audit
  2. In the workflow logs, you will see a link to security insights and recommendations.

    Link in build log

  3. Click on the link (example link). You will see outbound traffic made by each step.

    Insights from harden-runner

  4. 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.

    Policy recommended by harden-runner

Try it out

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

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.

Discussions

If you have questions or ideas, please use discussions.

  1. Support for private repositories
  2. Generation of accurate SBOM (software bill of materials)
  3. SLSA Level 1
  4. Cryptographically verify tools run as part of the CI/ CD pipeline

FAQ

Why do I see calls to api.snapcraft.io?

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

Workflows using harden-runner:

  1. https://github.com/nvm-sh/nvm/tree/master/.github/workflows (link to insights)
  2. https://github.com/microsoft/msquic/tree/main/.github/workflows (link to insights)
  3. https://github.com/Automattic/vip-go-mu-plugins/blob/master/.github/workflows/e2e.yml (link to insights)
  4. https://github.com/MTRNord/matrix-art/tree/main/.github/workflows (link to insights)
  5. https://github.com/jauderho/dockerfiles/blob/main/.github/workflows/age.yml (link to insights)

About

Harden-Runner is a CI/CD security agent that works like an EDR for GitHub Actions runners. It monitors network egress, file integrity, and process activity on those runners, detecting threats in real-time.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages