Defending CI/CD Pipelines: Securing GitHub Actions & GitLab CI Runners
Preventing poisoned pipeline execution (PPE), securing deployment secrets using OIDC, and hardening self-hosted runners.

CI/CD as the Crown Jewels of the Enterprise
Continuous integration pipelines possess credentials to production environments, production source code, and cloud deployment keys. If an attacker compromises a CI/CD runner, they can inject malicious backdoors into production code unnoticed.
Eliminating Long-Lived Cloud Keys with OIDC
Never store static `AWS_ACCESS_KEY_ID` or Azure service principal secrets in GitHub repository secrets. Implement OpenID Connect (OIDC) authentication, allowing GitHub Actions to assume temporary, short-lived IAM roles directly from your cloud provider.
Hardening Self-Hosted Runners
Never execute untrusted public pull requests on self-hosted runners connected to corporate internal networks. Deploy ephemeral runners in isolated containers that terminate immediately after build execution.
Related Articles & Advisories
AWS IAM Architecture: Enforcing Least Privilege with Permission Boundaries
A technical blueprint for preventing privilege escalation, eliminating wildcards (*), and enforcing guardrails across multi-account AWS Organizations.
Hardening Azure Virtual Networks: NSGs, ASGs & Azure Bastion Architecture
Eliminating public IP addresses from backend virtual machines and securing administrative access using managed browser tunnels.
Kubernetes Security: Pod Security Standards, Network Policies & Strict RBAC
Preventing container escape, restricting service account tokens, and implementing micro-segmentation across EKS, AKS, and bare-metal clusters.