
Un motor de reconstrucción forense para la respuesta a incidentes en la nube y de identidad.
Un motor de reconstrucción forense para la respuesta a incidentes en la nube y de identidad.
Dada una telemetría fragmentada de la nube, SaaS e identidad — registros del plano de control, eventos de inicio de sesión, actividad de tokens y consentimiento — NV reconstruye cómo una intrusión se movió más probablemente a través de cuentas y servicios, enumera las otras rutas más probables que podría haber tomado, y reporta cada paso con una confianza calibrada y explicable. Se niega a afirmar lo que la evidencia no puede respaldar.
La detección te dice que algo sucedió. Nimbus Vestige te dice cómo — y qué más.
Las intrusiones modernas no "irrumpen". Inician sesión. La identidad es ahora el principal vehículo de ataque, implicada en la gran mayoría de las investigaciones de respuesta a incidentes en la nube, y la mayoría de las intrusiones abarcan múltiples superficies — identidad más nube más SaaS más endpoint. La telemetría que las registra es fragmentada e inconsistente, lo que ya obliga a los respondedores a reconstruir la historia manualmente a partir de datos incompletos.
Esa reconstrucción manual es lenta y falla de una manera predecible: el respondedor se ancla en la primera narrativa plausible y pierde la real. NV automatiza la reconstrucción y ataca directamente ese modo de fallo al presentar siempre el espacio clasificado de rutas plausibles, no una única historia.
Fundamentalmente, NV hace esto con honestidad como producto. El enemigo declarado del mercado es la confianza de caja negra — una herramienta que afirma una conclusión sin mostrar su trabajo. Cada número que NV produce es rastreable a la evidencia específica que lo generó, y cualquier cosa que no pueda respaldar se omite en lugar de adivinarse.
NV no es un detector, un escáner, un auditor ni un ejecutor de ataques. Esas herramientas te dicen que algo sucedió y lo miden. NV trabaja hacia atrás — reconstrucción abductiva del mecanismo a partir de patrones, a través de un patrimonio de identidad fragmentado.
El equipo azul se regenera; el equipo rojo se mercantiliza. Las herramientas ofensivas encuentran un conjunto finito y parcheable de huecos y se están integrando en pipelines automatizados de seguridad CI/CD. Reconstruir cómo ocurrió una intrusión nunca se resuelve — los atacantes siguen inventando, por lo que la necesidad es permanente y se renueva sola.
El motor es independiente del sustrato. La lógica central — reconstruir el mecanismo a partir de patrones, con confianza calibrada y un tope de seguridad — está comprometida con la nube/identidad primero, pero se traslada a red, endpoint y OT después. El objetivo puede cambiar sin reescribir la tesis.
La reconstrucción permite el endurecimiento. Una vez que sabes cómo entraron — y qué otras puertas estaban abiertas — construyes las defensas. Las rutas no tomadas pero plausibles son un backlog de endurecimiento, a menudo más valioso que la propia reconstrucción, porque la mayoría de las brechas explotan exposición prevenible, no tácticas novedosas.
Se degrada con elegancia ante la intrusión novedosa — el incidente que más importa. Un motor de firmas/reglas se queda ciego ante un día cero; el núcleo abductivo de NV aún produce una ruta más probable, marcada honestamente como de menor confianza.
La honestidad es un foso. La confianza calibrada y basada en casos con alternativas clasificadas es exactamente lo que el mercado dice querer y lo que los competidores de caja negra estructuralmente no pueden ofrecer sin rediseñar.
Registros crudos del proveedor → grafo normalizado de eventos/entidades → motor de reconstrucción → 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)
La GUI es una **capa de vista pura**: renderiza la salida del motor y permite al analista mover
el umbral de confianza. No contiene lógica de reconstrucción propia.
---
## El modelo de confianza (la credibilidad de todo el producto)
Cada paso lleva una confianza en [0, 1], construida mediante **corroboración de evidencia**:```
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)
Las puntuaciones de ruta componen sus enlaces mediante media geométrica, por lo que un enlace débil arrastra honestamente una ruta hacia abajo en lugar de promediarse.
Cada peso anterior — las tasas base por técnica, los bonos por señal, las penalizaciones por ausencia — vive en una única tabla PARAMS en nv/confidence.py. Esos son los priors v1 de NV, y son calibrables: nv/calibration.py puede reajustarlos contra verdad fundamental etiquetada y el motor cargará el resultado, recurriendo a los priors v1 cuando no se suministre calibración (ver más abajo).
La regla de retención, integrada en el contrato de salida del motor — no solo en la interfaz. Por debajo del umbral, un paso se retiene. Arrastrar el umbral es el equilibrio honestidad-versus-cobertura hecho físico: hacia arriba para alta confianza/estricto, hacia abajo para permisivo/alta cobertura. El umbral predeterminado es una decisión editorial sobre dónde se sitúa NV antes de que el analista lo toque.
Los pesos v1 son defendibles, pero son priors. nv/calibration.py los ajusta contra verdad fundamental etiquetada — eventos donde sabemos cuáles formaban parte de la intrusión y cuáles eran benignos — y, crucialmente, mide si el ajuste realmente ayudó, de modo que una calibración se adopta solo si reduce el error de calibración en lugar de solo mover números.
La confianza calibrada significa una cosa: la confianza de NV para un paso debe igualar la probabilidad de que el paso realmente estuviera en la ruta de ataque. Así, la confianza de cada evento etiquetado se trata como una probabilidad predicha, y el marco ajusta: