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, 威胁情报, 安全日志分析, 开发者工具, 异步架构, 无后门, 计算机取证, 请求拦截, 运行时操纵, 逆向工具