
Un moteur de reconstruction forensique pour la réponse aux incidents cloud et d'identité.
Un moteur de reconstruction forensique pour la réponse aux incidents cloud et identité.
À partir de télémétries cloud, SaaS et d'identité fragmentées — journaux du plan de contrôle, événements de connexion, activité de jetons et de consentement — NV reconstruit la manière dont une intrusion s'est le plus probablement propagée entre comptes et services, énumère les autres chemins les plus probables qu'elle aurait pu emprunter, et rapporte chaque étape avec une confiance calibrée et explicable. Il refuse d'affirmer ce que les preuves ne peuvent étayer.
La détection vous dit que quelque chose s'est produit. Nimbus Vestige vous dit comment — et quoi d'autre.
Les intrusions modernes ne « s'introduisent » pas. Elles se connectent. L'identité est désormais le principal vecteur d'attaque, impliquée dans la grande majorité des enquêtes IR cloud, et la plupart des intrusions couvrent plusieurs surfaces — identité, cloud, SaaS et poste de travail. La télémétrie qui les enregistre est fragmentée et incohérente, ce qui force déjà les intervenants à reconstruire l'histoire à la main à partir de données incomplètes.
Cette reconstruction manuelle est lente, et elle échoue de manière prévisible : l'intervenant s'ancre sur le premier récit plausible et manque le vrai. NV automatise la reconstruction et attaque directement ce mode de défaillance en présentant toujours l'espace classé des chemins plausibles, et non un seul récit.
Surtout, NV le fait avec l'honnêteté comme produit. L'ennemi déclaré du marché est la confiance en boîte noire — un outil qui affirme une conclusion sans montrer son raisonnement. Chaque chiffre produit par NV est traçable jusqu'à la preuve spécifique qui l'a justifié, et tout ce qu'il ne peut étayer est retenu plutôt que deviné.
NV n'est pas un détecteur, un scanner, un auditeur ni un exécuteur d'attaques. Ces outils vous disent que quelque chose s'est produit et le mesurent. NV travaille à rebours — reconstruction abductive du mécanisme à partir de motifs, à travers un patrimoine identitaire fragmenté.
La blue team se régénère ; la red team se banalise. L'outillage offensif trouve un ensemble fini et corrigeable de failles et se fond dans les pipelines automatisés de sécurité CI/CD. Reconstruire comment une intrusion s'est produite ne se résout jamais — les attaquants continuent d'inventer, donc le besoin est permanent et s'auto-renouvelle.
Le moteur est indépendant du substrat. La logique centrale — reconstruire le mécanisme à partir de motifs, avec une confiance calibrée et un garde-fou d'arrêt — est engagée d'abord sur le cloud et l'identité, mais se transpose ensuite au réseau, au poste de travail et à l'OT. La cible peut changer sans réécrire la thèse.
La reconstruction permet le durcissement. Une fois que vous savez comment ils sont entrés — et quelles autres portes étaient ouvertes — vous construisez les défenses. Les chemins plausibles mais non empruntés constituent un backlog de durcissement, souvent plus précieux que la reconstruction elle-même, car la plupart des violations exploitent une exposition évitable, et non des techniques inédites.
Il se dégrade gracieusement face à l'intrusion inédite — l'incident même qui compte le plus. Un moteur à signatures/règles devient aveugle face à un zero-day ; le cœur abductif de NV produit toujours un chemin le plus probable, honnêtement signalé comme de confiance plus faible.
L'honnêteté est une douve. Une confiance calibrée, fondée sur des cas, avec des alternatives classées, est exactement ce que le marché dit vouloir et ce que les concurrents en boîte noire ne peuvent structurellement pas offrir sans refonte.
Journaux bruts des fournisseurs → graphe normalisé d'événements/entités → moteur de reconstruction → JSON → GUI.
O365 / Entra audit logs nv_extract_identity_events.py
AWS CloudTrail (IAM/STS/S3) nv_extract_cloudtrail_events.py (ingest + normalize)
▼
normalized identity events (JSONL) ← one event model, any substrate
│ nv/graph.py (typed per-actor timelines)
▼
reconstruction engine
├─ nv/patterns.py known layer: ATT&CK identity pattern library
├─ nv/providers.py provider packs: per-substrate op→ATT&CK vocab (Entra + AWS)
├─ nv/validation.py Phase 3: provenance + integrity gate on every pattern
├─ nv/feeds.py live ATT&CK STIX / TAXII / Sigma clients + scheduler
├─ nv/confidence.py evidence-corroboration scorer (calibratable weights)
├─ nv/calibration.py fit + measure confidence against labeled ground truth
├─ nv/reconstruct.py most-likely chain + ranked competing paths + trust floor
└─ nv/scope.py authorized-scope gate (refuses unauthorized tenants/accounts)
│ run_nv.py
▼
reconstruction.json ──► nv_gui.html (embedding canvas + two-column view + trust slider)
L'interface graphique est une pure couche de vue — elle affiche la sortie du moteur et permet à l'analyste de déplacer le seuil de confiance. Elle ne contient aucune logique de reconstruction propre.
Chaque étape porte une confiance dans [0, 1], construite par corroboration de preuves :
confidence = per-technique base rate
+ bonus for each independent corroborating signal
(source IP, device, successful outcome, temporal adjacency, broad-consent flags)
− penalty for missing signals (e.g. no source IP to corroborate origin)
Les scores de chemin composent leurs liens par moyenne géométrique, de sorte qu'un lien faible tire honnêtement un chemin vers le bas plutôt que d'être lissé par une moyenne.
Chaque poids ci-dessus — les taux de base par technique, les bonus par signal, les pénalités pour données manquantes — réside dans une unique table PARAMS dans nv/confidence.py. Ce sont les priors v1 de NV, et ils sont calibrables : nv/calibration.py peut les réajuster sur une vérité terrain étiquetée et le moteur chargera le résultat, en revenant aux priors v1 lorsqu'aucune calibration n'est fournie (voir ci-dessous).
La règle de retenue, intégrée au contrat de sortie du moteur — pas seulement à l'interface. En dessous du seuil, une étape est retenue. Déplacer le seuil, c'est le compromis honnêteté-couverture rendu physique : vers le haut pour strict/haute confiance, vers le bas pour permissif/haute couverture. Le seuil par défaut est une décision éditoriale sur la position de NV avant que l'analyste n'y touche.