CloudMapper ajuda você a analisar seus ambientes Amazon Web Services (AWS).
Nota A funcionalidade de Visualização de Rede (comando prepare) não é mais mantida.
CloudMapper ajuda você a analisar seus ambientes Amazon Web Services (AWS). O objetivo original era gerar diagramas de rede e exibi-los no seu navegador (funcionalidade não mais mantida). Agora contém muito mais funcionalidades, incluindo auditoria de problemas de segurança.
audit: Verifica possíveis configurações incorretas.collect: Coleta metadados sobre uma conta. Mais detalhes aqui.find_admins: Examina políticas IAM para identificar usuários e funções de administrador, ou diretores com privilégios específicos. Mais detalhes aqui.find_unused: Procura recursos não utilizados na conta. Encontra Security Groups, Elastic IPs, interfaces de rede, volumes e balanceadores de carga elásticos não usados.prepare/webserver: Veja Visualizações de Redepublic: Encontra hosts públicos e faixas de portas. Mais detalhes aqui.sg_ips: Obtém informações geoip sobre CIDRs confiáveis em Security Groups. Mais detalhes aqui.stats: Mostra contagens de recursos para contas. Mais detalhes aqui.weboftrust: Mostra a Web de Confiança. Mais detalhes aqui.report: Gera relatório HTML. Inclui resumo das contas e descobertas de auditoria. Mais detalhes aqui.iam_report: Gera relatório HTML para as informações IAM de uma conta. Mais detalhes aqui.Se você quiser adicionar seus próprios comandos privados, pode criar um diretório private_commands e adicioná-los lá.
|
|
|
|
|
|
Requisitos:
pip e virtualenvjq (https://stedolan.github.io/jq/) e da biblioteca pyjq (https://github.com/doloopwhile/pyjq), que exigem algumas ferramentas adicionais que serão mostradas.No macOS:
# clone o repositório
git clone https://github.com/duo-labs/cloudmapper.git
# Instale pré-requisitos 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
No Linux:
# clone o repositório
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.):
# Você pode precisar adicionalmente de "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
Um pequeno conjunto de dados de demonstração é fornecido. Isso exibirá o mesmo ambiente do site de demonstração https://duo-labs.github.io/cloudmapper/
# Gere os dados para o mapa de rede
python cloudmapper.py prepare --config config.json.demo --account demo
# Gere um relatório
python cloudmapper.py report --config config.json.demo --account demo
python cloudmapper.py webserver
Isso executará um servidor web local em http://127.0.0.1:8000/ Veja o mapa de rede a partir desse link, ou veja o relatório em http://127.0.0.1:8000/account-data/report.html
Copie o config.json.demo para config.json e edite-o para incluir o ID da sua conta e o nome (ex. "prod"), junto com quaisquer nomes de CIDR externos. Um CIDR é um intervalo de IP como 1.2.3.4/32, que significa apenas o IP 1.2.3.4.
Este passo usa a CLI para fazer chamadas describe e list e registra o json na pasta especificada pelo nome da conta em account-data.
Você deve ter credenciais AWS configuradas que possam ser usadas pela CLI com permissões de leitura para os diferentes metadados a coletar. Recomendo usar aws-vault. O CloudMapper coletará informações IAM, o que significa que você DEVE usar MFA. Apenas o passo collect requer acesso AWS.
Você deve ter os seguintes privilégios (que concedem várias leituras de metadados):
arn:aws:iam::aws:policy/SecurityAuditarn:aws:iam::aws:policy/job-function/ViewOnlyAccessA coleta de dados é feita da seguinte forma:
python cloudmapper.py collect --account minha_conta
A partir daqui, tente executar diferentes comandos, como:
python cloudmapper.py report --account minha_conta
python cloudmapper.py webserver
Depois veja o relatório no seu navegador em 127.0.0.1:8000/account-data/report.html
Em vez de modificar config.json diretamente, existe um comando para configurar os dados lá, caso seja necessário:
python cloudmapper.py configure {add-account|remove-account} --config-file CONFIG_FILE --name NOME --id ID [--default DEFAULT]
python cloudmapper.py configure {add-cidr|remove-cidr} --config-file CONFIG_FILE --cidr CIDR --name NOME
Isso permitirá definir as diferentes contas AWS que você usa no seu ambiente e os IPs CIDR conhecidos.
Se você usa AWS Organizations, também pode adicionar automaticamente contas membros da organização ao config.json usando:
python cloudmapper.py configure discover-organization-accounts