CSPF-Founder/darwis-taxii

GitHub: CSPF-Founder/darwis-taxii

基于 Rust 和 Axum 构建的高性能 TAXII 威胁情报交换服务器,完整支持 TAXII 1.x/2.1 协议并与 OpenTAXII 数据库兼容。

Stars: 10 | Forks: 0

# DARWIS TAXII [![Docker Hub](https://img.shields.io/docker/v/cysecurity/darwis-taxii?label=Docker%20Hub&logo=docker)](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, 可视化界面, 威胁情报, 威胁情报共享, 安全标准, 安全防御评估, 开发者工具, 异步编程, 态势感知, 指标交换, 测试用例, 端口移植, 网络安全, 网络流量审计, 请求拦截, 通知系统, 通知系统, 隐私保护