
CNAPPgoat é um projeto de código aberto projetado para provisionar de forma modular componentes vulneráveis por design em ambientes de nuvem.
CNAPPgoat é uma ferramenta de implantação de ambientes multi-nuvem intencionalmente vulneráveis – projetada especificamente para criar arenas de prática para defensores e pentesters. Sua função principal é implantar ambientes propositalmente vulneráveis em vários provedores de serviços de nuvem, para ajudar você a aprimorar suas habilidades em exploração, detecção e prevenção dessas vulnerabilidades.

Aviso: O CNAPPgoat implanta ambientes vulneráveis. Use-o apenas em sandboxes seguros e controlados.
O CNAPPgoat opera como uma ferramenta de Interface de Linha de Comando (CLI), capaz de implantar ambientes vulneráveis em diversos provedores de serviços de nuvem. Construído com Go e utilizando Pulumi e a API de automação do Pulumi, garante uma implantação de ambiente perfeita. Uma de suas características únicas é seu design modular, que permite extensão sem esforço para suportar diversos provedores de serviços de nuvem e novos ambientes vulneráveis. Atualmente, o CNAPPgoat oferece suporte a AWS, Azure e GCP.
As dependências e plugins do Pulumi serão instalados sob demanda, de acordo com os requisitos de cada cenário, quando você provisionar seu primeiro ambiente. Isso significa que o primeiro provisionamento pode demorar um pouco mais do que os subsequentes.
O CNAPPgoat pode ser facilmente instalado para usuários macOS usando o gerenciador de pacotes Homebrew.
brew tap ermetic-research/cnappgoat
brew install cnappgoat
Baixe o último release em aqui.
tar -xvf cnappgoat-<versão>.tar.gz
cd cnappgoat-<versão>
(Opcional) Se você quiser adicionar o binário extraído ao PATH do seu sistema (não é obrigatório, você pode executá-lo diretamente do diretório local como ./cnappgoat):
Opção A: Mover para um diretório no seu PATH (ex.: /usr/local/bin para macOS e Linux)
mv cnappgoat /usr/local/bin/
Opção B: Adicionar o diretório que contém o binário ao seu PATH
Para bash:
echo 'export PATH=$PATH:<caminho_para_diretório_com_cnappgoat>' >> ~/.bashrc
source ~/.bashrc
Para zsh:
echo 'export PATH=$PATH:<caminho_para_diretório_com_cnappgoat>' >> ~/.zshrc
source ~/.zshrc
Substitua <caminho_para_diretório_com_cnappgoat> pelo caminho absoluto do diretório onde o binário cnappgoat reside.
NOME:
cnappgoat - Uma ferramenta multi-nuvem open-source para implantar recursos de nuvem intencionalmente vulneráveis
USO:
cnappgoat [opções globais] comando [opções de comando] [argumentos...]
VERSÃO:
0.1.0-beta, data: 2023-08-02T13:02:46Z, commit: 6bef61857d9f3cf88215269df8976f96317711dc
COMANDOS:
clean limpar e remover todos os recursos criados e excluir todos os cenários e arquivos relacionados
describe descrever um cenário
destroy Destruir cenários do módulo CNAPPgoat
list Listar cenários do módulo CNAPPgoat
provision Provisionar cenários do módulo CNAPPgoat
help, h Mostra uma lista de comandos ou ajuda para um comando
OPÇÕES GLOBAIS:
--debug Ativar modo de depuração (padrão: false)
--help, -h Mostrar ajuda
--version, -v Exibir a versão
Você pode usar vários argumentos separados por espaços. Por exemplo:
cnappgoat provision <cenario-1> <cenario-2> <cenario-N>
--module - Filtra cenários por módulo (ex.: CSPM, CIEM, CWPP, DSPM, KSPM etc.)--platform - Filtra cenários por plataforma (ex.: AWS, Azure, GCP)--force - Ativa o modo forçado (desbloqueia stacks bloqueadas com pulumi cancel)--debug - Ativa o log de depuração.Essas flags são flags de comando e devem ser colocadas após o comando. Por exemplo:
cnappgoat provision --module CSPM --platform AWS
Este comando provisionará todos os cenários AWS CSPM.
O CNAPPgoat baixa cenários do repositório cnappgoat-scenarios na primeira execução de cada dia. Esses cenários são baixados automaticamente quando você executa o CNAPPgoat e são armazenados no diretório ~/.cnappgoat/scenarios.
Antes de usar o CNAPPgoat, você precisa configurar suas credenciais de nuvem para AWS, Azure e GCP. O CNAPPgoat usa as credenciais padrão de cada provedor. Siga os passos abaixo para configurar suas credenciais:
Instale o AWS CLI seguindo as instruções aqui.
Configure suas credenciais AWS executando:
aws configure
Você será solicitado a inserir seu Access Key ID, Secret Access Key e nome da região padrão.
Instale o Azure CLI seguindo as instruções aqui.
Faça login na sua conta Azure executando:
az login
Isso abrirá uma nova janela do navegador para você fazer login. Após o login, suas credenciais serão armazenadas para uso futuro.
Instale o Google Cloud SDK seguindo as instruções aqui.
Autentique-se no Google Cloud executando:
gcloud auth login
Isso abrirá uma nova janela do navegador para você fazer login. Após o login, suas credenciais serão armazenadas para uso futuro.
Ao definir essas credenciais, você poderá implantar cenários na AWS, Azure e GCP usando o CNAPPgoat. Se você planeja usar o CNAPPgoat com um provedor diferente, certifique-se de configurar as credenciais adequadamente.
Para saber mais sobre o CNAPPgoat, confira o post no blog da Ermetic: https://ermetic.com/blog/cloud/cnappgoat-multicloud-open-source-tool-for-deploying-vulnerable-by-design-cloud-resources/
O CNAPPgoat provisiona uma variedade de cenários vulneráveis em múltiplas nuvens para testar capacidades de detecção e prevenção. Existem outros grandes projetos voltados para ambientes de nuvem vulneráveis, focados em áreas diferentes, como exploração, detecção, cenários CTF (capture the flag), etc. Fomos inspirados por essas ferramentas e projetos, e recomendamos conferi-los:
Mais desafios e ferramentas podem ser encontrados no repositório Awesome Cloud Security Challenges por Mike Privitte, nossa lista focada especificamente em ambientes de nuvem vulneráveis por design que são implantados pelos usuários em suas próprias sandboxes.
Para enviar um e-mail para a equipe do projeto, contate [email protected]
| Comando | Descrição | Uso |
|---|
list | Lista todos os cenários disponíveis para provisionamento. | cnappgoat list |
describe | Fornece informações detalhadas sobre o cenário especificado. | cnappgoat describe <nome do cenário> |
provision | Provisiona o cenário especificado pelo nome. Para provisionar todos os cenários, use cnappgoat provision. | cnappgoat provision <nome do cenário> |
destroy | Destrói o cenário especificado pelo nome. Para destruir todos os cenários, use cnappgoat destroy. | cnappgoat destroy <nome do cenário> |
clean | Limpa todos os cenários e exclui o diretório local .cnappgoat. | cnappgoat clean |
--version, -v | Exibe a versão atual do CNAPPgoat. | cnappgoat --version |
--help, -h | Exibe o menu de ajuda. | cnappgoat --help |