Detección y predicción de acceso malicioso en redes empresariales mediante el algoritmo de detección de la comunidad de Lovaina

Inicio » Blog » Detección y predicción de acceso malicioso en redes empresariales mediante el algoritmo de detección de la comunidad de Lovaina

Por Gal Sadeh, científico de datos sénior, Silverfort
Muchas violaciones de datos comienzan con el acceso a una computadora insignificante y se propagan saltando de una computadora a otra hasta llegar a las valiosas "joyas de la corona", como credenciales de administrador, información sobre una base de datos importante que contiene datos de clientes y más. Detectar y prevenir estos ataques es una tarea muy complicada para los profesionales de la seguridad ya que el número de posibles rutas de ataque es altísimo y las redes cambian con frecuencia (se añaden o eliminan nuevas entidades, se cambian permisos, etc.). La mayoría de las técnicas para detectar ataques se basan en el reconocimiento de patrones maliciosos conocidos, pero para ataques complejos esto ya no es suficiente. Cuando el ataque no tiene un patrón conocido y reconocible, es extremadamente difícil detectarlo.

Nuestros intentos iniciales con la detección de ataques.

Como Silverfort analiza los datos de autenticación y acceso monitoreados en todo el empresa entornos de red y nube: necesita analizar una gran cantidad de datos. Sin embargo, fueron necesarios algunos intentos para decidir cuál sería la mejor forma de analizar todos estos datos para detectar amenazas desconocidas. Pensé mucho en esta pregunta. Al principio, pensé en mapear todas las rutas de acceso posibles según los datos e intentar detectar las vulnerables. Sin embargo, este enfoque se vuelve casi imposible de implementar cuando la red contiene muchas entidades, ya que el número de rutas de acceso posibles crece exponencialmente con el número de entidades. Intenté mejorar este método eliminando algunas de las rutas de acceso. Por ejemplo, si un usuario no tiene permisos en el directorio para acceder a un determinado servidor, podemos eliminar esa ruta. Este enfoque nos ayudó a procesar una gran cantidad de rutas de acceso, pero no fue suficiente, porque incluso sin permisos una ruta de acceso podría ser posible mediante la explotación de vulnerabilidades.

Entonces, decidimos probar un enfoque diferente: dividimos la red en comunidades, basándonos en el hecho de que los miembros de una comunidad se comunican entre sí y comparten recursos con otros, más que con otras entidades de la red.

Déjame explicarte más:

¿Qué son las comunidades y qué son los algoritmos de detección de comunidades?

Las redes se pueden modelar como gráficos de conexiones (bordes) entre nodos, donde cada nodo representa una entidad (usuario, computadora, etc.) y cada borde que se conecta entre los nodos representa una conexión lógica. Por ejemplo, si un usuario accede a un servidor, el usuario y el servidor serían los "nodos" y la conexión entre ellos estaría representada por un "borde".
Cada borde también está asociado con un peso que representa la fuerza de la conexión, que se basa en el número de autenticación y solicitudes de acceso que vemos en este borde.
La forma en que funcionan los algoritmos de detección de comunidades es tomar un gráfico sin procesar como entrada, analizarlo y asignar cada nodo a una comunidad. Cada comunidad se caracteriza por su "densidad", que es la relación entre los pesos de todos los bordes y el número de nodos de la comunidad. La mayoría de los algoritmos de detección de comunidades tienen un "objetivo", que es un número que representa la compatibilidad general de los nodos con las comunidades a las que fueron asignados. El objetivo es maximizar ese número. Un objetivo más amplio significa comunidades de 'alta densidad'.
Tenga en cuenta que diferentes algoritmos pueden tener "objetivos" ligeramente diferentes.

Asignación de nodos a comunidades utilizando el algoritmo de Louvain

Seleccionamos el algoritmo de Louvain porque es un algoritmo bien conocido que se ejecuta muy rápido incluso en redes grandes y complejas: su tiempo de ejecución es casi lineal con respecto al tamaño de la red. El algoritmo intenta maximizar su objetivo repitiendo estas dos fases:

  1.  Asigna cada nodo del gráfico a una única comunidad. Para cada borde que se conecta entre el nodo u y el nodo v, el algoritmo verifica si fusionar las comunidades de u y v aumenta el objetivo y, de ser así, realiza la fusión.
  2. El algoritmo construye un nuevo gráfico, donde cada comunidad está representada por un solo nodo, y el peso asignado al borde entre las comunidades es la suma de los pesos de todos los bordes entre los nodos fusionados de cada comunidad.

