Threatmap: Modelador IaC con STRIDE y MITRE ATT&CK
El threat modeling en infraestructura como código es el análisis de riesgos de seguridad en templates de Terraform, CloudFormation y Kubernetes. La herramienta GitHub bogdanticu88/threatmap automatiza este análisis usando STRIDE, MITRE ATT&CK y PASTA frameworks, permitiendo identificar vulnerabilidades antes de que lleguen a producción. Un solo template mal configurado puede desplegar recursos vulnerables en docenas de ambientes simultáneamente.
En 30 segundos
- GitHub bogdanticu88/threatmap modela amenazas automáticamente en IaC (Terraform, CloudFormation, Kubernetes)
- Soporta tres frameworks: STRIDE (diseño), MITRE ATT&CK (tácticas adversarias), PASTA (análisis de riesgos centrado en negocio)
- Integra REST API, GraphQL y Docker para flujos CI/CD sin fricción
- Previene los 5 errores más comunes en IaC: exposición a internet, secrets hardcodeados, IAM permisivos, logging deshabilitado, configuraciones incompletas
- Disponible open source; acelerá adopción de DevSecOps en equipos que ya usan infraestructura como código
¿Qué es el threat modeling en infraestructura como código?
El threat modeling en infraestructura como código (IaC) es el análisis sistemático de cómo un atacante podría explotar tus templates de Terraform, CloudFormation o Kubernetes. No es lo mismo que testing tradicional. Cuando escribís un test unitario, validás que tu código haga lo que esperas. En threat modeling, preguntás: ¿qué pasa si alguien intenta hacer lo opuesto de lo que esperas?
La diferencia crítica es la escala. Un error en un template de Terraform no es un problema en un servidor. Es un problema en 50 servidores idénticos desplegados simultáneamente en todos tus ambientes. Un secret hardcodeado en CloudFormation no se replica una vez, se replica cada vez que alguien ejecuta el stack. (Si no documentaste quién ejecuta qué, multiplicá el riesgo por 10.)
Por eso el threat modeling en IaC vino a quedarse: descubrís los agujeros en el diseño antes de que el código toque producción. Lo segundo es que la automatización es obligatoria. No podés hacer threat modeling manual en 500 templates diferentes, cada uno con 40 recursos. Necesitás una herramienta que lea tu Terraform, mapee las conexiones, y te diga: “Ojo, este S3 está abierto a internet, este security group permite SSH desde 0.0.0.0, y este RDS no tiene backup habilitado.”
Los tres frameworks principales: STRIDE, MITRE ATT&CK y PASTA
Existen tres enfoques principales para threat modeling. Cada uno responde una pregunta diferente. Sobre eso hablamos en validar APIs REST de manera efectiva.
STRIDE: enfocado en el diseño
STRIDE es un acrónimo que cubre seis categorías de amenazas: Spoofing (falsificación de identidad), Tampering (modificación no autorizada), Repudiation (negar responsabilidad), Information Disclosure (exposición de datos), Denial of Service y Elevation of Privilege. Lo lanzó Microsoft hace décadas y sigue siendo el más intuitivo para arquitectos. En contexto de IaC, STRIDE te fuerza a preguntarte: ¿quién puede acceder a este recurso? ¿Quién lo puede modificar? ¿Hay logs de quién hizo qué?
MITRE ATT&CK: basado en observaciones reales
MITRE ATT&CK es un framework construido a partir de 14 tácticas de adversario y cientos de técnicas observadas en ataques reales. En vez de pensar en amenazas abstractas, pensás: ¿cómo un atacante llega a este sistema? ¿Qué herramientas usa? ¿Qué pasos sigue? Para IaC, esto significa mapear tus templates contra las tácticas (reconnaissance, initial access, persistence, lateral movement, etc.) y validar que tenés detección para cada una.
PASTA: centrado en el negocio
PASTA (Process for Attack Simulation and Threat Analysis) es risk-centric. No arranca en “¿qué amenazas existen?” sino en “¿qué assets nos importan más?” y “¿cuánto impacto tendría un ataque?” Requiere más trabajo inicial (entender el negocio, priorizar assets) pero es más preciso en equipos grandes. Si tu infraestructura soporta un marketplace de pagos, PASTA te ayuda a priorizar: primero asegurá los servicios de pago, luego los de analítica.
GitHub bogdanticu88/threatmap: automatizando el análisis
Acá viene lo bueno: en vez de correr threat modeling manualmente (que toma semanas), herramientas como bogdanticu88/threatmap parsean tus templates de Terraform y CloudFormation directamente en un modelo de amenazas ejecutable. La herramienta mapea recursos, conexiones de red, IAM policies y logs, y automáticamente chequea contra vulnerabilidades conocidas en IaC.
Threatmap ofrece tres interfaces: REST API (para CI/CD), GraphQL (para consultas complejas) y Docker (para deployar sin dependencias). Eso significa que podés hacer threat modeling en tu pipeline sin agregar fricción. Un ejemplo concreto: corrés `threatmap parse –file main.tf –framework stride`, te devuelve un JSON con todas las amenazas encontradas, y podés bloquear el merge si el score baja de un threshold.
Herramientas automatizadas para threat modeling en IaC
Threatmap es una herramienta, pero no es la única. El mercado tiene opciones:
| Herramienta | Framework(s) | Tipo | Mejor para |
|---|---|---|---|
| IriusRisk | STRIDE, LINDDUN, PASTA | Plataforma comercial | Equipos grandes con presupuesto |
| Threatmap | STRIDE, MITRE ATT&CK, PASTA | Open source | Developers que quieren automatización en CI/CD |
| OWASP Threat Dragon | STRIDE | Open source, gratuito | Equipos pequeños o learning |
| Threagile | STRIDE, PASTA | Open source | DevSecOps engineers con experiencia |

