
Herramienta de análisis de seguridad de AWS basada en grafos que extrae configuraciones en la nube, detecta configuraciones incorrectas y mapea rutas de ataque utilizando un gemelo digital Neo4j con reglas YAML extensibles.
nuvola (con la n minúscula) es una herramienta para volcar y realizar análisis de seguridad automáticos y manuales sobre configuraciones y servicios de entornos AWS, utilizando reglas predefinidas, extensibles y personalizadas creadas con una sintaxis YAML simple.
La idea general detrás de este proyecto es crear un gemelo digital abstracto de una plataforma en la nube. Para un ejemplo más concreto: nuvola refleja las características de BloodHound utilizadas para el análisis de Active Directory, pero en entornos de nube (por ahora solo AWS).
El uso de una base de datos de grafos también aumenta la posibilidad de encontrar diferentes y novedosas rutas de ataque, y puede usarse como un gemelo digital offline, centralizado y ligero.
docker-compose instaladoawscli con acceso completo a los recursos de la nube, mejor si está en modo ReadOnly (la política arn:aws:iam::aws:policy/ReadOnlyAccess es suficiente)git clone --depth=1 https://github.com/primait/nuvola.git; cd nuvola
.env para establecer tu usuario/contraseña/URL de la base de datoscp .env_example .env;
Puede que necesites editar el tamaño de la memoria asignada a Neo4j si ejecutas la herramienta en un dispositivo con poca RAM.
make start-containers
make build
./nuvola dump --aws-profile default_RO --output-dir ~/DumpDumpFolder --output-format zip
./nuvola assess --import ~/DumpDumpFolder/nuvola-default_RO_20220901.zip
./nuvola assess

Si usas el .env_example, las configuraciones de memoria de neo4j NEO4J_server_memory_* pueden ser demasiado grandes, lo que provoca que el contenedor docker se bloquee por falta de memoria en el sistema anfitrión. Eliminar las líneas NEO4J_server_memory_* hará que neo4j calcule esos valores según los recursos del sistema disponibles (ref).
Para empezar con nuvola y su esquema de base de datos, consulta la Wiki de nuvola.
No se envía ni comparte ningún dato con Prima Assicurazioni.
RomHack 2022
DevSecCon 2024
nuvola utiliza la teoría de grafos para revelar posibles rutas de ataque y configuraciones de seguridad incorrectas en entornos de nube.
Este programa es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior.
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. Consulta la Licencia Pública General de GNU para más detalles.
Deberías haber recibido una copia de la Licencia Pública General de GNU junto con este repositorio y programa. Si no es así, visita http://www.gnu.org/licenses/.