Parent : [[INDEX-CYBERSECU]]
Cascade graph OSINT — real data only
Problème
Les outils OSINT « devinent » des liens → fausses pistes et responsabilité légale.
Solution
Modèle CascadeNode / CascadeEdge :
- Entrée typée (phone, email, IP, domain, handle, company…)
- Pas de spéculation — seules réponses API réelles créent des nodes
- « Outils » = liens externes, pas résultats inventés
- Enrichissement async via lookup routes → append nodes/edges au graphe
- UI : graph / timeline / stats (
SearchHub,CascadeGraph)
Philosophie codée en en-tête : cascade-engine.ts v2 REAL DATA ONLY.
Implémentation
interface CascadeNode {
id: string;
type: 'phone' | 'email' | 'ip' | 'domain' | 'handle' | 'company';
value: string;
source: string; // API qui a retourné ce node
confidence: 'proven'; // jamais 'speculative'
createdAt: Date;
}
interface CascadeEdge {
from: string; // node id
to: string; // node id
relation: string; // 'resolved-to', 'registered-by', 'found-on'
source: string;
}
// Le moteur ne crée un node que si l'API retourne une réponse réelle
async function enrich(node: CascadeNode): Promise<CascadeNode[]> {
const results = await lookupService(node.type, node.value);
// Pas de speculation : si l'API ne retourne rien, pas de node
return results.map(r => createNode(r.type, r.value, r.source));
}
Quand l'utiliser
Tout outil d'investigation OSINT où la fiabilité des liens importe plus que la couverture.
Quand NE PAS l'utiliser
Outils exploratoires où les hypothèses sont acceptables (avec label explicite speculative).
Source projet
osint-investigation-board/src/lib/cascade-engine.tsosint-investigation-board/src/lib/types.tsosint-investigation-board/src/components/hub/SearchHub.tsx
Références
- [[KNOW-PAT-165]] — Routes lookup par service
- [[KNOW-PAT-056]] — OSINT Hunchly investigation