Cambios de comportamiento
Behavior Shifts es una capa de detección complementaria e independiente que se ejecuta junto con las heurísticas basadas en reglas. En lugar de buscar acciones malintencionadas conocidas, utiliza detección estadística de cambios de punto (change-point detection) para responder a la pregunta: ¿cambió significativamente el patrón de actividad general de este usuario en algún momento del conjunto de datos? Un shift no implica automáticamente actividad maliciosa, pero acota la ventana de investigación: se sabe exactamente cuándo cambió el patrón y se pueden revisar los eventos alrededor de ese bucket.
Algoritmo
Sección titulada «Algoritmo»El motor utiliza segmentación binaria (Binary Segmentation) con una prueba F de significancia estadística (p < 0.05). Para cada usuario, agrega los eventos en buckets de tiempo y luego divide recursivamente la serie en el punto que maximiza la reducción de la suma de residuos al cuadrado. Cada división candidata se valida con una prueba F (H0: media única en todo el segmento; H1: dos medias distintas). Las divisiones que no alcanzan el umbral de significancia se descartan. La recursión continúa en ambas mitades hasta que no se encuentran más divisiones significativas o el segmento es demasiado corto (mínimo 3 buckets por lado). Cada cambio de punto detectado se reclasifica en uno de tres tipos y se asigna un nivel de confianza (bajo / medio / alto) derivado del p-valor de la prueba F.
Cambio de nivel
Sección titulada «Cambio de nivel»La media de actividad cambió de forma sostenida entre dos segmentos consecutivos — por ejemplo, un usuario que promediaba 5 eventos/bucket de repente sostiene 40 eventos/bucket. La magnitud se expresa como el cambio porcentual con signo entre las dos medias: ((mediaDespués − mediaAntes) / mediaAntes) × 100. Una magnitud negativa indica que el usuario quedó inactivo; positiva indica un pico. Este es el tipo de shift más frecuente y cubre tanto la aceleración previa a la exfiltración como la dormiencia repentina tras un restablecimiento de contraseña.
Fórmula
Prueba F: F = MSR / MSE donde MSR = SSR_completo − SSR_split (gl=1), MSE = SSR_split / (n−2). Magnitud = ((μ_después − μ_antes) / μ_antes) × 100. Confianza a partir del p-valor: alto p<0,001, medio p<0,01, bajo p<0,05.Cambio de tendencia
Sección titulada «Cambio de tendencia»En lugar de un cambio escalonado en la media, la pendiente de la serie cambió de dirección o aceleración. Tras identificar una división candidata mediante segmentación binaria, una prueba t de Welch compara las pendientes de regresión lineal a ambos lados. Si la diferencia de pendientes domina sobre la diferencia de nivel y es estadísticamente significativa, el punto se reclasifica de cambio de nivel a cambio de tendencia. Ejemplos típicos: una rampa lineal de acceso a datos que se invierte repentinamente (forma de V), o una tasa de descargas en aceleración que se estabiliza abruptamente.
Fórmula
t de Welch sobre pendientes: t = |b_antes − b_después| / √(EE_antes² + EE_después²) donde b = pendiente por mínimos cuadrados y EE = error estándar de la pendiente. Reclasificado desde cambio de nivel cuando diferenciaPendientes > diferenciaMedias y p < 0,05.Cambio de volatilidad
Sección titulada «Cambio de volatilidad»La media de actividad es similar en ambos lados de la división, pero la varianza cambió significativamente: el usuario se volvió errático (ráfagas) o inusualmente constante. Se detecta con una prueba F de igualdad de varianzas (estilo Levene) entre segmentos adyacentes identificados por la segmentación binaria. Para evitar falsos positivos en series de baja actividad y ruido alto, los cambios de volatilidad solo se reportan cuando la diferencia de nivel es inferior al 30% de la media del segmento. La magnitud se expresa como el cociente de varianzas: varianzaDespués / varianzaAntes.
Fórmula
F = Var(después) / Var(antes) — prueba F bilateral de igualdad de varianzas (estilo Levene). Confianza a partir del p-valor: alto p<0,001, medio p<0,01, bajo p<0,05.Detecta buckets aislados donde la actividad es inusualmente alta respecto a la línea base del usuario, sin requerir un cambio sostenido. El z-score mide cuántas desviaciones estándar por encima de la media global del usuario se encuentra ese bucket. Para evitar doble marcado, los spikes se suprimen si ya existe un cambio de nivel u otro change point dentro de ±1 bucket. La magnitud es el propio z-score. Este tipo es complementario al cambio de nivel: detecta eventos puntuales (descarga masiva, intento de exfiltración repentino) que no alteran la media a largo plazo.
Fórmula
z = (x_i − μ) / σ — donde μ y σ son la media y desviación estándar de toda la serie del usuario. Umbral: z ≥ 2,5. Confianza: alto z≥4, medio z≥3, bajo z≥2,5. p-valor aproximado mediante la función de supervivencia normal de Abramowitz & Stegun.