La seguridad en la nube es una preocupación cada vez más importante a medida que las organizaciones migran a plataformas como Amazon Web Services (AWS). Comprometer la infraestructura en la nube de una organización es como sentarse en una mina de oro para los atacantes. A veces, una simple mala configuración o una vulnerabilidad en las aplicaciones web es todo lo que un atacante necesita para comprometer toda la infraestructura. Dado que la nube es relativamente nueva, muchos desarrolladores no están completamente conscientes del panorama de amenazas y, como resultado, terminan desplegando una infraestructura en la nube vulnerable.
AWSGoat es una infraestructura vulnerable diseñada en AWS que representa una mina de oro para aquellos que desean aprender sobre las vulnerabilidades y amenazas en la nube. Esta infraestructura expone deliberadamente las últimas diez principales amenazas de seguridad de aplicaciones web de la OWASP (Open Web Application Security Project) del año 2021, así como otras vulnerabilidades basadas en configuraciones erróneas en servicios como IAM, S3, API Gateway, Lambda, EC2 y ECS. AWSGoat imita la infraestructura del mundo real pero agrega vulnerabilidades intencionalmente. Ofrece múltiples rutas de escalada y se enfoca en un enfoque de caja negra, lo que significa que los usuarios deben descubrir las vulnerabilidades sin conocimiento previo.
Una característica interesante de AWSGoat es que utiliza la infraestructura como código (IaC) a través de Terraform para implementar la infraestructura en la nube vulnerable en la cuenta de AWS del usuario. Esto brinda al usuario un control total sobre el código, la infraestructura y el entorno. Al usar AWSGoat, los usuarios pueden aprender y practicar:
- Pentesting y Red-Teaming en la nube.
- Auditoría de IaC (Infraestructura como Código).
- Programación segura.
- Detección y mitigación de amenazas en la nube.
El proyecto se divide en módulos, y cada módulo es una aplicación web independiente, impulsada por diferentes pilas tecnológicas y prácticas de desarrollo. Para facilitar el proceso de implementación, se aprovecha IaC a través de Terraform y GitHub Actions.