Kartik0219/IntelFlow
GitHub: Kartik0219/IntelFlow
一款基于 asyncio 的异步 CTI 与 SIEM 富化引擎,实时从安全日志中提取 IOC 并在多威胁情报源间进行并发查询与判定合并。
Stars: 0 | Forks: 0
# IntelFlow
一款**异步 CTI(网络威胁情报)与 SIEM 富化引擎**。它
监视原始安全日志流,提取危害指标(IP、
域名、哈希值),实时针对多个威胁情报提供商对每个指标进行富化,
并输出适配 SIEM 的富化事件 —— 所有这一切都在单一的 `asyncio` 事件
循环中完成,数据摄取绝不会阻塞富化过程。
基于 **FastAPI**、**httpx** 和 **Pydantic v2** 构建。
## Pipeline
```
LogWatcher → LogExtractor → EnrichmentEngine → SiemEnrichedLog → JSONL writer
│
(concurrent FastAPI diagnostics API)
```
- **摄取** — `LogWatcher` 轮询目录以获取新的原始日志;`extractor`
提取出 IOC。
- **富化** — `EnrichmentEngine` 将每个 IOC 分发给配置的 CTI
客户端(**AbuseIPDB**、**AlienVault OTX**),合并判定结果,并标记
MITRE ATT&CK 技术。
- **弹性** — 一个共享的 `httpx.AsyncClient`,具备**重试**(tenacity)、
按提供商划分的**断路器**,以及 **TTL 缓存**,因此重复的 IOC 不会
再次请求 API。
- **可观测性** — 一个 FastAPI 应用会在 Pipeline 运行时
暴露指标(缓存命中率、提供商健康状况、吞吐量)。
## 快速开始
```
pip install -r requirements.txt
cp .env.example .env # add CTI API keys (optional — falls back to mocks)
python -m intelflow.main # or: uvicorn intelflow.api.app:create_app --factory
```
将原始日志放入配置的 `RAW_LOG_DIRECTORY` 中;富化后的事件将以
JSONL 格式写入 `ENRICHED_OUTPUT_PATH`。在没有 API 密钥的情况下,
CTI 客户端会使用结构化的后备 mock 数据,因此 Pipeline
依然可以端到端运行。
## 配置
所有设置均来自环境变量(见 [`.env.example`](.env.example)):
提供商密钥/URL、HTTP 超时/重试/退避、断路器阈值、缓存
TTL/大小,以及摄取/输出路径。
## 测试
```
pip install -r requirements.txt
pytest
```
异步测试使用 `pytest-asyncio`;HTTP 调用使用 `respx` 进行 mock,因此测试套件
可完全离线运行(无需真实的 API 密钥或网络)。
## 技术
`Python` · `asyncio` · `FastAPI` · `httpx` · `Pydantic v2` · `tenacity` ·
`cachetools` · `Docker`
标签:Python, 威胁情报, 安全日志分析, 开发者工具, 异步架构, 无后门, 计算机取证, 请求拦截, 运行时操纵, 逆向工具