agentic-workflows-blueprint.workflow.securing-github-actions-workflows
Goal
Harden GitHub Actions workflows against supply chain abuse, token misuse, and unsafe workflow execution patterns through enforceable CI security controls.
Scope
- Applies to: GitHub Actions workflow security posture in repositories and organizations.
- Does not cover: non-GitHub CI systems or application vulnerability scanning itself.
Triggers
- "Secure GitHub Actions workflows"
- "Enforce SHA pinning and least-privilege workflow permissions"
- "Harden pull_request and pull_request_target behavior"
- "Add workflow change controls and secret handling safeguards"
Inputs
repoScope: repositories/workflows in scopeorgPolicyContext(optional): organization-level Actions/security settingstokenPolicy: default and per-job permission modelthirdPartyActionPolicy: approved actions and pinning strategyforkPolicy: external contributor and approval requirementsexceptionPolicy(optional): approved deviations with owner/expiry
Invariants
- Third-party actions must be pinned to immutable SHAs.
GITHUB_TOKENpermissions default to least privilege.- Untrusted input must never be directly interpolated into shell commands.
- Workflow changes require explicit ownership/review controls.
- Secrets exposure paths are blocked and auditable.
Procedure
Inventory and baseline
- Enumerate workflows, referenced actions, trigger events, and permission scopes.
- Identify mutable version tags, broad permissions, and unguarded secret usage.
Enforce action integrity
- Pin actions to immutable SHAs.
- Introduce update automation for pinned SHAs (for example Dependabot strategy).
Minimize token privileges
- Set restrictive workflow-level defaults.
- Grant job-specific permissions only where required.
Harden untrusted input handling
- Refactor vulnerable
runinterpolations to safe env/script patterns. - Validate PR metadata handling against injection risks.
- Refactor vulnerable
Secure fork/PR execution model
- Prefer safe trigger patterns for external contributions.
- Constrain or gate privileged execution paths.
Protect secrets and environments
- Enforce environment protection for sensitive jobs.
- Validate no secret values are logged or passed insecurely.
Apply change governance
- Require CODEOWNERS/reviewer controls for workflow/action paths.
- Enforce org-level policy settings for Actions permissions and approvals.
Validate and monitor
- Lint workflows, run dry checks, and verify policy enforcement behavior.
- Publish security audit report with remediation backlog and ownership.
Outputs
- Hardened workflow definitions with pinned actions and scoped permissions.
- Workflow security audit report with findings and remediation status.
- Governance controls for workflow path changes (owner/reviewer policy).
- Exception register for temporary deviations.
Review gate
- All third-party actions are SHA-pinned.
- Workflow/job token permissions follow least-privilege model.
- No unsafe untrusted-input interpolation paths remain.
- Secret handling and environment protection controls are enforced.
- Workflow change governance and approval controls are active.
References
../../SKILL.md../implementing-devsecops-security-scanning/SKILL.md../review/SKILL.md- Interactive HTML View