
Création de chemins d'attaque à travers les plans de gestion et de données.

Cirro est une plateforme de recherche en sécurité extensible qui permet aux chercheurs et aux testeurs d'intrusion de collecter, analyser et visualiser les environnements cloud et les relations d'identité via des bases de données graphes. Conçue avec une architecture modulaire, Cirro peut être étendue pour prendre en charge plusieurs plateformes et sources de données.
Vous pouvez consulter la Documentation pour plus d'informations.
Cirro a deux domaines fonctionnels principaux :
cirro collect) : Rassemble des informations à partir de diverses plateformes et APIcirro graph) : Gère les opérations de base de données graphe, y compris l'ingestion et l'export de donnéesL'architecture modulaire utilise des indicateurs de fonctionnalités pour activer les fonctionnalités spécifiques à une plateforme, permettant aux utilisateurs de ne construire que les composants dont ils ont besoin.
Cirro utilise une structure de commande hiérarchique organisée par fonction et plateforme :
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]
Ingestion de données (graph ingest)
# Ingest collected data into graph database
cirro graph ingest --type <platform> --file <data-file> [database options]
Export de données (graph export)
# Export graph data to various formats
cirro graph export --format <format> [options]
Téléchargez la dernière version pour votre plateforme depuis la page des versions. Les versions sont construites avec toutes les fonctionnalités activées.
git clone https://github.com/bishopfox/cirro.git
cd cirro
cargo build --release
NOTE : LA COMPILATION AVEC --RELEASE EST IMPORTANTE POUR LES FONCTIONNALITÉS GRAPHES CAR ELLE INTÈGRE LES FICHIERS DE CONFIGURATION YAML DANS LE BINAIRE !
Le binaire sera disponible dans target/release/cirro.
Par défaut, Cirro inclut toutes les fonctionnalités disponibles. Pour compiler avec des fonctionnalités spécifiques :
# 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 utilise Neo4j comme base de données backend. Des fichiers docker-compose se trouvent dans le répertoire tools pour faciliter l'utilisation de bases de données conteneurisées.
Après la collecte des données, ingérez-les dans votre base de données graphe :
# 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
Prévisualisez ce qui serait ingéré et post-traité sans écrire de données dans la base de données graphe :
# 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
En mode dry-run, Cirro va :
CirroDash se trouve ici : https://github.com/bishopfox/cirrodash
Activez la journalisation de débogage pour des informations détaillées :
# Collection debug mode
cirro collect az azcli --debug
# Ingestion debug mode
cirro graph ingest --type az --file cirro_output.db --debug
Note : Cirro est conçu pour les tests de sécurité et la recherche autorisés. Assurez-vous d'avoir les autorisations appropriées avant de l'exécuter contre tout environnement cloud ou réseau.