BishopFox/cirro
GitHub: BishopFox/cirro
Cirro 是一个基于图数据库的安全研究平台,用于收集、分析和可视化跨平台的身份与网络关系,解决攻击路径发现难题。
Stars: 29 | Forks: 1

Cirro 是一个可扩展的安全研究平台,能够帮助研究人员和渗透测试人员通过图数据库收集、分析和可视化云环境及身份关系。采用模块化架构,Cirro 可扩展以支持多个平台和数据源。
您可以在[文档](https://bishopfox.github.io/cirro)中查看更多信息。
## 功能特性
- **多平台数据收集**:可扩展的架构,支持多个云平台及身份提供者
- **灵活的身份验证**:根据目标平台支持多种身份验证方式
- **跨平台支持**:适用于 Windows、macOS 和 Linux
- **模块化设计**:通过功能标志和可扩展插件架构实现可选平台功能
- **网络拓扑分析**:支持 Tailscale 等网络基础设施平台
## 架构
Cirro 包含两个主要功能区域:
- **收集(`cirro collect`)**:从各种平台和 API 收集信息
- **图操作(`cirro graph`)**:管理图数据库操作,包括数据摄取和导出
模块化架构使用功能标志来启用特定平台功能,允许用户仅构建所需的组件。
## CLI 结构
Cirro 采用按功能与平台组织的层次化命令结构:
```
cirro
[options]
```
### 数据收集
**Azure(collect az)**
```
# 可用的身份验证方法
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 数据收集
cirro collect ts [options]
```
### 图操作
**数据摄取(graph ingest)**
```
# 将收集的数据导入图形数据库
cirro graph ingest --type --file [database options]
```
**数据导出(graph export)**
```
# 导出图形数据到多种格式
cirro graph export --format [options]
```
## 安装
### 预编译二进制文件
从[发布页面](https://github.com/bishopfox/cirro/releases)下载适用于您平台的最新版本。发布的版本已启用所有功能。
### 从源码构建
```
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](/tools/)` 目录中包含用于容器化数据库的 docker-compose 文件。
收集数据后,将其摄取到图数据库中:
```
# 为特定平台摄入数据
cirro graph ingest --type az --file cirro_output.db # Azure data
cirro graph ingest --type ts --file cirro_ts_socket.json # Tailscale data
# 指定自定义数据库连接
cirro graph ingest --type az --file cirro_output.db \
--server bolt://localhost:7687 \
--user neo4j \
--password password
```
## 仪表板
CirroDash 可在此处获取:[https://github.com/bishopfox/cirrodash](https://github.com/bishopfox/cirrodash)
## 调试模式
启用调试日志以获取详细信息:
```
# 收集调试模式
cirro collect az azcli --debug
# 摄入调试模式
cirro graph ingest --type az --file cirro_output.db --debug
```
**注意**:Cirro 专为授权的安全测试和研究设计。在对任何云或网络环境运行之前,请确保您拥有适当的权限。标签:Azure, CLI, JSON 请求, SEO标签, Tailscale, WiFi技术, 云环境分析, 可扩展架构, 可视化界面, 命令行界面, 多平台支持, 安全研究平台, 插件架构, 攻击路径, 数据平面, 日志审计, 模块化架构, 特征标志, 管理平面, 网络拓扑分析, 认证方法, 请求拦截, 身份关系图谱, 通知系统