
AzureGoat : Una infraestructura Azure intencionalmente 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. Microsoft Azure se ha convertido en el segundo proveedor más grande por cuota de mercado en los proveedores de infraestructura en la nube (según múltiples informes), justo detrás de AWS. Existen numerosas herramientas y aplicaciones vulnerables para AWS para que los profesionales de seguridad realicen prácticas de ataque/defensa, pero no es el caso con Azure. Hay muchas menos opciones disponibles para la comunidad.
AzureGoat es una infraestructura vulnerable por diseño en Azure que presenta los riesgos de seguridad de aplicaciones web OWASP Top 10 (2021) más recientes y otras malas configuraciones basadas en servicios como App Functions, CosmosDB, Storage Accounts, Automation e Identities. AzureGoat imita una infraestructura del mundo real pero con vulnerabilidades añadidas. Cuenta con múltiples rutas de escalado y se centra en un enfoque de caja negra.
AzureGoat utiliza IaC (Terraform) para implementar la infraestructura en la nube vulnerable en la cuenta de Azure del usuario. Esto le da al usuario control total sobre el código, la infraestructura y el entorno. Con AzureGoat, el usuario puede aprender/practicar:
El proyecto está dividido en módulos y cada módulo es una aplicación web independiente, impulsada por diversas pilas tecnológicas y prácticas de desarrollo.
Presentado en
El proyecto tiene previsto abarcar todas las vulnerabilidades significativas, incluido el OWASP TOP 10 2021 y las malas configuraciones populares en la nube. Actualmente, el proyecto contiene las siguientes vulnerabilidades/malas configuraciones.
Para facilitar el proceso de implementación, el usuario solo necesita clonar este repositorio, iniciar sesión en Azure CLI y luego inicializar y aplicar el archivo de Terraform. 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. Clonar el repositorio
git clone https://github.com/ine-labs/AzureGoat
Paso 2. Iniciar sesión en Azure CLI
az login
Y sigue los pasos para iniciar sesión.
Paso 3. Crear un grupo de recursos con el nombre "azuregoat_app".
Paso 4. Usar Terraform para implementar AzureGoat
terraform init
terraform apply --auto-approve
El primer módulo presenta una aplicación de blog sin servidor que utiliza Azure App Functions, Storage Accounts, CosmosDB y Azure Automation. Consta de diversas vulnerabilidades de aplicaciones web y facilita la explotación de recursos de Azure mal configurados.
Resumen de las rutas de escalado para el módulo 1

Nishant Sharma, Director, Lab Platform, INE [email protected]
Jeswin Mathai, Chief Architect, Lab Platform, INE [email protected]
Rachna Umaraniya, Cloud Developer, INE [email protected]
Sherin Stephen, Software Engineer (Cloud), INE [email protected]
Shantanu Kale, Cloud Developer, INE [email protected]
Sanjeev Mahunta, Software Engineer (Cloud), INE [email protected]
D Yashwanth Babu, Software Engineer (Cloud), INE [email protected]
Los manuales ofensivos están disponibles en el directorio attack-manuals, y los manuales defensivos en el directorio defence-manuals.
Videos de explotación del Módulo 1: https://www.youtube.com/playlist?list=PLcIpBb4raSZGdYHKpqIu5Boc2ziga4oGY
Para más detalles, consulte el archivo PDF "AzureGoat.pdf". Este archivo contiene la presentación de diapositivas utilizada en las presentaciones.
Página de inicio de la aplicación Blog

Portal de inicio de sesión de la aplicación Blog

Página de registro de la aplicación Blog

Panel de control después de iniciar sesión en la aplicación Blog

Perfil de usuario de la aplicación Blog

modules/module-<Number>/src; esto 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 Pública General de GNU v2 publicada por la Free Software Foundation.
Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia Pública General de GNU para más detalles.
Debería haber recibido una copia de la Licencia Pública General de GNU junto con este programa. Si no es así, consulte http://www.gnu.org/licenses/.