El algoritmo se detiene cuando no hay ningún paso que incremente el objetivo. El resultado es un gráfico inducido, donde los nodos representan comunidades. Para nuestra implementación utilizamos un paquete de Python llamado "comunidad". Puede encontrar más material de lectura aquí: http://www.emilio.ferrara.name/wp-content/uploads/2011/07/isda2011-k-path.pdf

Detección comunitaria y ciberseguridad

Dado que cada comunidad es densa, lo que significa que hay muchas rutas de acceso entre los nodos, si un atacante obtiene acceso a una de las entidades (cuenta de usuario o dispositivo) en una comunidad, le resultaría más fácil acceder a otras entidades de esa comunidad. Obviamente, es más difícil para un atacante expandirse a otras comunidades ya que hay menos rutas de acceso entre diferentes comunidades. Si se usa correctamente, la detección comunitaria puede ayudar a identificar actividades sospechosas dentro de una red. predecir rutas de movimiento lateral y aplicar políticas más inteligentes en tiempo real.

Cómo Silverfort encaja

Cuándo Silverfort, Autenticación basada en riesgos La plataforma se implementa en una red, monitorea toda la actividad de autenticación y acceso entre las distintas entidades y construye un gráfico como se describió anteriormente. El gráfico sin formato se ve así:

Cada círculo es un usuario y cada triángulo es un servidor. Los pesos en los bordes están determinados por la cantidad de solicitudes de autenticación y acceso monitoreadas y los permisos asociados con los diferentes nodos (para simplificar, los pesos no se muestran en el gráfico). Luego utilizamos el algoritmo de Louvain para identificar comunidades en la red. Después de identificar las comunidades, el mapa quedará así:


Ahora, detectamos nodos que se comunican con entidades en comunidades de las que no forman parte. Esos nodos serían objetivos valiosos para los atacantes, porque son los únicos puntos de acceso entre comunidades. Por tanto, un atacante tendrá que atravesarlos para poder propagarse a otras comunidades. Asegurar los bordes (conexiones) de estos nodos es importante para evitar que un ataque se propague en la red.

Usar SilverfortCon las políticas de autenticación, las empresas pueden responder automáticamente a las amenazas detectadas aplicando una autenticación intensificada para validar la identidad del usuario o bloqueando el acceso por completo. Esto es válido tanto para la comunicación de usuario a máquina como de máquina a máquina.
Identificar las comunidades y las valiosas conexiones entre comunidades que serían el objetivo de los atacantes ayuda Silverfort clientes a la hora de establecer políticas de autenticación seguras e inteligentes. El gráfico de la comunidad también puede ayudar a los administradores a identificar configuraciones erróneas en sus redes. En el siguiente gráfico, algunos de los nodos y conexiones valiosos que deben protegerse están marcados en violeta.

¿Cómo se aprovecha hoy?

Algunos de nuestros clientes ya están usando SilverfortEl análisis de la comunidad (que es parte de nuestro motor de riesgo basado en IA) para identificar comunidades y conexiones comunitarias cruzadas en sus redes, identificar configuraciones erróneas y "puntos débiles" que deben protegerse y detectar actividad anormal. Ahora, estamos ayudando a los clientes a dar el siguiente paso: aplicar políticas de autenticación segura en tiempo real en respuesta a las amenazas detectadas y prevenir eficazmente movimiento lateral en sus redes y entornos de nube.

Gal Sadeh, científico de datos sénior, Silverfort
Gal es científico de datos sénior en SilverfortEl equipo de investigación. Es responsable del análisis de big data y del desarrollo de motores de inteligencia artificial. Él se unió Silverfort después de muchos años de investigación y roles de liderazgo en la unidad cibernética de élite 8200 de las Fuerzas de Defensa de Israel. Gal tiene un B. Sc. en Matemáticas e Informática de la Universidad de Tel Aviv.

Detenga las amenazas a la identidad ahora