0Pricing
Cloud & IT Cert Prep · Lección

Análisis de seguridad de la infraestructura como código

Analice plantillas de Terraform, CloudFormation y charts de Helm con herramientas de seguridad de IaC (Checkov, tfsec) para detectar configuraciones incorrectas antes de que lleguen a producción.

Análisis de seguridad de la infraestructura como código es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.

Descripción general de la seguridad de Infrastructure as Code

Las herramientas de Infrastructure as Code (IaC), como Terraform, AWS CloudFormation, Ansible y Helm, permiten definir la infraestructura en archivos de configuración controlados por versiones. Esto aporta enormes beneficios —repetibilidad, auditabilidad y automatización—, pero también un riesgo de seguridad crítico: las configuraciones incorrectas en los archivos de IaC producen infraestructura insegura a escala. Un solo módulo de Terraform configurado incorrectamente y desplegado en 50 entornos crea simultáneamente 50 sistemas vulnerables. El análisis de seguridad de IaC aborda este problema comprobando los archivos de configuración antes de aplicarlos y trasladando la seguridad al inicio del flujo de trabajo del desarrollador.

Configuraciones incorrectas comunes de IaC

Las herramientas de análisis de seguridad buscan las configuraciones incorrectas de IaC más comunes en los entornos de nube reales: buckets de S3 con el acceso público habilitado o sin cifrado en reposo; grupos de seguridad con reglas de entrada 0.0.0.0/0 en puertos sensibles (22, 3389, 1433); bases de datos sin cifrado o con accesibilidad pública; políticas de IAM con comodines * para recursos o acciones; CloudTrail deshabilitado en una región; claves de KMS sin rotación; y balanceadores de carga con escuchas HTTP en lugar de HTTPS. Estos hallazgos reflejan estrechamente las comprobaciones realizadas por benchmarks de seguridad en la nube, como CIS AWS Foundations.

# Dangerous Terraform: public S3 bucket + no encryption
resource 'aws_s3_bucket' 'data' {
  bucket = 'my-data-bucket'
  # Missing: server_side_encryption_configuration
  # Missing: aws_s3_bucket_public_access_block
}

Checkov: Policy as Code para IaC

Checkov (de Bridgecrew/Prisma Cloud) es una popular herramienta de análisis estático de código abierto para IaC compatible con Terraform, CloudFormation, manifiestos de Kubernetes, gráficos de Helm y Dockerfiles. Incluye más de 1.000 políticas integradas asociadas a los benchmarks de CIS, GDPR, SOC 2 y HIPAA. La ejecución de checkov -d . analiza todos los archivos de IaC del directorio actual y genera un informe codificado por colores con las comprobaciones superadas, fallidas y omitidas, junto con las rutas de los recursos y recomendaciones para corregirlas. Checkov puede integrarse en canalizaciones de CI/CD para bloquear las implementaciones cuando fallan comprobaciones críticas.

# Install and run Checkov on Terraform files
pip install checkov
checkov -d ./terraform/ --framework terraform

# Fail CI pipeline on HIGH severity findings
checkov -d ./terraform/ --check HIGH --hard-fail-on HIGH

tfsec: analizador de seguridad para Terraform

tfsec (ahora forma parte de la capacidad de análisis de IaC de Trivy) es un analizador de seguridad de Terraform diseñado específicamente para este fin, que comprende en profundidad la sintaxis de HCL y puede rastrear valores entre módulos y archivos de variables. A diferencia de los analizadores más sencillos, tfsec puede detectar errores de configuración cuyo origen abarca varios archivos; por ejemplo, una regla de grupo de seguridad que parece segura de forma aislada, pero está asociada a un recurso definido en otro archivo. tfsec genera hallazgos con niveles de gravedad (CRITICAL, HIGH, MEDIUM, LOW), ID de CWE y enlaces directos a la documentación de corrección, lo que permite a los desarrolladores actuar sobre ellos.

# Install tfsec and scan Terraform directory
brew install tfsec
tfsec ./terraform/ --format json

# Or use Trivy for unified IaC + container scanning
trivy config ./terraform/

Secretos en archivos de IaC

