
GCPGoat : Una infraestructura GCP 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 plenamente conscientes del panorama de amenazas y terminan implementando una infraestructura en la nube vulnerable.
GCPGoat es una infraestructura vulnerable por diseño en GCP que presenta los últimos riesgos de seguridad de aplicaciones web del OWASP Top 10 (2021) y otras configuraciones incorrectas basadas en servicios como IAM, Storage Bucket, Cloud Functions y Compute Engine. GCPGoat imita una infraestructura del mundo real, pero con vulnerabilidades añadidas. Cuenta con múltiples rutas de escalada y está enfocado en un enfoque de caja negra.
GCPGoat utiliza IaC (Terraform) para desplegar la infraestructura en la nube vulnerable en la cuenta GCP del usuario. Esto le da al usuario control total sobre el código, la infraestructura y el entorno. Usando GCPGoat, 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 a través de Terraform para facilitar el proceso de despliegue.
El proyecto está programado para abarcar todas las vulnerabilidades significativas, incluyendo el OWASP TOP 10 2021 y las configuraciones incorrectas populares en la nube. Actualmente, el proyecto contiene las siguientes vulnerabilidades/configuraciones incorrectas.
La instalación manual de GCPGoat requeriría 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/GCPGoat
Paso 2. Configurar las credenciales de la cuenta de usuario de GCP usando gcloud CLI
gcloud auth application-default login
Paso 3. Insertar el nombre de la cuenta de facturación en el archivo main.tf
data "google_billing_account" "acct" {
display_name = "<Nombre de tu cuenta de facturación>"
}
Paso 4. En el mismo directorio de trabajo usar terraform para desplegar GCPGoat.
terraform init
terraform apply --auto-approve
El primer módulo presenta una aplicación de blog sin servidor que utiliza Cloud Functions, Cloud Storage Buckets, Compute Engine y Firestore. Consiste en varias vulnerabilidades de aplicaciones web y facilita la explotación de recursos GCP mal configurados.
Ruta de escalada:
Navegador recomendado: Google Chrome
Los recursos creados con el despliegue de GCPGoat no generarán cargos si la cuenta de GCP está bajo el nivel gratuito/período de prueba. Sin embargo, al agotarse o no ser elegible para el nivel gratuito/prueba, se aplicarán los siguientes cargos para la región US-East:
Módulo 1: $0.03/hora
Nishant Sharma, Director, Plataforma de Laboratorios, INE [email protected]
Jeswin Mathai, Arquitecto Jefe, Plataforma de Laboratorios, INE [email protected]
Sherin Stephen, Ingeniero de Software (Cloud), INE [email protected]
Divya Nain, Ingeniera de Software (Cloud), INE [email protected]
Rishappreet Singh Moon, Ingeniero de Software (Cloud), INE [email protected]
Litesh Ghute, Ingeniero de Software (Cloud), INE [email protected]
Sanjeev Mahunta, Ingeniero de Software (Cloud), INE [email protected]
Los manuales ofensivos están disponibles en el directorio attack-manuals, y los manuales defensivos en el directorio defence-manuals.
Módulo 1:
modules/module-<Number>/src; esto se puede usar para modificar el código de la aplicación existente.Este programa es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia MIT.
Deberías haber recibido una copia de la Licencia MIT junto con este programa. Si no es así, consulta https://opensource.org/licenses/MIT.