CSPF-Founder/darwis-taxii
GitHub: CSPF-Founder/darwis-taxii
基于 Rust 和 Axum 构建的高性能 TAXII 威胁情报交换服务器,完整支持 TAXII 1.x/2.1 协议并与 OpenTAXII 数据库兼容。
Stars: 10 | Forks: 0
# DARWIS TAXII
[](https://hub.docker.com/r/cysecurity/darwis-taxii)
使用 Rust 编写的高性能 TAXII(Trusted Automated eXchange of Indicator Information)服务器。
[EclecticIQ OpenTAXII](https://github.com/EclecticIQ/OpenTAXII) 的 Rust 移植版本,具有完全的数据库兼容性。
## 功能特性
- **TAXII 1.x** - Discovery, Poll, Inbox, Collection Management, Subscriptions
- **TAXII 2.1** - 包含 Collections, Objects, Manifest, Versions, Status 的完整 REST API
- **STIX 2.x** - 原生解析与验证
- **认证** - JWT 令牌和 Basic Auth,支持按 Collection 设置权限
- **异步** - 基于 Tokio 和 Axum 构建,实现高吞吐量
- **可扩展** - 提供信号钩子 (Signal hooks) 用于自定义集成
## 系统要求
- Rust 1.88+ (2024 edition)
- PostgreSQL 9.4+
## 快速开始
```
# 构建
cargo build --release
# 复制并编辑配置
cp taxii.example.toml taxii.toml
cp examples/data-config/full.yaml data-config.yaml # Or accounts.yaml for TAXII 2.x only
# 根据您的设置编辑 taxii.toml 和 data-config.yaml
# 运行服务器 (启动时自动运行迁移)
./target/release/taxii-server
# 同步数据配置 (services, collections, accounts)
./target/release/taxii-cli sync data-config.yaml
```
服务器启动于 `http://localhost:9000`。
## Docker
Docker 镜像:`cysecurity/darwis-taxii`
```
cd examples/docker
# 创建配置目录并复制示例配置
mkdir config
cp ../../taxii.example.toml config/taxii.toml
cp ../data-config/full.yaml config/data-config.yaml # Or accounts.yaml for TAXII 2.x only
# 根据需要编辑配置文件
# 启动服务器和 PostgreSQL
docker compose up -d
# 同步数据配置 (services, collections, accounts)
docker compose exec taxii-server ./taxii-cli sync /app/config/data-config.yaml
# 列出账户
docker compose exec taxii-server ./taxii-cli account list
```
若要在本地构建而不是从 Docker Hub 拉取,请编辑 `docker-compose.yml` 并取消 `build` 部分的注释。
## 配置
DARWIS TAXII 使用两个配置文件(遵循 OpenTAXII 惯例):
| 文件 | 用途 |
|------|---------|
| [`taxii.toml`](taxii.example.toml) | 服务器设置:数据库、认证、域、TAXII 1.x/2.x 选项 |
| [`data-config/`](examples/data-config/) | 数据:服务、集合、帐户及其权限 |
将 `taxii.example.toml` 复制为 `taxii.toml` 并根据您的环境进行编辑。
请参阅[文档](https://cspf-founder.github.io/darwis-taxii/)了解包括环境变量覆盖在内的所有选项。
## CLI
```
# 从 YAML 同步 services, collections 和 accounts
taxii-cli sync data-config.yaml
# 账户管理
taxii-cli account list # List accounts with permissions
taxii-cli account delete -u user # Delete an account
# 数据库迁移 (服务器启动时自动运行)
taxii-cli migrate run # Apply pending migrations
taxii-cli migrate status # Show migration status
# TAXII 2.x 管理
taxii-cli api-root add --title "My Root" --default
taxii-cli collection add --api-root-id --title "Intel"
```
运行 `taxii-cli --help` 查看所有命令。
## 项目结构
```
taxii.example.toml # Server configuration example
examples/
data-config/ # Data configuration examples
full.yaml # Full config (TAXII 1.x + accounts)
accounts.yaml # Accounts only (for TAXII 2.x)
docker/ # Docker deployment files
migrations/ # SQLx database migrations
taxii-core/ # Core types and signal hooks
taxii-db/ # Database persistence (SQLx)
taxii-auth/ # JWT and password authentication
taxii-1x/ # TAXII 1.x protocol (XML)
taxii-2x/ # TAXII 2.x protocol (JSON)
stix2/ # STIX 2.x parsing
taxii-server/ # HTTP server (Axum)
taxii-cli/ # CLI tool
```
## 文档
**https://cspf-founder.github.io/darwis-taxii/**
## 兼容性
- **OpenTAXII** - 相同的数据库 schema,werkzeug 密码哈希
- **TAXII** - 1.0, 1.1, 2.0, 2.1 规范
- **STIX** - 2.0, 2.1 对象
## 许可证
BSD-3-Clause
## 致谢
- [EclecticIQ OpenTAXII](https://github.com/EclecticIQ/OpenTAXII) - 原始 Python 实现
- [OASIS CTI](https://oasis-open.github.io/cti-documentation/) - TAXII/STIX 规范
标签:Axum, CSP, Docker, HTTP/HTTPS抓包, JSON 数据解析, JWT 认证, PostgreSQL, REST API, Rust, STIX, TAXII, TAXII 服务器, Tokio, 可视化界面, 威胁情报, 威胁情报共享, 安全标准, 安全防御评估, 开发者工具, 异步编程, 态势感知, 指标交换, 测试用例, 端口移植, 网络安全, 网络流量审计, 请求拦截, 通知系统, 通知系统, 隐私保护