CloudMapper te ayuda a analizar tus entornos de Amazon Web Services (AWS).
Nota: La funcionalidad de Visualización de Red (comando prepare) ya no se mantiene.
CloudMapper te ayuda a analizar tus entornos de Amazon Web Services (AWS). El propósito original era generar diagramas de red y mostrarlos en tu navegador (funcionalidad ya no mantenida). Ahora contiene mucha más funcionalidad, incluyendo auditoría de problemas de seguridad.
audit: Verifica posibles configuraciones incorrectas.collect: Recopila metadatos de una cuenta. Más detalles aquí.find_admins: Examina las políticas de IAM para identificar usuarios y roles administradores, o principales con privilegios específicos. Más detalles aquí.find_unused: Busca recursos no utilizados en la cuenta. Encuentra Grupos de Seguridad, IPs Elásticas, interfaces de red, volúmenes y balanceadores de carga elásticos no utilizados.prepare/webserver: Consulta Visualizaciones de Redpublic: Encuentra hosts públicos y rangos de puertos. Más detalles aquí.sg_ips: Obtiene información geoip sobre CIDRs confiables en Grupos de Seguridad. Más detalles aquí.stats: Muestra conteos de recursos para cuentas. Más detalles aquí.weboftrust: Muestra la Red de Confianza (Web Of Trust). Más detalles aquí.report: Genera un informe HTML. Incluye un resumen de las cuentas y los hallazgos de auditoría. Más detalles aquí.iam_report: Genera un informe HTML para la información de IAM de una cuenta. Más detalles aquí.Si deseas agregar tus propios comandos privados, puedes crear un directorio private_commands y añadirlos allí.
|
|
|
|
|
|
Requisitos:
pip y virtualenvjq (https://stedolan.github.io/jq/) y la biblioteca pyjq (https://github.com/doloopwhile/pyjq), que requieren algunas herramientas adicionales que se mostrarán.En macOS:
# clonar el repositorio
git clone https://github.com/duo-labs/cloudmapper.git
# Instalar requisitos previos para pyjq
brew install autoconf automake awscli freetype jq libtool python3
cd cloudmapper/
python3 -m venv ./venv && source venv/bin/activate
pip install --prefer-binary -r requirements.txt
En Linux:
# clonar el repositorio
git clone https://github.com/duo-labs/cloudmapper.git
# (AWS Linux, Centos, Fedora, RedHat etc.):
# sudo yum install autoconf automake libtool python3-devel.x86_64 python3-tkinter python-pip jq awscli
# (Debian, Ubuntu etc.):
# Es posible que también necesites "build-essential"
sudo apt-get install autoconf automake libtool python3.7-dev python3-tk jq awscli
cd cloudmapper/
python3 -m venv ./venv && source venv/bin/activate
pip install -r requirements.txt
Se proporciona un pequeño conjunto de datos de demostración. Esto mostrará el mismo entorno que el sitio de demostración https://duo-labs.github.io/cloudmapper/
# Generar los datos para el mapa de red
python cloudmapper.py prepare --config config.json.demo --account demo
# Generar un informe
python cloudmapper.py report --config config.json.demo --account demo
python cloudmapper.py webserver
Esto ejecutará un servidor web local en http://127.0.0.1:8000/ Visualiza el mapa de red desde ese enlace, o visualiza el informe en http://127.0.0.1:8000/account-data/report.html
Copia config.json.demo a config.json y edítalo para incluir tu ID de cuenta y nombre (ej. "prod"), junto con cualquier nombre de CIDR externo. Un CIDR es un rango de IP tal como 1.2.3.4/32, que significa solo la IP 1.2.3.4.
Este paso utiliza la CLI para realizar llamadas describe y list y registra el json en la carpeta especificada por el nombre de la cuenta dentro de account-data.
Debes tener configuradas credenciales de AWS que puedan ser utilizadas por la CLI con permisos de lectura para los diferentes metadatos a recopilar. Recomiendo usar aws-vault. CloudMapper recopilará información de IAM, lo que significa que DEBES usar MFA. Solo el paso collect requiere acceso a AWS.
Debes tener los siguientes privilegios (que otorgan varios accesos de lectura de metadatos):
arn:aws:iam::aws:policy/SecurityAuditarn:aws:iam::aws:policy/job-function/ViewOnlyAccessLa recopilación de datos se realiza de la siguiente manera:
python cloudmapper.py collect --account my_account
A partir de aquí, prueba a ejecutar los diferentes comandos, como:
python cloudmapper.py report --account my_account
python cloudmapper.py webserver
Luego visualiza el informe en tu navegador en 127.0.0.1:8000/account-data/report.html
En lugar de modificar config.json directamente, hay un comando para configurar los datos allí, en caso de que sea necesario:
python cloudmapper.py configure {add-account|remove-account} --config-file CONFIG_FILE --name NAME --id ID [--default DEFAULT]
python cloudmapper.py configure {add-cidr|remove-cidr} --config-file CONFIG_FILE --cidr CIDR --name NAME
Esto te permitirá definir las diferentes cuentas de AWS que utilizas en tu entorno y las IPs CIDR conocidas.
Si usas AWS Organizations, también puedes agregar automáticamente cuentas miembro de la organización a config.json usando: