GitHub Actions Goat by StepSecurity is an educational project that simulates common security mistakes that can occur in GitHub Actions workflows.
The importance of Continuous Integration/Continuous Deployment (CI/CD) security has recently been underlined by guidance from the Cybersecurity & Infrastructure Security Agency (CISA) and the National Security Agency (NSA). As per their document Defending Continuous Integration/Continuous Delivery (CI/CD) Environments:
CI/CD environments have become attractive targets for malicious cyber actors (MCAs) aiming to introduce malicious code, steal intellectual property, or cause denial of service attacks against applications.
The increasing number of supply chain attacks on CI/CD environments, such as the infamous SolarWinds, Codecov, and ua-parser-js attacks, paints a vivid picture of this growing threat.
GitHub Actions Goat incorporates best practices from GitHub's Security Hardening for GitHub Actions guide and the CISA/ NSA guidance on CI/CD Security to showcase how these vulnerabilities can be avoided in real-world GitHub Actions workflows.
To get started:
-
Create a fork of the repo.
-
Go to the
Actions
tab in the fork. Click theI understand my workflows, go ahead and enable them
button. -
Click on a link in the
Solution
column below and follow the tutorials.
This project not only demonstrates vulnerabilities but also presents solutions and references to best practices for each issue. In each scenario, we demonstrate how a particular threat can be mitigated.