Lo que tienen en común todas estas herramientas es que parsean IaC automáticamente. No tenés que dibujar un diagrama y llenar un formulario manualmente. Subís tu repo, la herramienta infiere la arquitectura, y genera el modelo de amenazas. Esto se conecta con lo que analizamos en herramientas que corren completamente locales.
Cómo integrar threat modeling en tu pipeline DevOps
La integración correcta de threat modeling en DevOps requiere tres cosas: análisis de riesgos temprano (en el commit, no después de desplegar), estimación de severidad (criticidad vs likelihood), y procedimientos de mitigación claros (quién arregla qué, en cuánto tiempo).
El flujo típico es: developer escribe Terraform → hace push → CI/CD corre threatmap → si encuentra alta severidad, bloquea el merge → developer revisa la amenaza y mitiga (agregar security group, habilitar encryption, etc.) → merge green → despliegue.
Control de versiones para IaC es obligatorio. Si no usás Git, no podés auditar quién cambió qué en la infraestructura. Si no documentás cambios, no sabés por qué se rompió algo. Y si no integrás threat modeling en CI/CD, descubrís problemas cuando ya están en producción.
Errores comunes en security de Terraform y CloudFormation
S3 expuesto a internet (sin restricción de acceso)
El más frecuente: configurás un S3 bucket, olvidás agregar un `BlockPublicAccess` policy, y de repente cualquiera en internet puede leer tus datos. Una herramienta de threat modeling te lo detecta en 2 segundos: “Este recurso S3 tiene acceso público pero no tiene encrypt habilitado.”
Secrets hardcodeados en templates
Algunos developers escriben `db_password = “admin123″` directamente en el Terraform. Versiona el archivo, lo subes a GitHub, alguien lo ve en el historio, y tu base de datos está comprometida. Deberías usar AWS Secrets Manager, HashiCorp Vault, o Parameter Store. Threat modeling automático detecta esto porque busca patrones de secrets en el código. Más contexto en consideraciones de seguridad en GitHub.
IAM policies demasiado permisivas
Escribís una policy con `”Action”: “*”` para que todo funcione rápido (spoiler: no funciona ni más rápido). Luego alguien toma tus credenciales y puede crear, modificar o borrar cualquier recurso en tu account. Threat modeling te dice: “Esta role tiene 237 acciones permitidas, pero solo necesita 12.”
Logging deshabilitado en recursos críticos
Despliegás un RDS sin backup ni CloudTrail logging. Si hay un problema, no sabés qué pasó. Threat modeling automatizado valida que cada recurso que toca datos tenga logging habilitado.
Configuraciones incompletas después de despliegue
Tu template crea un security group pero no especifica qué tráfico entra/sale. El default permite todo. Threat modeling previene esto pidiendo explicititud: “Define las reglas de ingreso y egreso, no dejes defaults.”
Comparación: STRIDE vs LINDDUN vs PASTA
| Framework | Enfoque | Complejidad | Tiempo de adopción | Mejor para |
|---|---|---|---|---|
| STRIDE | Categorías de amenaza estándar | Media | 1-2 semanas | Equipos que arrancas con threat modeling |
| LINDDUN | Privacy-first (data flows) | Alta | 3-4 semanas | Sistemas con requisitos de privacidad (GDPR, LGPD) |
| PASTA | Risk-centric (business impact) | Alta | 4-6 semanas | Equipos grandes con procesos maduros |
| MITRE ATT&CK | Basado en ataques reales | Alta | 2-3 semanas | Equipos focalizados en threat hunting y detección |
¿Cuál elegir? Si recién empezás, STRIDE. Si tu problema es privacidad de datos, LINDDUN. Si tenés mucho presupuesto y equipos grandes, PASTA. Si tu equipo de seguridad vive en MITRE ATT&CK, usá eso.
Seguridad en Kubernetes, Terraform y multi-cloud
Kubernetes agrega complejidad: orquestación de contenedores, network policies, RBAC, secrets en etcd. Threat modeling en K8s significa validar qué se puede hacer dentro de un pod, qué permisos tiene cada service account, si el etcd está encriptado en reposo y tránsito. Relacionado: herramientas inteligentes para análisis.
Terraform es el lenguaje más común para describir infraestructura multi-cloud. Un solo template puede deployar recursos en AWS, Azure y GCP. El ventaja es escalabilidad; la desventaja es que los errors se multiplican across clouds. CloudFormation solo funciona en AWS, así que si usás CloudFormation estás locked-in. Threat modeling es más simple en CloudFormation (menos variabilidad) pero más crítico en Terraform (más superficies de ataque).
En multi-cloud, threat modeling necesita entender diferencias de comportamiento entre clouds: IAM en AWS es diferente que en Azure, networking es diferente, logging también. Herramientas como threatmap pueden parsear estos templates pero dependen de updates constantes para soportar nuevos servicios y cambios de API.
Qué está confirmado
Estos hechos son verificables:
- STRIDE fue desarrollado por Microsoft hace más de 20 años y sigue siendo el framework más usado en diseño de sistemas
- MITRE ATT&CK es open source y actualiza su base de datos de técnicas mensualmente con observaciones reales de ciberataques
- GitHub bogdanticu88/threatmap está disponible en GitHub bajo licencia open source con soporte para REST API y GraphQL
- La mayoría de brechas de seguridad en IaC resultan de configuraciones erróneas (IAM, exposed storage, missing encryption), no de bugs en frameworks
- Herramientas automáticas de threat modeling reducen time-to-detect de vulnerabilidades de semanas a minutos
Preguntas Frecuentes
¿Qué es el threat modeling en infraestructura como código?
Es el análisis de riesgos de seguridad en tus templates de Terraform, CloudFormation y Kubernetes. Identificá vulnerabilidades en el diseño antes de desplegar: S3 abierto a internet, IAM policies permisivas, secrets hardcodeados, logging deshabilitado. Una herramienta automatizada (como threatmap) lo hace en segundos en lugar de días.
¿Cuál es la diferencia entre STRIDE, MITRE ATT&CK y PASTA?
STRIDE categoriza amenazas por tipo (spoofing, tampering, etc.), MITRE ATT&CK mapea técnicas de adversarios observadas en ataques reales, PASTA analiza riesgos priorizados por impacto de negocio. Usá STRIDE para empezar, MITRE ATT&CK si tu equipo de seguridad ya lo conoce, PASTA si tenés procesos maduros y presupuesto.
¿Cómo integro threat modeling en mi CI/CD?
Agregá un paso en tu pipeline que ejecute threatmap en cada commit: `threatmap parse –file terraform.tf –framework stride`. Si detecta vulnerabilidades de alta severidad, bloquea el merge. El developer revisa la amenaza, mitiga (agrega encryption, cierra security groups, habilita logging) y hace re-push.
¿Qué herramienta de threat modeling es la mejor?
Depende de tu contexto. Si querés automatización en CI/CD y no tenés presupuesto: threatmap u OWASP Threat Dragon (ambas open source). Si tenés equipo grande y presupuesto: IriusRisk (plataforma comercial completa). Si ya usás Kubernetes heavily: investiga Threagile que tiene soporte para K8s manifests.
¿Cuál es el error más común en threat modeling de IaC?
Confundir threat modeling con compliance checking. No son lo mismo. Compliance (¿tengo logs habilitados?) es checkbox. Threat modeling (¿quién puede leer esos logs?) es análisis. Usá threat modeling para descubrir vulnerabilidades, usá compliance checking para auditoría. Ambas te dan a vos información diferente.
Conclusión
El threat modeling automático en infraestructura como código es ya estándar en equipos que se toman la seguridad en serio. GitHub bogdanticu88/threatmap automatiza el proceso: parseá tus templates, mapea recursos y conexiones, y te dice qué está comprometido antes de que llegue a producción.
Los tres frameworks principales (STRIDE, MITRE ATT&CK, PASTA) responden preguntas diferentes. STRIDE es el más intuitivo para empezar. Una vez que tu equipo entiende el concepto, podés evolucionar a MITRE ATT&CK si necesitás mapear ataques reales, o PASTA si necesitás analizar impacto de negocio.
Lo importante es que integres threat modeling en tu CI/CD desde el día uno. No hacerlo es apostar a que el testing manual y la code review van a atrapar 100% de los agujeros. Spoiler: no lo hacen. Ponele 30 minutos a configurar threatmap en tu pipeline, te va a ahorrar meses de debugging en producción.
Fuentes
- GitHub – bogdanticu88/threatmap: IaC threat modeler with STRIDE, MITRE ATT&CK, and PASTA frameworks
- OWASP – Infrastructure as Code Security Cheat Sheet
- MITRE – Threat Modeling with ATT&CK
- Security Compass – Comparing STRIDE, LINDDUN, and PASTA Threat Modeling
- DevM – Threat Modeling for Infrastructure as Code






