
AWSGoat : Una infraestructura AWS malditamente vulnerable

Comprometer la infraestructura en la nube de una organización es como sentarse sobre una mina de oro para los atacantes. Y a veces, una simple mala configuración o una vulnerabilidad en aplicaciones web es todo lo que un atacante necesita para comprometer toda la infraestructura. Dado que la nube es relativamente nueva, muchos desarrolladores no son completamente conscientes del panorama de amenazas y terminan implementando una infraestructura en la nube vulnerable.
AWSGoat es una infraestructura vulnerable por diseño en AWS que presenta los últimos riesgos de seguridad de aplicaciones web del OWASP Top 10 (2021) y otras malas configuraciones basadas en servicios como IAM, S3, API Gateway, Lambda, EC2 y ECS. AWSGoat imita una infraestructura del mundo real pero con vulnerabilidades añadidas. Cuenta con múltiples rutas de escalación y está enfocado en un enfoque de caja negra.
AWSGoat utiliza IaC (Terraform) para implementar la infraestructura en la nube vulnerable en la cuenta de AWS del usuario. Esto le da al usuario control total sobre el código, la infraestructura y el entorno. Usando AWSGoat, el usuario puede aprender/practicar:
El proyecto se dividirá en módulos y cada módulo será una aplicación web independiente, impulsada por diversas pilas tecnológicas y prácticas de desarrollo. Aprovechará IaC mediante Terraform y GitHub Actions para facilitar el proceso de implementación.
Presentado en
El proyecto está programado para abarcar todas las vulnerabilidades significativas, incluyendo el OWASP TOP 10 2021 y las malas configuraciones en la nube más populares. Actualmente, el proyecto contiene las siguientes vulnerabilidades/malas configuraciones.
Para facilitar el proceso de implementación, el usuario solo necesita bifurcar (fork) este repositorio, agregar sus credenciales de cuenta de AWS a los secretos de GitHub y ejecutar el flujo de trabajo Terraform Apply. Este flujo de trabajo implementará toda la infraestructura y mostrará la URL de la aplicación alojada.
Estos son los pasos a seguir:
Paso 1. Bifurcar (fork) el repositorio
Paso 2. Configurar los secretos de la acción de GitHub:
AWS_ACCESS_KEY
AWS_SECRET_ACCESS_KEY
Paso 3. Desde la pestaña de acciones del repositorio, seleccionar el módulo a implementar y ejecutar el flujo de trabajo Terraform Apply.
Paso 4. Encontrar la URL de la aplicación en la sección de salida de Terraform.
La instalación manual de AWSGoat requiere seguir estos pasos:
(Nota: Esto requiere una máquina Linux, con el shell /bin/bash disponible)
Paso 1. Clonar el repositorio
git clone https://github.com/ine-labs/AWSGoat
Paso 2. Configurar las credenciales de la cuenta de usuario de AWS
aws configure
Paso 3. Navegar al directorio del módulo correspondiente y usar terraform para implementar AWSGoat
cd modules/module-<Number>
terraform init
terraform apply --auto-approve
El primer módulo presenta una aplicación de blog sin servidor que utiliza AWS Lambda, S3, API Gateway y DynamoDB. Consiste en varias vulnerabilidades de aplicaciones web y facilita la explotación de recursos de AWS mal configurados.
Ruta de escalación:
El segundo módulo presenta una aplicación interna de nóminas de recursos humanos, utilizando la infraestructura AWS ECS. Consiste en varias vulnerabilidades de aplicaciones web y facilita la explotación de recursos de AWS mal configurados.
Ruta de escalación:
Navegador recomendado: Google Chrome
Los recursos creados con la implementación de AWSGoat no generarán cargos si la cuenta de AWS está en el período de capa gratuita/prueba. Sin embargo, al agotarse/no ser elegible para la capa gratuita/prueba, se aplicarán los siguientes cargos para la región US-East:
Módulo 1: $0.0125/hora
Módulo 2: $0.0505/hora
Jeswin Mathai, Arquitecto Jefe, Plataforma de Laboratorios, INE [email protected]
Nishant Sharma, Director, Plataforma de Laboratorios, INE [email protected]
Sanjeev Mahunta, Ingeniero de Software (Cloud), INE [email protected]
Shantanu Kale, Desarrollador Cloud, INE [email protected]
Govind Krishna Lal Balaji, Desarrollador Cloud, INE [email protected]
Litesh Ghute, Ingeniero de Software, INE [email protected]
Los manuales ofensivos están disponibles en el directorio attack-manuals, y los manuales defensivos están disponibles en el directorio defence-manuals.
Videos de explotación del Módulo 1: https://www.youtube.com/playlist?list=PLcIpBb4raSZEMosUmY8KpxPWtjKRMSmNx
Para más detalles, consulte el archivo PDF "AWSGoat.pdf". Este archivo contiene la presentación de diapositivas utilizada para las presentaciones.
Módulo 1:
Módulo 2:
modules/module-<Number>/src, que se puede usar para modificar el código de la aplicación existente.Este programa es software libre: puede redistribuirlo y/o modificarlo bajo los términos de la Licencia MIT.
Debería haber recibido una copia de la Licencia MIT junto con este programa. Si no es así, consulte https://opensource.org/licenses/MIT.