
管理プレーンとデータプレーンを横断する攻撃パスの作成

Cirro は、拡張可能なセキュリティ研究プラットフォームです。研究者やペネトレーションテスターが、グラフデータベースを通じてクラウド環境やアイデンティティ関係を収集、分析、可視化できます。モジュラーアーキテクチャを採用しており、複数のプラットフォームやデータソースに対応するように拡張できます。
詳細についてはドキュメントをご覧ください。
Cirro には2つの主要な機能領域があります:
cirro collect): 様々なプラットフォームやAPIから情報を収集cirro graph): データの取り込みやエクスポートを含むグラフデータベース操作を管理モジュラーアーキテクチャはフィーチャーフラグを使用してプラットフォーム固有の機能を有効にし、ユーザーが必要なコンポーネントのみをビルドできるようにします。
Cirro は機能とプラットフォームで整理された階層的なコマンド構造を使用します:
cirro <function> <platform> <command> [options]
Azure (collect az)
# 利用可能な認証方法:
cirro collect az azcli # Azure CLI 認証
cirro collect az client-secret # クライアント ID とシークレット
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
ドライランモードでは、Cirro は以下を行います:
CirroDash はこちらにあります: https://github.com/bishopfox/cirrodash
詳細情報のためにデバッグログを有効にします:
# 収集デバッグモード
cirro collect az azcli --debug
# 取り込みデバッグモード
cirro graph ingest --type az --file cirro_output.db --debug
注記: Cirro は許可されたセキュリティテストおよび研究用に設計されています。クラウドまたはネットワーク環境に対して実行する前に、適切な許可を得ていることを確認してください。