
CNAPPgoat è un progetto open source progettato per fornire modularmente componenti vulnerabili per progettazione in ambienti cloud.
CNAPPgoat è uno strumento di deployment per ambienti multi-cloud, vulnerabili per progettazione, specificamente progettato per creare arene di addestramento per difensori e pentester. La sua funzione principale è distribuire ambienti intenzionalmente vulnerabili su più provider di servizi cloud, per affinare le tue abilità nello sfruttamento, rilevamento e prevenzione di tali vulnerabilità.

Attenzione: CNAPPgoat distribuisce ambienti vulnerabili. Usalo solo in sandbox sicure e controllate.
CNAPPgoat funziona come strumento a riga di comando (CLI), in grado di distribuire ambienti vulnerabili su una moltitudine di provider di servizi cloud. Costruito con Go e utilizzando Pulumi e l'API di automazione di Pulumi, garantisce un deployment fluido degli ambienti. Una delle sue caratteristiche distintive è il design modulare, che consente un'estensione semplice per supportare un'ampia gamma di provider cloud e nuovi ambienti vulnerabili. Al momento, CNAPPgoat supporta AWS, Azure e GCP.
Le dipendenze e i plugin di Pulumi verranno installati su richiesta in base ai requisiti di ogni scenario quando fornisci il tuo primo ambiente. Ciò significa che il primo provisioning potrebbe richiedere un po' più di tempo rispetto a quelli successivi.
CNAPPgoat può essere facilmente installato per utenti macOS utilizzando il gestore di pacchetti Homebrew.
brew tap ermetic-research/cnappgoat
brew install cnappgoat
Scarica l'ultima versione da qui.
tar -xvf cnappgoat-<versione>.tar.gz
cd cnappgoat-<versione>
(Opzionale) Se desideri aggiungere il binario estratto al PATH del tuo sistema (non è obbligatorio, puoi eseguirlo dalla directory locale come ./cnappgoat):
Opzione A: Sposta in una directory nel PATH (es. /usr/local/bin per macOS e Linux)
mv cnappgoat /usr/local/bin/
Opzione B: Aggiungi la directory contenente il binario al tuo PATH
Per bash:
echo 'export PATH=$PATH:<percorso_della_directory_contenente_cnappgoat>' >> ~/.bashrc
source ~/.bashrc
Per zsh:
echo 'export PATH=$PATH:<percorso_della_directory_contenente_cnappgoat>' >> ~/.zshrc
source ~/.zshrc
Sostituisci <percorso_della_directory_contenente_cnappgoat> con il percorso assoluto della directory in cui risiede il binario cnappgoat.
NOME:
cnappgoat - Uno strumento open-source multi-cloud per distribuire risorse cloud vulnerabili per progettazione
USO:
cnappgoat [opzioni globali] comando [opzioni comando] [argomenti...]
VERSIONE:
0.1.0-beta, data: 2023-08-02T13:02:46Z, commit: 6bef61857d9f3cf88215269df8976f96317711dc
COMANDI:
clean pulisce e rimuove tutte le risorse create ed elimina tutti gli scenari e i file correlati
describe descrive uno scenario
destroy distrugge gli scenari del modulo CNAPPgoat
list elenca gli scenari del modulo CNAPPgoat
provision fornisce gli scenari del modulo CNAPPgoat
help, h mostra un elenco di comandi o aiuto per un comando
OPZIONI GLOBALI:
--debug Abilita la modalità debug (default: false)
--help, -h mostra l'aiuto
--version, -v stampa la versione
Puoi usare più argomenti separati da spazi. Ad esempio:
cnappgoat provision <scenario-1> <scenario-2> <scenario-N>
--module - Filtra gli scenari per modulo (es. CSPM, CIEM, CWPP, DSPM, KSPM ecc.)--platform - Filtra gli scenari per piattaforma (es. AWS, Azure, GCP)--force - Abilita la modalità forzata (sblocca gli stack bloccati con pulumi cancel)--debug - Abilita il logging di debug.Questi flag sono flag di comando e vanno posizionati dopo il comando. Ad esempio:
cnappgoat provision --module CSPM --platform AWS
Questo comando fornirà tutti gli scenari AWS CSPM.
CNAPPgoat scarica gli scenari dal repository cnappgoat-scenarios al primo avvio di ogni giorno. Questi scenari vengono scaricati automaticamente quando esegui CNAPPgoat e sono memorizzati nella directory ~/.cnappgoat/scenarios.
Prima di poter utilizzare CNAPPgoat, devi configurare le tue credenziali cloud per AWS, Azure e GCP. CNAPPgoat utilizza le credenziali predefinite per ogni provider. Segui i passaggi seguenti per configurare le tue credenziali:
Installa AWS CLI seguendo le istruzioni qui.
Configura le tue credenziali AWS eseguendo:
aws configure
Ti verrà chiesto di inserire il tuo ID chiave di accesso, la chiave di accesso segreta e il nome della regione predefinita.
Installa Azure CLI seguendo le istruzioni qui.
Accedi al tuo account Azure eseguendo:
az login
Si aprirà una nuova finestra del browser per effettuare l'accesso. Dopo aver effettuato l'accesso, le tue credenziali verranno memorizzate per un uso futuro.
Installa Google Cloud SDK seguendo le istruzioni qui.
Autenticati con Google Cloud eseguendo:
gcloud auth login
Si aprirà una nuova finestra del browser per effettuare l'accesso. Dopo aver effettuato l'accesso, le tue credenziali verranno memorizzate per un uso futuro.
Configurando queste credenziali, sarai in grado di distribuire scenari su AWS, Azure e GCP utilizzando CNAPPgoat. Se prevedi di utilizzare CNAPPgoat con un provider diverso, assicurati di configurare le credenziali di conseguenza.
Per saperne di più su CNAPPgoat, consulta l'articolo sul blog di Ermetic: https://ermetic.com/blog/cloud/cnappgoat-multicloud-open-source-tool-for-deploying-vulnerable-by-design-cloud-resources/
CNAPPgoat fornisce un'ampia gamma di scenari vulnerabili su più cloud per testare le capacità di rilevamento e prevenzione. Esistono altri ottimi progetti per ambienti cloud vulnerabili incentrati su aree diverse, come sfruttamento, rilevamento, scenari CTF (cattura la bandiera), ecc. Siamo stati ispirati da questi strumenti e progetti e ti consigliamo di dare un'occhiata:
Ulteriori sfide e strumenti sono disponibili nel repository Awesome Cloud Security Challenges di Mike Privitte; la nostra lista è focalizzata specificamente su ambienti cloud vulnerabili per progettazione distribuiti dagli utenti nella propria sandbox.
Per contattare il team del progetto, scrivi a [email protected]
| Comando | Descrizione | Utilizzo |
|---|
list | Elenca tutti gli scenari disponibili per il provisioning. | cnappgoat list |
describe | Fornisce informazioni dettagliate sullo scenario specificato. | cnappgoat describe <nome scenario> |
provision | Fornisce lo scenario specificato dal nome. Per fornire tutti gli scenari, usa semplicemente cnappgoat provision | cnappgoat provision <nome scenario> |
destroy | Distrugge lo scenario specificato dal nome. Per distruggere tutti gli scenari, usa semplicemente cnappgoat destroy | cnappgoat destroy <nome scenario> |
clean | Pulisce tutti gli scenari e cancella la directory locale .cnappgoat | cnappgoat clean |
--version, -v | Mostra la versione corrente di CNAPPgoat | cnappgoat --version |
--help, -h | Mostra il menu di aiuto. | cnappgoat --help |