
Creazione di percorsi di attacco attraverso i piani di gestione e dati

Cirro è una piattaforma estensibile di ricerca sulla sicurezza che consente a ricercatori e penetration tester di raccogliere, analizzare e visualizzare ambienti cloud e relazioni identitarie attraverso database a grafo. Costruita con un'architettura modulare, Cirro può essere estesa per supportare multiple piattaforme e fonti di dati.
Puoi consultare la Documentazione per maggiori informazioni.
Cirro ha due aree funzionali principali:
cirro collect): Raccoglie informazioni da varie piattaforme e APIcirro graph): Gestisce le operazioni del database a grafo, inclusi l'ingestione e l'esportazione dei datiL'architettura modulare utilizza flag di funzionalità per abilitare funzionalità specifiche della piattaforma, consentendo agli utenti di costruire solo i componenti di cui hanno bisogno.
Cirro utilizza una struttura di comandi gerarchica organizzata per funzione e piattaforma:
cirro <function> <platform> <command> [options]
Azure (collect az)
# Available authentication methods:
cirro collect az azcli # Azure CLI authentication
cirro collect az client-secret # Client ID and secret
cirro collect az client-cert # Client certificate
cirro collect az access-token # Pre-obtained access token
cirro collect az user-pass # Username and password
Tailscale (collect ts)
# Tailscale data collection
cirro collect ts <auth-method> [options]
Data Ingestion (graph ingest)
# Ingest collected data into graph database
cirro graph ingest --type <platform> --file <data-file> [database options]
Data Export (graph export)
# Export graph data to various formats
cirro graph export --format <format> [options]
Scarica l'ultima release per la tua piattaforma dalla pagina delle release. Le release sono compilate con tutte le funzionalità abilitate.
git clone https://github.com/bishopfox/cirro.git
cd cirro
cargo build --release
NOTA: COMPILARE CON --RELEASE È IMPORTANTE PER LA FUNZIONALITÀ DEL GRAFO POICHÉ INCLUDE I FILE DI CONFIGURAZIONE YAML NEL BINARIO!
Il binario sarà disponibile in target/release/cirro.
Per impostazione predefinita, Cirro include tutte le funzionalità disponibili. Per compilare con funzionalità specifiche:
# Build with only collection features
cargo build --release --no-default-features --features collector
# Build with only graph features
cargo build --release --no-default-features --features graph
# Build with specific platform support
cargo build --release --no-default-features --features "azure"
cargo build --release --no-default-features --features "tailscale"
Cirro utilizza Neo4j come database di backend. Ci sono file docker-compose nella directory tools per assistere con database containerizzati.
Dopo aver raccolto i dati, importali nel tuo database a grafo:
# Ingest data for specific platforms
cirro graph ingest --type az --file cirro_output.db # Azure data
cirro graph ingest --type ts --file cirro_ts_socket.json # Tailscale data
# Specify custom database connection
cirro graph ingest --type az --file cirro_output.db \
--server bolt://localhost:7687 \
--user neo4j \
--password password
Anteprima di ciò che verrebbe importato e post-elaborato senza scrivere alcun dato nel database a grafo:
# Preview Azure ingestion and see which resource types have no implemented specs
cirro graph ingest --type az --file cirro_output.db --dry-run
# Preview Tailscale ingestion
cirro graph ingest --type ts --file cirro_ts_socket.json --dry-run
In modalità dry-run, Cirro:
CirroDash si trova qui: https://github.com/bishopfox/cirrodash
Abilita il logging di debug per informazioni dettagliate:
# Collection debug mode
cirro collect az azcli --debug
# Ingestion debug mode
cirro graph ingest --type az --file cirro_output.db --debug
Nota: Cirro è progettato per test di sicurezza autorizzati e ricerca. Assicurati di avere i permessi appropriati prima di eseguirlo su qualsiasi ambiente cloud o di rete.