Seguridad en IaC
La infraestructura como código (Terraform, CloudFormation, Ansible, Bicep) define la nube y los sistemas en ficheros versionados. Eso permite escanear la seguridad de la infraestructura antes de desplegarla: un bucket público o un grupo de seguridad abierto se detecta en el PR, no tras la brecha.
Por qué IaC cambia la seguridad
Sección titulada «Por qué IaC cambia la seguridad»- la infra es CÓDIGO -> se revisa, versiona y escanea como el código (shift-left)- un error de config (S3 público, SG 0.0.0.0/0, sin cifrado) se detecta ANTES de aplicar- reproducible y auditable: el estado deseado está en git, no en clics manuales- riesgo: un error en la plantilla se multiplica por N desplieguesQué detecta el escaneo de IaC
Sección titulada «Qué detecta el escaneo de IaC»- almacenamiento público (S3/blob), cifrado en reposo desactivado- grupos de seguridad/firewalls demasiado abiertos (0.0.0.0/0, puertos de admin)- IAM con permisos excesivos (* en acciones/recursos, ver cloud)- logging/monitorización desactivado, sin MFA, claves sin rotación- recursos sin etiquetar (gobernanza) y desviaciones de la línea baseHerramientas
Sección titulada «Herramientas»Checkov políticas para Terraform/CFN/K8s/ARM (amplio catálogo)tfsec / Trivy escaneo de Terraform y más (Trivy unifica IaC/imagen/SCA)KICS multi-plataforma (Checkmarx)OPA/Conftest políticas a medida (Rego) -> policy as codeTerrascan, cfn-nag, ansible-lint (seguridad)Policy as Code
Sección titulada «Policy as Code»- expresar políticas de seguridad como código (OPA/Rego, Sentinel) -> gate en el CI- "ningún bucket público", "cifrado obligatorio", "sin SG abiertos a Internet"- el PR falla si la plantilla viola la política -> prevención en origenDrift y estado
Sección titulada «Drift y estado»- drift: la infra real se desvía del código (cambios manuales) -> re-escanear infra viva- gestionar el STATE de Terraform con cuidado: contiene secretos -> backend cifrado/remoto- detectar y reconciliar drift; nada de "ClickOps" fuera del códigoBlue Team / AppSec
Sección titulada «Blue Team / AppSec»- Escanear IaC en el PR/CI (Checkov/tfsec/Trivy) y fallar ante configs inseguras.
- Policy as Code (OPA/Conftest) para los invariantes de la organización (sin público, cifrado, etc.).
- Proteger el state de Terraform (contiene secretos) y vigilar el drift.
- Complementar con postura en la nube (CSPM, ver cloud) para la infra ya desplegada.
CVEs y casos reales
Sección titulada «CVEs y casos reales»- Innumerables brechas por S3 buckets públicos y grupos de seguridad abiertos desplegados por IaC sin escanear.
- Capital One (2019): un error de configuración (WAF/IAM) en la nube; el tipo de fallo que el IaC scan previene.
- La mayoría de incidentes cloud son errores de configuración, no exploits → IaC scanning es alto ROI.
Checklist de prueba
Sección titulada «Checklist de prueba»- Escaneo de IaC en el PR/CI (Checkov/tfsec/Trivy)
- Policy as Code para invariantes (OPA/Conftest)
- Detección de almacenamiento público / SG abiertos / IAM excesivo
- Cifrado en reposo y logging obligatorios por política
- State de Terraform en backend cifrado/remoto
- Detección y reconciliación de drift
- Complementar con CSPM para la infra desplegada (cloud)