apexajay-rc/Blackbird
GitHub: apexajay-rc/Blackbird
Blackbird 是一个开源威胁情报富化平台,通过并发聚合多个外部情报源的数据为 IOC 提供统一的风险评分和调查上下文。
Stars: 1 | Forks: 0








# Blackbird
Blackbird 是一个开源威胁情报平台,旨在聚合、规范化、关联并丰富来自多个外部情报提供商的失陷标示 (IOC)。
虽然安全信息与事件管理 (SIEM) 系统或内部监控工具栈等工具主要用于追踪内部基础设施状态,但 Blackbird 作为外部上下文引擎运行。它为 IP 地址、哈希和域名提供确定性的、可编程的丰富信息,以加速事件响应和威胁狩猎工作流。
## 项目存在的原因
### 问题所在
在发生活跃的安全事件期间,SOC 分析师和检测工程师需要花费关键的时间在不同的开源情报 (OSINT) 和商业情报门户(例如 VirusTotal、AbuseIPDB、AlienVault)之间进行切换。威胁情报在根本上是碎片化的。每个提供商使用不同的数据模型、评分规则和 API 结构。这种手动丰富信息的过程在事件调查生命周期中引入了严重的延迟。
### 解决方案
Blackbird 通过实现并发聚合 pipeline 消除了手动切换。通过利用可插拔的架构,Blackbird 同时查询多个情报源,将它们迥异的 JSON schema 规范化为严格类型的内部模型,并计算统一的威胁评分。这使得安全自动化 pipeline 和分析师能够通过单次 API 调用获取全面的上下文。
## 架构
Blackbird 构建于现代异步 Python 技术栈之上,利用 FastAPI 提供高性能 API,并使用 SQLAlchemy 进行结构化数据持久化。
### 组件流程
```
graph TD
Client[Client / Automation Pipeline] -->|REST API| API[FastAPI Gateway]
API --> Aggregator[Threat Aggregator Service]
subgraph Enrichment Pipeline
Aggregator -->|Load Pluggable Modules| Registry[Provider Registry]
Registry --> VT[VirusTotal Provider]
Registry --> Abuse[AbuseIPDB Provider]
Registry --> Future[... Future Providers]
end
VT -->|async HTTP| VT_API((VirusTotal API))
Abuse -->|async HTTP| Abuse_API((AbuseIPDB API))
Aggregator -->|Read/Write Model| ORM[SQLAlchemy ORM]
ORM --> DB[(SQLite Database)]
Aggregator -->|Normalize & Score| Output[ThreatReport]
Output --> API
```
### 执行序列
```
sequenceDiagram
participant Analyst as Analyst/SIEM
participant API as FastAPI
participant Core as Aggregator Pipeline
participant Prov as External Providers
participant DB as SQLite/PostgreSQL
Analyst->>API: POST /api/v1/enrich {ioc: "1.1.1.1"}
API->>Core: invoke_enrichment_task(ioc)
Core->>DB: Check Cache / History
alt Cache Miss
Core->>Core: Initialize Registered Providers
Core->>Prov: asyncio.gather(requests)
Note right of Core: Concurrent execution minimizes I/O latency
Prov-->>Core: Raw JSON Responses
Core->>Core: Normalize to ThreatIndicator Model
Core->>Core: Calculate Unified Threat Score
Core->>DB: Store complete ThreatReport
end
Core-->>API: Serialized Report
API-->>Analyst: 200 OK (JSON)
```
## 功能
### 当前功能
* **FastAPI 后端:** 高性能、异步的 REST API 架构。
* **SQLite 数据库与 SQLAlchemy ORM:** 用于长期情报保留和查询的严格 schema 定义。
* **并发收集:** 利用 `asyncio` 消除查询多个上游 API 时的 I/O 阻塞。
* **提供商注册表模式:** 动态加载情报插件,将核心逻辑与特定于供应商的实现解耦。
* **威胁聚合服务:** 管理任务分发和超时处理的核心路由引擎。
* **数据模型:** 结构化的 `ThreatIndicator` 和 `ThreatReport` 模型,用于确定性的下游消费。
* **活跃集成:** 原生支持 VirusTotal 和 AbuseIPDB。
### 计划功能
* **扩展集成:** AlienVault OTX、GreyNoise 和 Shodan。
* **漏洞情报:** 与国家漏洞数据库 (NVD) 集成以进行 CVE 丰富。
* **存储可扩展性:** 用于高吞吐量、企业规模部署的原生 PostgreSQL 支持。
* **数据可视化:** 为 SOC 分析师提供的基于 React 的操作仪表板。
* **自定义评分引擎:** 允许组织根据内部信任指标为不同的威胁源定义自定义权重。
* **调查历史:** 随时间推移 IOC 演变的完整审计日志。
## 威胁情报工作流
Blackbird 对每个摄取的指标强制执行严格且可重现的工作流:
`IOC` → `信息丰富` → `关联` → `评分` → `调查报告`
1. **IOC:** 将原始制品(IP、域名、哈希)提交至摄取 endpoint。
2. **信息丰富:** 聚合器向所有已注册且适用的提供商分发异步查询。
3. **关联:** 提取元数据(ASN、关联的恶意软件家族、时间数据)并将其映射到统一的 schema。
4. **评分:** 将不同的置信度分数(例如,VT 的 `malicious/total` 与 AbuseIPDB 的 `confidenceScore`)映射到标准的 0-100 严重性指数。
5. **调查报告:** 返回严格类型的 JSON 对象,可用于 SIEM 摄取或分析师审查。
## 技术深入解析
### 提供商抽象与注册表模式
为确保平台保持与供应商无关且高度可扩展,Blackbird 使用了提供商注册表模式。所有情报源都继承自抽象基类(`BaseProvider`),该类强制执行标准接口(`enrich_ioc()`、`normalize_response()`)。注册表会在 runtime 自动发现并实例化这些提供商。添加新源只需编写单个类文件,无需修改核心聚合引擎。
### 聚合 Pipeline
由于 API 查询具有 I/O 密集型的特性,Blackbird 利用了 Python 的 `asyncio.gather()`。如果分析师请求某个 IP 地址的上下文,Blackbird 会同时向 VirusTotal 和 AbuseIPDB 发送请求。总响应时间受限于最慢的提供商,而不是所有提供商延迟的总和。
### 威胁评分
威胁评分具有主观性。Blackbird 对分数进行规范化以提供单一的基准指标。该引擎采用加权平均方法,在配置中可以为提供商分配不同的信任权重。生成的指标提供标准化的严重性级别(Clean、Suspicious、Malicious、Critical),下游的 SOAR (Security Orchestration, Automation, and Response) 平台可以使用它进行自动化分类。
## 仓库结构
```
blackbird/
├── api/
│ ├── routes/ # API endpoint definitions
│ └── dependencies.py # FastAPI dependency injection
├── core/
│ ├── config.py # Environment & config management
│ ├── aggregator.py # Concurrent execution pipeline
│ └── scoring.py # Normalization and scoring logic
├── models/
│ ├── database.py # SQLAlchemy base and engine
│ ├── orm_models.py # Table schemas (ThreatReport, etc.)
│ └── pydantic_models.py # API validation schemas
├── providers/
│ ├── base.py # BaseProvider abstract class
│ ├── registry.py # Dynamic provider loader
│ ├── virustotal.py # VT implementation
│ └── abuseipdb.py # AbuseIPDB implementation
├── tests/ # Pytest suite
├── main.py # Application entry point
├── requirements.txt
└── README.md
```
## 路线图
**阶段 1:核心情报平台(当前)**
* [x] 建立异步 API 架构。
* [x] 实现提供商注册表和基础抽象。
* [x] 集成初始 OSINT 源(VT、AbuseIPDB)。
* [x] 设计核心 ORM 模型和 SQLite 持久化。
**阶段 2:情报扩展**
* [ ] 集成 AlienVault OTX 和 GreyNoise。
* [ ] 实现用于 SOAR 集成的通用 Webhook 输出。
* [ ] 引入用于生产部署的 PostgreSQL 支持。
**阶段 3:漏洞情报**
* [ ] 开发 CVE 摄取引擎。
* [ ] 集成 NVD 源。
* [ ] 将 IOC 映射到已知的被利用漏洞(KEV 目录)。
**阶段 4:分析师体验**
* [ ] 构建轻量级的 React 前端仪表板。
* [ ] 实现 IOC 调查历史和增量追踪。
* [ ] 添加 CSV/STIX 导出功能。
**阶段 5:开源生态系统**
* [ ] 完成插件架构 SDK。
* [ ] 为社区贡献的源创建公开的提供商存储库。
* [ ] 打包为独立的 Docker/Helm chart,以便进行 Kubernetes 部署。
## 许可证
本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
标签:AV绕过, FastAPI, Python, SQLite, 威胁情报, 安全运营, 开发者工具, 情报富化, 扫描框架, 无后门, 网络测绘, 计算机取证, 逆向工具