
Создание путей атак через плоскости управления и данных

Cirro — это расширяемая платформа для исследований в области безопасности, которая позволяет исследователям и специалистам по тестированию на проникновение собирать, анализировать и визуализировать облачные среды и связи между удостоверениями с помощью графовых баз данных. Благодаря модульной архитектуре Cirro может быть расширен для поддержки нескольких платформ и источников данных.
Дополнительную информацию можно найти в Документации.
Cirro имеет две основные функциональные области:
cirro collect): получение информации с различных платформ и APIcirro graph): управление операциями с графовой базой данных, включая загрузку и экспорт данныхМодульная архитектура использует флаги функций для включения функциональности, специфичной для платформы, что позволяет пользователям собирать только необходимые компоненты.
Cirro использует иерархическую структуру команд, организованную по функциям и платформам:
cirro <function> <platform> <command> [options]
Azure (collect az)
# Доступные методы аутентификации:
cirro collect az azcli # Аутентификация через Azure CLI
cirro collect az client-secret # Идентификатор клиента и секрет
cirro collect az client-cert # Сертификат клиента
cirro collect az access-token # Предварительно полученный токен доступа
cirro collect az user-pass # Имя пользователя и пароль
Tailscale (collect ts)
# Сбор данных Tailscale
cirro collect ts <auth-method> [options]
Загрузка данных (graph ingest)
# Загрузка собранных данных в графовую базу данных
cirro graph ingest --type <platform> --file <data-file> [database options]
Экспорт данных (graph export)
# Экспорт графовых данных в различные форматы
cirro graph export --format <format> [options]
Загрузите последний релиз для вашей платформы со страницы релизов. Релизы собраны со всеми включенными функциями.
git clone https://github.com/bishopfox/cirro.git
cd cirro
cargo build --release
ПРИМЕЧАНИЕ: СБОРКА С ФЛАГОМ --RELEASE ВАЖНА ДЛЯ ФУНКЦИОНАЛЬНОСТИ ГРАФОВ, ТАК КАК ЭТО ВСТРАИВАЕТ YAML-ФАЙЛЫ КОНФИГУРАЦИИ В БИНАРНЫЙ ФАЙЛ!
Бинарный файл будет доступен по пути target/release/cirro.
По умолчанию Cirro включает все доступные функции. Для сборки с определёнными функциями:
# Сборка только с функциями сбора
cargo build --release --no-default-features --features collector
# Сборка только с функциями графа
cargo build --release --no-default-features --features graph
# Сборка с поддержкой конкретной платформы
cargo build --release --no-default-features --features "azure"
cargo build --release --no-default-features --features "tailscale"
Cirro использует Neo4j в качестве серверной базы данных. В каталоге tools находятся файлы docker-compose для помощи в развертывании контейнерных баз данных.
После сбора данных загрузите их в вашу графовую базу данных:
# Загрузка данных для конкретной платформы
cirro graph ingest --type az --file cirro_output.db # Данные Azure
cirro graph ingest --type ts --file cirro_ts_socket.json # Данные Tailscale
# Указание пользовательского подключения к базе данных
cirro graph ingest --type az --file cirro_output.db \
--server bolt://localhost:7687 \
--user neo4j \
--password password
Предварительный просмотр того, что будет загружено и обработано, без записи каких-либо данных в графовую базу данных:
# Предварительный просмотр загрузки Azure и просмотр типов ресурсов, для которых нет реализованных спецификаций
cirro graph ingest --type az --file cirro_output.db --dry-run
# Предварительный просмотр загрузки Tailscale
cirro graph ingest --type ts --file cirro_ts_socket.json --dry-run
В режиме dry-run Cirro будет:
CirroDash находится здесь: https://github.com/bishopfox/cirrodash
Включите отладочное логирование для получения подробной информации:
# Режим отладки сбора
cirro collect az azcli --debug
# Режим отладки загрузки
cirro graph ingest --type az --file cirro_output.db --debug
Примечание: Cirro разработан для авторизованного тестирования безопасности и исследований. Убедитесь, что у вас есть соответствующие разрешения перед запуском в любой облачной или сетевой среде.