Viajeros en el tiempo atrapados: cómo detectar el viaje imposible

En el episodio de este mes de Tradecraft Tuesday, nuestro líder técnico de desarrollo Jamin Becker y el investigador de producto Dave Kleinatland profundizaron en el problema de los viajes imposibles. Analizan el tema a fondo, explican cómo se detecta y los desafíos que trae consigo. Y para darle contexto a todo, también comparten escenarios del mundo real a lo largo del episodio.

Si quieres ver el episodio bajo demanda, puedes encontrarlo aquí. Si prefieres leer más al respecto, te invitamos a hacerlo. Dicho esto, hagamos un repaso.

¿Qué es el viaje imposible?

El viaje imposible es un tipo de detección de anomalías basada en ubicación que ocurre cuando una cuenta de usuario realiza acciones en múltiples ubicaciones geográficas en un período de tiempo imposible de lograr con un viaje físico normal. Por ejemplo, Usuario1 inicia sesión desde Chicago y luego 15 minutos después inicia sesión desde Seattle. A menos que Usuario1 se esté teletransportando, esto definitivamente no parece posible. Ese es un ejemplo muy simple y directo de lo que significa, pero hay muchas particularidades que abordaremos.

El viaje imposible es uno de los primeros indicadores que se pueden detectar de un compromiso de usuario, y funciona con cualquier evento centrado en el usuario que pueda vincularse a una ubicación. En comparación con otras metodologías de detección, los beneficios del viaje imposible incluyen:

  • no depender de firmas específicas ni de patrones de ataque conocidos para detectar anomalías
  • ser un concepto de detección bastante directo, más fácil de implementar y entender
  • señalar anomalías independientemente del comportamiento del usuario

Viaje imposible para Microsoft 365

Si bien las detecciones de viaje imposible pueden surgir de cualquier fuente de registro que contenga una marca de tiempo, un atributo de ubicación y una identidad de usuario, nos vamos a enfocar principalmente en las fuentes de registro de Microsoft 365 . La mayoría de los eventos dentro de la auditoría unificada de Microsoft 365 cumplen con el criterio, pero nos enfocaremos específicamente en los eventos UserLoggedIn, ya que estos son ricos en información contextual adicional. Lo más importante es que muestran que un usuario ya se autenticó correctamente y tiene cierto nivel de privilegio dentro del entorno.

Una advertencia a tener en cuenta es que, al analizar datos basados en ubicación, hay mucho ruido que filtrar. Vemos más de 100.000 eventos por hora. Parte del ruido que vemos es actividad legítima de VPN o proxy, e incluso aunque no sea buena idea, a menudo vemos uso compartido "legítimo" de credenciales que puede activar detecciones de anomalías basadas en ubicación. El objetivo de usar las detecciones de viaje imposible es abrirse paso entre parte del ruido para llegar a lo realmente preocupante, como posibles tomas de control de cuentas o usuarios.

Cómo funciona la detección del viaje imposible

Por sí sola, la detección de anomalías de viaje imposible abarca una red muy amplia, pero ayuda a reducir la cantidad de eventos en los que enfocarse. Incluso con esa reducción, todavía hay bastante filtrado por hacer para que los datos sean útiles. Usando un pipeline de detección estándar para anomalías basadas en ubicación, podemos dividir esto en seis pasos generales. La primera mitad del pipeline se encarga de determinar qué eventos son realmente de viaje imposible, mientras que en la segunda mitad nos enfocamos más en los perfiles base de usuario, los enriquecimientos tradicionales y la aplicación de heurísticas de riesgo que nos ayudarán a obtener elementos accionables a partir de este conjunto de datos.

Primera mitad del pipeline
Segunda mitad del pipeline

Analicemos esto paso a paso:

Paso 1 - Crear pares de eventos
  • Recibir eventos de usuario
  • Agrupar por atributo de usuario (como ID de usuario o dirección de correo electrónico)
Paso 2 - Calcular la velocidad implícita
  • La diferencia de tiempo entre los eventos
  • Filtrar según un umbral predeterminado
Paso 3 - Excluir viajes posibles
  • Revisar los pares de eventos del paso anterior para que coincidan con los criterios de viaje imposible
Paso 4 - Excluir el comportamiento normal del usuario
  • Comparar los pares de eventos anómalos del usuario con su comportamiento base
Paso 5 - Asignar una puntuación de riesgo
  • Según criterios predeterminados que aumentan o reducen el riesgo
Paso 6 - Excluir el riesgo bajo
  • Esto podría ser algo como el uso compartido de credenciales del que hablamos antes

Desafíos en la detección

Si bien hay muchos desafíos para identificar correctamente las anomalías de viaje imposible, uno de los primeros que encontramos fue lo que llamaremos "usuarios viajeros en el tiempo": usuarios que se mueven más rápido que la velocidad de la luz. En esencia, vimos varias veces que un usuario iniciaba sesión desde dos ubicaciones muy dispares con la misma marca de tiempo o con solo un segundo de diferencia. Hemos determinado que existen varias razones legítimas para que esto ocurra —lamentablemente, no es viaje en el tiempo— como servicios que se ejecutan en diferentes dispositivos pero que se autentican en la misma cuenta, o cuando un usuario cambia entre redes privadas y dispositivos móviles. A continuación hay un ejemplo de algunos de los datos que estábamos recibiendo.

Viajar en el tiempo ya no se usa, pero seguimos enfrentando algunos desafíos comunes, incluyendo un alto volumen de datos, falsos positivos verdaderos por uso legítimo y falsos positivos por información de geolocalización incorrecta. Hablemos un poco sobre qué causa cada uno de estos junto con soluciones útiles.

Alto volumen de datos
Causa 
  • Analizar estos datos en tiempo real o incluso casi en tiempo real requiere recursos computacionales significativos a escala
Soluciones
  • Prioriza qué registros realmente importan
  • Agrupa en torno a los eventos de usuario y ubicación más recientes
  • Coloca las operaciones más costosas más adelante en el flujo de procesamiento
Falsos positivos verdaderos por uso legítimo
Causa 
  • Por sí solo, el viaje imposible no basta para determinar si un par de eventos es malicioso o no
Soluciones
  • El contexto lo es todo, y establecer una línea base del usuario es una herramienta excelente para excluir pares de eventos que no se desvían de los patrones normales de comportamiento
  • Entiende qué te aporta cada evento y dónde agregar enriquecimientos adicionales aportaría valor
Falsos positivos por información de geolocalización incorrecta
Causa 
  • Los servicios de geolocalización suelen contener información de ubicación inexacta, lo que hace que cualquier cálculo de velocidad hecho a partir de ellos también sea incorrecto
Soluciones
  • Distancias más largas entre dos ubicaciones geográficas deberían aumentar la confianza en el cálculo de velocidad
  • Agrega los resultados de múltiples bases de datos de ubicación

Para concluir

El viaje imposible es un tema que una sola publicación de blog no puede abarcar por completo. Aunque aquí dimos un panorama general, hay mucha más información en el episodio donde puedes escuchar a Jamin y Dave entrar realmente en los detalles de todo esto. Incluso dan algunos ejemplos reales muy interesantes. Si quieres ver la grabación u otros episodios de Tradecraft Tuesday, siempre puedes hacerlo bajo demanda. Y si todavía no lo has hecho, asegúrate de registrarte para el próximo episodio para no perderte nada de la diversión que se viene.

También te podría interesar