
Criando caminhos de ataque através dos planos de gerenciamento e de dados.

A Cirro é uma plataforma de pesquisa de segurança extensível que permite a pesquisadores e testadores de penetração coletar, analisar e visualizar ambientes em nuvem e relacionamentos de identidade por meio de bancos de dados de grafos. Construída com uma arquitetura modular, a Cirro pode ser estendida para suportar múltiplas plataformas e fontes de dados.
Você pode conferir a Documentação para mais informações.
A Cirro possui duas áreas funcionais principais:
cirro collect): Reúne informações de várias plataformas e APIscirro graph): Gerencia operações de banco de dados de grafos, incluindo ingestão e exportação de dadosA arquitetura modular usa flags de recursos para habilitar funcionalidades específicas de plataforma, permitindo que os usuários construam apenas os componentes de que precisam.
A Cirro usa uma estrutura de comando hierárquica organizada por função e plataforma:
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]
Ingestão de Dados (graph ingest)
# Ingest collected data into graph database
cirro graph ingest --type <platform> --file <data-file> [database options]
Exportação de Dados (graph export)
# Export graph data to various formats
cirro graph export --format <format> [options]
Baixe a versão mais recente para sua plataforma na página de releases. As versões são compiladas com todos os recursos habilitados.
git clone https://github.com/bishopfox/cirro.git
cd cirro
cargo build --release
NOTA: COMPILAR COM --RELEASE É IMPORTANTE PARA A FUNCIONALIDADE DE GRAFO, POIS EMBUTE ARQUIVOS DE CONFIGURAÇÃO YAML NO BINÁRIO!
O binário estará disponível em target/release/cirro.
Por padrão, a Cirro inclui toda a funcionalidade disponível. Para compilar com recursos específicos:
# 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"
A Cirro usa o Neo4j como banco de dados de back-end. Há arquivos docker-compose no diretório tools para auxiliar com bancos de dados containerizados.
Após coletar os dados, ingira-os no seu banco de dados de grafos:
# 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
Visualize o que seria ingerido e pós-processado sem gravar nenhum dado no banco de dados de grafos:
# 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
No modo dry-run, a Cirro irá:
O CirroDash pode ser encontrado aqui: https://github.com/bishopfox/cirrodash
Ative o log de depuração para informações detalhadas:
# Collection debug mode
cirro collect az azcli --debug
# Ingestion debug mode
cirro graph ingest --type az --file cirro_output.db --debug
Nota: A Cirro é projetada para testes de segurança autorizados e pesquisa. Certifique-se de ter as permissões adequadas antes de executar contra qualquer ambiente de nuvem ou rede.