Auditing GitHub CI/CD controls is no longer a periodic checkbox. It’s a real-time requirement for security, compliance, and trust. Every push, every pull request, every workflow dispatch is a potential vector. Without tight guardrails, automation becomes the fastest delivery mechanism for risk.
Start with visibility. Review every repository’s GitHub Actions workflows, secrets, and permissions. Identify unused secrets, tokens with broad scopes, and workflows triggered on pull requests from forks. These are silent vulnerabilities that attackers exploit.
Lock down permissions. Avoid using GITHUB_TOKEN with default write scopes. Pin actions to specific commit SHAs, not floating tags, to prevent malicious code injection from compromised dependencies. Enforce branch protection rules that block direct merges without reviews or status checks.
Scan access logs. Check who has admin rights, maintain least privilege, and rotate credentials often. Monitor for unusual activity during non-working hours. Implement signed commits to ensure code provenance.