并行聚合 99+ 个免费 OSINT 来源,将实体解析为知识图谱,并借助 LLM 辅助分析导出 STIX 2.1、MISP 或 GraphML。
由 LazyOwn Redteam Framework 的创作者打造,这是一款免费开源的
情报(OSINT)聚合与关联引擎,
灵感来自 Palantir、Bellingcat、Maltego 和 Citizen Lab 的工作流程。
这是对原始 fucklantir /
osint_palantir 工具链的纯开源重新构想,拥有更庞大的来源目录、
完善的知识图谱、结构化解析器,以及多后端 LLM
分析师。
无载荷。无主动扫描。仅有 99+ 个免费公开 OSINT 来源, 并行展开,融合为单一情报全景。
+--------------------------+
query "example.com" | Estorides Orchestrator | -> STIX 2.1 bundle
---------------------> | - async fanout | -> MISP event JSON
| - 99+ free sources | -> GraphML for Gephi
| - structured parsers | -> JSONL for training
| - entity resolution |
| - knowledge graph |
| - ontology engine | <- OFAC SDN cross-check
| - MITRE ATT&CK mapper | <- technique auto-tagging
| - SSRF guard | <- blocklist at egress
| - audit log + RL | <- per-IP trail
| - multi-LLM analyst | <- BLUF / tactical / system
+--------------------------+
|
v
Web UI: map / graph / bundles / timeline / results
pip install estorides
estorides serve --port 5050
(从源代码检出中,等效命令是 python3 estorides_cli.py serve --port 5050
或 python3 -m estorides_cli serve --port 5050。)
Estorides 围绕小型、单一职责的注册表进行组织, 因此添加新的数据源、后端、推断器或数据流时,永远不需要 改动中央编排器。五个插件接口是:
| 接口 | 装饰器 | 文件 | 用途 |
|---|---|---|---|
| 源解析器 | @register_parser("name") | estorides_core/parsers.py | 将原始 HTTP 转换为结构化字典 |
| LLM 后端 | @register("name") | estorides_llm/manager.py | 添加 LLM 提供方(ollama、openai 等) |
| 关系推断器 | @register_inferer("source") | estorides_core/relationship_inference.py | 源 -> 图边 |
| 实时数据流 | 子类化 Feed | estorides_core/feeds.py | 地图图层(地震、火灾、新闻、飞机、卫星、发射) |
| 加密导出器 | estorides_export.encryption | estorides_export/encryption.py | STIX/MISP + age 加密 |
| 能力 | 原版 | Estorides |
|---|---|---|
| 免费 OSINT 源数量 | ~20 | 99 |
| 情报类别 | 6 | 12 |
| HTTP 扇出模型 | 串行 | 异步 |
| 重试 + 退避 + 熔断器 | 基础 | 支持 |
| 响应缓存(SQLite) | 无 | 支持 |
| 每源解析器 | 无 | 50+ |
| 实体提取(IP、域名、CVE 等) | 仅正则 | 结构化 + 去重 |
| 知识图谱 | 无 | NetworkX + GraphML |
| STIX 2.1 / MISP 导出 | 无 | 支持 |
| 多 LLM(Ollama / OpenAI / Anthropic) | 仅 Ollama | 4 个后端 + 存根 |
| 地图(地理定位结果) | PyVista 3D | Leaflet 2D |
| 力导向图视图 | 无 | D3.js |
| API 密钥处理 | 无 | 每源环境变量 |
| 付费源支持 | 无 | 基于标志的选择加入 |
| OFAC SDN 制裁交叉核查 | 无 | 本体引擎 |
| MITRE ATT&CK 技术自动标记 | 无 | 约 40 种技术 |
| SSRF / 私有网络出口防护 | 无 | 阻止 RFC1918 + 云 IMDS |
| 审计日志(每请求,仅追加) | 无 | JSONL,含 IP+查询+延迟 |
| 每 IP 速率限制(滑动窗口) | 无 | 默认 30/分钟,可通过环境变量调整 |
| 加密导出(age) | 无 | 通过 ?key=age1… 选择加入 |
| 实时数据流图层 | 无 | 地震 + 火灾 + 新闻 |
| 加密导出(age) | 无 | 通过 ?key=age1… 选择加入 |
| 能力 | v1.0 | v1.1(本版本) |
|---|---|---|
| 持久化图(Cypher 查询) | NetworkX 转储 | Kùzu 嵌入式数据库,跨运行连接 |
| 运行持久化 | JSONL 追加 | SQLite 案例,含外键观测/实体 |
| 跨数据流实体解析器 | 无 | Wikidata + OFAC + IP-API + NVD,通过 intel_resolver |
| 模糊实体聚类 | 精确去重 | difflib SequenceMatcher,0.85 阈值,别名呈现 |
| 额外 OSINT 端点(无需密钥) | 99 个 YAML 源 | +7(BGP、MAC、电话、GitHub、泄露、CISA KEV、恶意软件 C2) |
| 只读 Cypher 端点 | 无 | /api/intel/graph?q=...,带写入关键字防护 |
| 案例历史 UI | 无 | 案例标签页 + 全实体检查器 |
原始引擎是一个数据收集器:扇出、解析器、图、用于总结的 LLM。v1.4 冲刺引入了信息层:现在每个观测都携带一个有依据的置信度分数;编排器和下游消费者(假设引擎、变更检测、LLM 分析师)不再使用各自临时的启发式方法,而是使用这个单一事实来源。
| 模块 | 规格 | 状态 | 功能 |
|---|---|---|---|
reliability_scoring (2a) | spec/reliability_scoring.md | 2026-06-27 关闭 | NATO Admiralty(可靠性 A-F × 可信度 1-6)× 佐证 × 新鲜度衰减。取代 +0.1 启发式方法和 MAX() SQL。45 个 BDD 测试 + 9 个假设属性。 |
source_hierarchy (1) | spec/reliability_scoring.md | 2026-07-10 关闭 | SourceType 枚举(PRIMARY/SECONDARY/TERTIARY)、SOURCE_TYPE_MAP(42 个精选来源)、SOURCE_TYPE_WEIGHT。用来源类型权重扩展置信度计算。64 个 BDD 测试 + 12 个属性。 |
source_health_monitoring (2) | spec/source_health_monitoring.md | 2026-07-10 关闭 | 来源健康仪表板:带成功/延迟/新鲜度权重的 compute_health(),分层统计。37 个 BDD + 5 个属性。 |
entity_resolution (3) | spec/entity_resolution.md | 2026-07-10 关闭 | 为现有 entity_resolution 提供正式规格 + 48 个 BDD pytest 测试。音译、Jaro-Winkler、规范化、规范 ID、跨文字融合。 |
probabilistic_fusion (4) | spec/probabilistic_fusion.md | 2026-07-10 关闭 | 贝叶斯 merge_confidence() 取代 FusionStore.fuse_entity 和 fuse_relationship 中的 MAX()。来源加权合并可防止三级来源膨胀。17 个 BDD 测试。 |
paged_results (5) | spec/paged_results.md | 2026-07-10 关闭 | 分页模块,支持三种策略(page、offset、cursor)。PaginationConfig、build_page_params、extract_cursor、count_results。已集成到 orchestrator._execute_source。31 个 BDD 测试。 |
hypothesis_engine (2b) | spec/hypothesis_engine.md | 2026-06-27 关闭 | “数据 → 信息”层。4 个类型化生成器(domain-belongsto-actor、email-aliasto-person、ip-shared-infra、asn-shared-infra)。确定性 ID(sha1),带证据项的审计追踪。26 个 BDD 测试 + 9 个假设属性。 |
change_detection (2c) | spec/change_detection.md | 2026-06-27 关闭 | “时间”层:同一目标的两个 Snapshot 之间的差异。8 种类型化变更(new/disappeared/property_changed/source_added/source_removed/edge_added/edge_removed/confidence_shifted),可靠性加权评分,确定性 ID(sha1),完整审计追踪。纯函数:无 I/O,不记录载荷日志,受 max_changes 限制。30 个 BDD 测试(S1-S15)+ 8 个假设属性(每个 1000 个示例)。 |
observation_models (2n) | spec/observation_models.md | 2026-08-23 关闭 | 严格的 Pydantic v2 数据契约(ObservationMeta、Observation、ObservedEntity、RunResult),使用 strict=True + extra="forbid" 和递归 JSON 安全验证。边界集中在 SchemaConfig 中(可通过环境变量调整)。首个以 100% 变异覆盖率(79/79) 关闭的模块。24 个 BDD 测试 + 4 个假设属性(每个 1000 个示例)。 |
完整的开发准则(SDD + TDD + BDD + 童子军规则 + 可视化审查 + 模糊测试)位于 CLAUDE.md。每个模块都遵循相同的循环:规格 → 红测试 → 绿代码 → 重构 → 验证 → 模糊测试 → 文档。