
CNAPPgoat es un proyecto de código abierto diseñado para aprovisionar de forma modular componentes vulnerables por diseño en entornos de nube.
CNAPPgoat es una herramienta de despliegue de entornos multinube diseñados intencionalmente vulnerables – específicamente creada para facilitar áreas de práctica para defensores y pentesters. Su función principal es desplegar entornos intencionalmente vulnerables en múltiples proveedores de servicios en la nube, para ayudarte a perfeccionar tus habilidades en la explotación, detección y prevención de dichas vulnerabilidades.

Advertencia: CNAPPgoat despliega entornos vulnerables. Úsalo solo dentro de entornos de pruebas seguros y controlados.
CNAPPgoat funciona como una herramienta de interfaz de línea de comandos (CLI), capaz de desplegar entornos vulnerables en una multitud de proveedores de servicios en la nube. Construido con Go y utilizando Pulumi y la API de automatización de Pulumi, garantiza un despliegue fluido del entorno. Una de sus características únicas es su diseño modular, que permite una extensión sencilla para admitir una variedad de proveedores de servicios en la nube y nuevos entornos vulnerables. Por el momento, CNAPPgoat es compatible con AWS, Azure y GCP.
Las dependencias y plugins de Pulumi se instalarán bajo demanda según los requisitos de cada escenario cuando aprovisiones tu primer entorno. Esto significa que la primera vez que aprovisiones podría tardar un poco más que las siguientes.
CNAPPgoat se puede instalar fácilmente para usuarios de macOS mediante el gestor de paquetes Homebrew.
brew tap ermetic-research/cnappgoat
brew install cnappgoat
Descarga la última versión desde aquí.
tar -xvf cnappgoat-<version>.tar.gz
cd cnappgoat-<version>
(Opcional) Si deseas agregar el binario extraído al PATH de tu sistema (no es obligatorio, puedes ejecutarlo desde el directorio local como ./cnappgoat):
Opción A: Mover a un directorio en tu PATH (p. ej., /usr/local/bin para macOS y Linux)
mv cnappgoat /usr/local/bin/
Opción B: Agregar el directorio que contiene el binario a tu PATH
Para bash:
echo 'export PATH=$PATH:<ruta_al_directorio_que_contiene_cnappgoat>' >> ~/.bashrc
source ~/.bashrc
Para zsh:
echo 'export PATH=$PATH:<ruta_al_directorio_que_contiene_cnappgoat>' >> ~/.zshrc
source ~/.zshrc
Reemplaza <ruta_al_directorio_que_contiene_cnappgoat> con la ruta absoluta al directorio donde reside el binario cnappgoat.
NOMBRE:
cnappgoat - Una herramienta multinube de código abierto para desplegar recursos en la nube diseñados intencionalmente vulnerables
USO:
cnappgoat [opciones globales] comando [opciones de comando] [argumentos...]
VERSIÓN:
0.1.0-beta, fecha: 2023-08-02T13:02:46Z, commit: 6bef61857d9f3cf88215269df8976f96317711dc
COMANDOS:
clean limpiar y eliminar todos los recursos creados y borrar todos los escenarios y archivos relacionados
describe describir un escenario
destroy Destruir escenarios del módulo CNAPPgoat
list Listar escenarios del módulo CNAPPgoat
provision Aprovisionar escenarios del módulo CNAPPgoat
help, h Muestra una lista de comandos o ayuda para un comando
OPCIONES GLOBALES:
--debug Activar modo de depuración (por defecto: false)
--help, -h mostrar ayuda
--version, -v imprimir la versión
| Comando | Descripción | Uso |
|---|---|---|
list | Lista todos los escenarios disponibles para aprovisionar. | cnappgoat list |
describe | Proporciona información detallada sobre el escenario especificado. | cnappgoat describe <nombre del escenario> |
provision | Aprovisiona el escenario especificado por su nombre. Para aprovisionar todos los escenarios, simplemente usa cnappgoat provision | cnappgoat provision <nombre del escenario> |
destroy | Destruye el escenario especificado por su nombre. Para destruir todos los escenarios, simplemente usa cnappgoat destroy | cnappgoat destroy <nombre del escenario> |
clean | Limpia todos los escenarios y elimina el directorio local .cnappgoat | cnappgoat clean |
--version, -v | Muestra la versión actual de CNAPPgoat | cnappgoat --version |
--help, -h | Muestra el menú de ayuda. | cnappgoat --help |
Puedes usar múltiples argumentos separados por espacios. Por ejemplo:
cnappgoat provision <escenario-1> <escenario-2> <escenario-N>
--module - Filtra escenarios por módulo (p. ej., CSPM, CIEM, CWPP, DSPM, KSPM, etc.)--platform - Filtra escenarios por plataforma (p. ej., AWS, Azure, GCP)--force - Activa el modo forzado (desbloquea stacks bloqueados con pulumi cancel)--debug - Activa el registro de depuración.Estas banderas son banderas de comando y deben colocarse después del comando. Por ejemplo:
cnappgoat provision --module CSPM --platform AWS
Este comando aprovisionará todos los escenarios CSPM de AWS.
CNAPPgoat descarga escenarios del repositorio cnappgoat-scenarios en su primera ejecución del día. Estos escenarios se descargan automáticamente cuando ejecutas CNAPPgoat y se almacenan en el directorio ~/.cnappgoat/scenarios.
Antes de poder usar CNAPPgoat, debes configurar tus credenciales de nube para AWS, Azure y GCP. CNAPPgoat utiliza las credenciales predeterminadas de cada proveedor. Sigue los pasos a continuación para configurar tus credenciales:
Instala la AWS CLI siguiendo las instrucciones aquí.
Configura tus credenciales de AWS ejecutando:
aws configure
Se te pedirá que ingreses tu Access Key ID, Secret Access Key y la región predeterminada.
Instala la Azure CLI siguiendo las instrucciones aquí.
Inicia sesión en tu cuenta de Azure ejecutando:
az login
Esto abrirá una nueva ventana del navegador para que inicies sesión. Después de iniciar sesión, tus credenciales se almacenarán para uso futuro.
Instala el Google Cloud SDK siguiendo las instrucciones aquí.
Autentícate con Google Cloud ejecutando:
gcloud auth login
Esto abrirá una nueva ventana del navegador para que inicies sesión. Después de iniciar sesión, tus credenciales se almacenarán para uso futuro.
Al configurar estas credenciales, podrás desplegar escenarios en AWS, Azure y GCP usando CNAPPgoat. Si planeas usar CNAPPgoat con un proveedor diferente, asegúrate de configurar las credenciales en consecuencia.
Para obtener más información sobre CNAPPgoat, consulta el artículo en el blog de Ermetic: https://ermetic.com/blog/cloud/cnappgoat-multicloud-open-source-tool-for-deploying-vulnerable-by-design-cloud-resources/
CNAPPgoat aprovisiona una variedad de escenarios vulnerables en múltiples nubes para probar capacidades de detección y prevención. Existen otros grandes proyectos para entornos de nube vulnerables que se centran en diferentes áreas, como explotación, detección, escenarios CTF (captura la bandera), etc. Nos inspiramos en estas herramientas y proyectos, y recomendamos echarles un vistazo:
Se pueden encontrar más desafíos y herramientas en el repositorio Awesome Cloud Security Challenges de Mike Privitte; nuestra lista se centra específicamente en entornos de nube vulnerables por diseño que los usuarios despliegan en su propio sandbox.
Para escribir al equipo del proyecto, contacta a [email protected]