Nimbus Vestige reconstructs how an intrusion most likely moved through an identity estate — and, just as importantly, tells you how much to trust each part of that story.
This is not a detector. It doesn't tell you that something happened — it works backward from fragmented logs to reconstruct how it most likely happened, and what else plausibly could have. Every claim it makes carries a confidence score, and it refuses to assert what it can't support. Reconstructions are hypotheses, not verdicts.
Every step carries a confidence between 0 and 1, earned from independent corroborating evidence (source IP, device, successful outcome, closeness in time to other steps). The trust floor slider is the threshold you demand before NV will assert something.
That is the honesty-versus-coverage tradeoff, put in your hands.
The authorized scope badge means NV is only operating on an estate you're permitted to investigate — a first-class control, not decoration. The engine refuses to run on unauthorized tenants.
Embedding canvas — entities by technique similarity
Everything on this screen is a public research dataset. Here's how to point Nimbus Vestige at your own Entra/M365 estate instead.
NV reads the same Microsoft 365 unified audit log this demo uses. Pull it from any of:
Run the extractor to strip everything down to the identity-relevant events NV reasons over:
python3 nv_extract_identity_events.py your_audit_export.csv your_events.jsonl
It keeps sign-ins, consent grants, service-principal and role changes, and mailbox access, and drops the rest. Works on any export carrying the standard AuditData column.
The engine refuses to run on any tenant you haven't explicitly authorized — so name yours:
python3 run_nv.py your_events.jsonl reconstruction.json --authorize yourtenant.onmicrosoft.com
The GUI renders whatever reconstruction.json the engine produced. Point it at your file and this same screen shows your incident, your entities, your confidence bands.
Most-likely chain
Ranked competing paths