Saltearse al contenido

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.

- 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 despliegues
- 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 base
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 code
Terrascan, cfn-nag, ansible-lint (seguridad)
- 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 origen
- 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ódigo
  • 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.
  • 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.
  • 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)