Uno de los problemas de seguridad más críticos de IaC son los secretos codificados directamente en archivos de configuración: contraseñas, claves de API, claves privadas TLS y cadenas de conexión de bases de datos confirmadas en Git. Dado que los repositorios de IaC suelen compartirse entre equipos y almacenarse en el historial del control de versiones, un secreto confirmado aunque sea una sola vez queda efectivamente comprometido de forma permanente (el historial de Git es inmutable). Herramientas como Checkov, detect-secrets, git-secrets y TruffleHog buscan patrones de secretos. La solución consiste en utilizar variables de entrada cuyos valores procedan de variables de entorno o almacenes de secretos, nunca valores codificados directamente.

# Bad: hardcoded password in Terraform
resource 'aws_db_instance' 'main' {
  password = 'supersecret123'  # NEVER DO THIS
}

# Good: read from variable, inject from secrets manager
variable 'db_password' { sensitive = true }
resource 'aws_db_instance' 'main' {
  password = var.db_password
}

Policy as Code: OPA y Sentinel

Los marcos de Policy as Code (PaC) permiten a los equipos de seguridad escribir reglas personalizadas en código y aplicarlas de forma coherente. Open Policy Agent (OPA) con Conftest permite escribir políticas Rego que validan cualquier dato estructurado —planes de Terraform, manifiestos de Kubernetes y valores de Helm— en canalizaciones de CI/CD. HashiCorp Sentinel está integrado en Terraform Enterprise y Cloud, lo que permite aplicar en el momento del plan políticas como «todos los buckets de S3 deben tener habilitado el cifrado» y bloquear cualquier apply que infrinja la política. Estas herramientas permiten convertir los requisitos de seguridad en código y someterlos a control de versiones junto con la infraestructura que regulan.

# Example Conftest OPA policy: deny public S3
# deny[msg] {
#   input.resource.aws_s3_bucket[name]
#   input.resource.aws_s3_bucket_public_access_block == null
#   msg := sprintf('Bucket %v lacks public access block', [name])
# }

Detección de desviaciones: configuración frente a realidad

La desviación de configuración se produce cuando el estado real de la infraestructura implementada difiere de la definición de IaC, a menudo porque alguien ha realizado un cambio manual desde la consola del proveedor cloud. Una regla de grupo de seguridad añadida manualmente para desbloquear «temporalmente» a un desarrollador se convierte en una brecha permanente. Las herramientas de detección de desviaciones comparan continuamente el estado deseado (los archivos de IaC) con el estado real implementado y generan alertas cuando hay diferencias. AWS Config, la detección de desviaciones de Terraform Cloud y las herramientas CSPM (Prisma Cloud, Wiz) ofrecen esta capacidad. Las configuraciones incorrectas de seguridad introducidas mediante cambios en la consola se detectan antes de que las descubran los atacantes.

# Terraform: detect drift between state and actual cloud resources
terraform plan -refresh-only
# If output shows changes, someone modified infrastructure outside Terraform

Infraestructura inmutable y GitOps

La infraestructura inmutable implica que los servidores y las configuraciones nunca se modifican directamente; en su lugar, los cambios crean recursos nuevos (nuevas AMI, nuevas imágenes de contenedor) y reemplazan los anteriores. Combinada con GitOps (donde todos los cambios de infraestructura deben realizarse mediante una solicitud de incorporación de cambios de Git, lo que activa flujos de trabajo de análisis y aprobación de IaC), elimina la desviación de configuración desde su origen: si algo no puede cambiarse manualmente, no puede desviarse. Herramientas como ArgoCD para Kubernetes y Atlantis para Terraform implementan flujos de trabajo GitOps en los que cualquier diferencia activa una conciliación o una alerta automáticas.

Diferencia entre SAST y el análisis de IaC

El análisis de seguridad de IaC a veces se confunde con SAST (Static Application Security Testing), pero cada uno se dirige a artefactos diferentes. SAST analiza el código fuente de las aplicaciones (Python, Java, JavaScript) en busca de vulnerabilidades como inyección SQL o desbordamientos de búfer. El análisis de IaC analiza los archivos de configuración de la infraestructura en busca de errores de configuración de seguridad cloud; no interviene código de aplicación. Una canalización de DevSecOps completa incluye ambos: SAST para el código de la aplicación y análisis de IaC para los archivos de infraestructura. Ambos se ejecutan en CI/CD antes de cualquier implementación. Algunas plataformas unificadas (Snyk IaC, Prisma Cloud) combinan el análisis de aplicaciones y de infraestructura en una sola herramienta.

