
Aggregiert 99+ kostenlose OSINT-Quellen parallel, löst Entitäten in einen Knowledge Graph auf und exportiert STIX 2.1, MISP oder GraphML mit LLM-gestützter Analyse.
Von den Machern des LazyOwn Redteam Framework kommt ein freier und quelloffener
Intelligence-(OSINT-)Aggregator und Korrelations-Engine,
inspiriert von den Workflows von Palantir, Bellingcat, Maltego und Citizen Lab.
Eine reine Open-Source-Neuinterpretation der ursprünglichen fucklantir /
osint_palantir-Toolchain, mit einem deutlich größeren Quellenkatalog, einem
richtigen Knowledge Graph, strukturierten Parsern und einem Multi-Backend-LLM-
Analysten.
Keine Payloads. Kein aktives Scanning. Nur 99+ freie öffentliche OSINT-Quellen, parallel aufgefächert und zu einem einzigen Intelligence-Bild fusioniert.
+--------------------------+
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
(Aus einem Quell-Checkout ist das Äquivalent python3 estorides_cli.py serve --port 5050
oder python3 -m estorides_cli serve --port 5050.)
Estorides ist um kleine Registries mit jeweils einer einzigen Verantwortlichkeit herum aufgebaut, sodass das Hinzufügen einer neuen Quelle, eines Backends, eines Inferers oder eines Feeds niemals das zentrale Orchestrator-Touchieren erfordert. Die fünf Plug-in-Oberflächen sind:
| Oberfläche | Decorator | Datei | Verwendet für |
|---|---|---|---|
| Quell-Parser | @register_parser("name") | estorides_core/parsers.py | Rohes HTTP in strukturierte Dicts übersetzen |
| LLM-Backends | @register("name") | estorides_llm/manager.py | Einen LLM-Anbieter hinzufügen (ollama, openai, …) |
| Beziehungs-Inferer | @register_inferer("source") | estorides_core/relationship_inference.py | Quelle -> Graph-Kanten |
| Echtzeit-Feeds | Unterklasse von Feed | estorides_core/feeds.py | Kartenebenen (Erdbeben, Brände, Nachrichten, Flugzeuge, Satelliten, Starts) |
| Verschlüsselte Exporter | estorides_export.encryption | estorides_export/encryption.py | STIX/MISP + age-Verschlüsselung |
| Fähigkeit | Original | Estorides |
|---|---|---|
| Anzahl kostenloser OSINT-Quellen | ~20 | 99 |
| Intelligence-Kategorien | 6 | 12 |
| HTTP-Fanout-Modell | sequenziell | async |
| Wiederholungen + Backoff + Circuit Breaker | einfach | ja |
| Antwort-Cache (SQLite) | keiner | ja |
| Parser pro Quelle | keine | 50+ |
| Entitätsextraktion (IP, Domain, CVE…) | nur Regex | strukturiert + Dedup |
| Wissensgraph | keiner | NetworkX + GraphML |
| STIX 2.1 / MISP-Export | keiner | ja |
| Multi-LLM (Ollama / OpenAI / Anthropic) | nur Ollama | 4 Backends + Stub |
| Karte (Geolokalisierungsergebnisse) | PyVista 3D | Leaflet 2D |
| Kraftgerichtete Graph-Ansicht | keine | D3.js |
| API-Schlüsselverwaltung | keine | Umgebungsvariablen pro Quelle |
| Unterstützung kostenpflichtiger Quellen | keine | flag-basiertes Opt-in |
| OFAC-SDN-Sanktionsabgleich | keiner | Ontologie-Engine |
| Automatische MITRE-ATT&CK-Technik-Kennzeichnung | keine | ~40 Techniken |
| SSRF- / Private-NW-Egress-Guard | keiner | RFC1918 + Cloud-IMDS blockiert |
| Audit-Log (pro Anfrage, nur anhängend) | keines | JSONL mit IP+Query+Latenz |
| Ratenbegrenzung pro IP (gleitendes Fenster) | keine | Standard 30/min, per Env anpassbar |
| Verschlüsselter Export (age) | keiner | Opt-in via ?key=age1… |
| Echtzeit-Feed-Ebenen | keine | Erdbeben + Brände + Nachrichten |
| Verschlüsselter Export (age) | keiner | Opt-in via ?key=age1… |
| Fähigkeit | v1.0 | v1.1 (diese) |
|---|---|---|
| Persistenter Graph (Cypher-Abfragen) | NetworkX-Dump | Kùzu eingebettete DB, Joins über Läufe hinweg |
| Lauf-Persistenz | JSONL-Anhängen | SQLite-Fälle mit FK-Beobachtungen/Entitäten |
| Feed-übergreifender Entitäts-Resolver | keiner | Wikidata + OFAC + IP-API + NVD via intel_resolver |
| Fuzzy-Entitäts-Clustering | exakter Dedup | difflib SequenceMatcher, 0,85-Schwelle, Aliase werden angezeigt |
| Zusätzliche OSINT-Endpunkte (schlüssellos) | 99 YAML-Quellen | +7 (BGP, MAC, Telefon, GitHub, Leaks, CISA KEV, Malware-C2) |
| Schreibgeschützter Cypher-Endpunkt | keiner | /api/intel/graph?q=... mit Schreib-Schlüsselwort-Guard |
| Fallverlauf-UI | keine | Cases-Tab + Voll-Entitäts-Inspektor |
Die ursprüngliche Engine war ein Daten-Sammler: ein Fan-out, Parser, ein Graph, ein LLM, das zusammenfasst. Der v1.4-Sprint führt die Informations-Schicht ein: Jede Beobachtung trägt nun einen fundierten Konfidenzwert; der Orchestrator und nachgelagerte Konsumenten (Hypothesen-Engine, Änderungserkennung, LLM-Analyst) verwenden nicht mehr ihre eigenen Ad-hoc-Heuristiken, sondern diese einzige Quelle der Wahrheit.