Integración del análisis de IaC en CI/CD

El análisis eficaz de seguridad de IaC debe estar automatizado y aplicarse de forma obligatoria, no ser opcional. Una integración típica en CI/CD consiste en ejecutar Checkov y tfsec en cada solicitud de incorporación de cambios; hacer fallar la canalización si existen hallazgos CRITICAL; publicar los hallazgos como comentarios en la solicitud para que los desarrolladores puedan verlos; mantener una lista de hallazgos suprimidos con justificaciones documentadas; y realizar un análisis nocturno de los recursos implementados para detectar desviaciones. Los enlaces previos a la confirmación mediante herramientas como pre-commit con Checkov pueden detectar problemas incluso antes de que el código llegue a la canalización. Es importante gestionar los falsos positivos: los desarrolladores que ven demasiados hallazgos irrelevantes empiezan a ignorarlos.

# GitHub Actions: IaC security scanning
# - name: Run Checkov IaC Scan
#   uses: bridgecrewio/checkov-action@master
#   with:
#     directory: terraform/
#     framework: terraform
#     soft_fail: false  # fail PR on findings
#     output_format: sarif  # upload to GitHub Security tab

Seguridad del estado de Terraform

El archivo de estado de Terraform (terraform.tfstate) contiene el inventario completo de todos los recursos gestionados y suele incluir valores de salida confidenciales, como contraseñas de bases de datos, claves privadas TLS e identificadores de claves de acceso de IAM en texto plano. Los archivos de estado nunca deben confirmarse en Git. En su lugar, utilice un backend remoto (AWS S3 con bloqueo mediante DynamoDB, Terraform Cloud o el estado gestionado por GitLab) con el cifrado del lado del servidor habilitado. El acceso al backend de estado debe controlarse estrictamente mediante IAM: cualquiera que pueda leer el archivo de estado puede enumerar todos los detalles de la infraestructura y extraer potencialmente los secretos incluidos.

# Secure Terraform remote backend
terraform {
  backend 's3' {
    bucket         = 'my-terraform-state'
    key            = 'prod/terraform.tfstate'
    region         = 'us-east-1'
    encrypt        = true
    kms_key_id     = 'arn:aws:kms:us-east-1:123:key/abc'
    dynamodb_table = 'terraform-state-lock'
  }
}

Comprobación rápida

Compruebe su comprensión de los conceptos de CompTIA Security+ (SY0-701) tratados en esta lección.

Resumen de la lección

En esta lección ha aprendido que las configuraciones incorrectas de IaC, como los buckets de S3 públicos, los grupos de seguridad abiertos y los secretos codificados directamente, se detectan automáticamente mediante herramientas como Checkov y tfsec antes de la implementación; los marcos de Policy as Code (OPA/Conftest, HashiCorp Sentinel) permiten aplicar requisitos de seguridad organizativos personalizados mediante controles automatizados en las canalizaciones; y los archivos de estado de Terraform deben almacenarse en backends remotos cifrados con controles de acceso estrictos, ya que pueden contener detalles confidenciales de los recursos. A continuación, exploraremos el ciclo de vida de las APT y cómo las amenazas avanzadas persisten dentro de las redes.

Preguntas frecuentes

¿La lección «Análisis de seguridad de la infraestructura como código» es gratis?

Sí — el texto completo de «Análisis de seguridad de la infraestructura como código» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.

¿Qué aprenderé en «Análisis de seguridad de la infraestructura como código»?

Analice plantillas de Terraform, CloudFormation y charts de Helm con herramientas de seguridad de IaC (Checkov, tfsec) para detectar configuraciones incorrectas antes de que lleguen a producción. Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?

No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Análisis de seguridad de la infraestructura como código»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?

Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Seguridad de contenedores: refuerzo de imágenes y protección en tiempo de ejecución
  2. Seguridad de Kubernetes: RBAC, políticas de red y seguridad de pods
  3. Seguridad sin servidor y de funciones
  4. Análisis de seguridad de la infraestructura como código
← Volver a Cloud & IT Cert Prep