Carlos Meléndez Pastor Egresado del Máster en Ciberseguridad
Jue, 27/10/2022 - 10:57

CiberseguridadCiberseguridad.

Serie: 'Conectados' (XXXVIII)

Desde los inicios de mi etapa profesional tenía la idea de diseñar un sistema para detectar ciber amenazas que no había encontrado en el mundo comercial actual, tratando de desplegar la inteligencia no solamente en el recolector de eventos sino distribuyendo una inteligencia híbrida en todos los equipos remotos que mandan la información.

Cuando llegó el momento de elegir el TFM, aproveché la situación y propuse: “Sistema cloud para la monitorización y gestión de vulnerabilidades en equipos remotos“ con la idea de poder cumplir mi sueño. A mis tutores les pareció buena idea, pues estaba muy relacionado con el Máster de Ciberseguridad, por lo que estoy muy agradecido.

La idea original estaba basada en el chequeo de comportamientos anómalos no conocidos aplicando inteligencia artificial, pero empezando el desarrollo vi viable añadir también una parte de prevención, revisando las aplicaciones y versiones de equipos Windows y determinando en función de esta revisión si hay vulnerabilidades.

De esta forma, sería un proyecto robusto en el que por un lado tendríamos la prevención de poder chequear que nuestro sistema no dispone de vulnerabilidades y por otro lado podríamos detectar nuevas vulnerabilidades todavía desconocidas.

Como el fin del proyecto era dotar de inteligencia al sistema, planteé la opción de utilizar un SIEM (Security Information and Event Management) ELK (Elastisearch, Logstash y Kibana) para la visualización de los eventos, pero durante la integración de los datos me di cuenta que era una herramienta muy potente y poco optimizada por lo que finalmente decidí desarrollar también la parte Web.

Por un lado había que crear un doble sistema: prevención y detección de vulnerabilidades zero days capaz de:

  • Desarrollar y ejecutar programas en equipos remotos.
  • Desarrollar y crear la inteligencia local con bases de datos.
  • Lanzar conexiones seguras full dúplex.
  • Desplegar los servicios en la nube.
  • Desarrollar los backend en la nube y las bases de datos.
  • Desarrollar el frontend en la nube y la integración con las bases de datos.

En definitiva, un buen reto. Como he comentado en las motivaciones, el diseño del sistema se divide en 2 subsistemas que funcionan de forma paralela, en el que ambos disponen de aplicaciones en los clientes (que son los equipos remotos) y en el servidor (que en nuestro caso se ha desplegado en la nube de AWS pudiendo estar on premise), y en el que se han implementado comunicaciones seguras.

Vulnerabilidades conocidas

Mediante un programa en el cliente, desarrollado en Python se saca el listado de aplicaciones de Windows con la versión, el id único de equipo y estado del rendimiento del sistema. Esta información se procesa en JSON y se envía usando una conexión segura mediante certificados y clave simétrica en la cabecera. De esta forma, según se van localizando aplicaciones se va mandando información al servidor Cloud de forma asíncrona y temporalizada cada cierto tiempo.

El servidor, según recibe la información, la descifra y comprueba la clave: si el mensaje es válido, lo procesa y busca información de vulnerabilidades para la aplicación y versión enviada. Los resultados obtenidos se almacenan en una base de datos MariaDB para su posterior visualización y gestión de activos.

Con este sistema se monitorizan centenares de equipos con un simple desarrollo.

Patrones desconocidos

Como objeto principal del TFM, la idea era analizar el comportamiento de los equipos finales Windows para descubrir nuevas amenazas y poner los medios necesarios lo antes posible. Para extraer la información de los clientes se utilizó Sysmon, que nos permite ver en tiempo real los eventos más importantes del sistema. Originalmente se empezó a trabajar con las bases de datos de los eventos, pero al ver que la búsqueda y el trabajo era lenta se creó otra base de datos paralela en SQLite. Para procesar todos los eventos se creó un programa en PowerShell que clasificaba los eventos y los iba almacenando en diferentes tablas de la base de datos: por un lado había eventos únicos para el chequeo de amenazas conocidas y por otro lado eventos en tiempo real para sacar las estadísticas de la inteligencia artificial. De esta forma, analizando el histórico se podría determinar si el evento era conocido o potencialmente inseguro.

Archivo 1 sobre inteligencia artificial

En la primera fase de aprendizaje (Sandbox), se utilizaba el equipo en un modo seguro para crear una base de evento seguros y así entrenar el aprendizaje para que todos esos eventos cuando se repitieran no se informaran al nodo central.

En la segunda fase, ya en producción, se empieza a entrenar el sistema. Los eventos, que se iban mandado a la nube mediante JSON cifrados y autenticados usando un criptosistema híbrido (clave simétrica y certificados) se almacenaron en diferentes tablas para su posterior chequeo desde un puesto de mando central en el que si un evento se marca como ACK, la próxima vez que se reciba ese evento del equipo remoto X, le avisará en la respuesta del HTTPS JSON que no lo vuelva a mandar porque se considera un evento seguro.

En la tercera fase, en base al aprendizaje del Sandbox, del entrenamiento y de la inteligencia artificial, el sistema irá mandado solamente las alertas potencialmente críticas, disponiendo de un sistema, eficiente y escalable a multitud de equipos.

A continuación se puede ver el frontend que permite aceptar los eventos para entrenar a los equipos remotos.

gestor de anckowledge

Ambos desarrollos web, han sido implementados sobre HTML5, PHP, CSS y JavaScript con la librería Bootstrap.

Resumiendo, en este TFM se ha desarrollado un doble sistema de ciberseguridad en el que no solo se es capaz de determinar las amenazas conocidas por CVEs, sino que podemos tener un gestor de eventos para equipos Windows en el que se distribuye la inteligencia a todo el sistema. La inteligencia se adapta para cada puesto de usuario de manera independiente.

Como principal línea futura, se podría desarrollar el sistema para otros sistemas operativos, así como crear una inteligencia por ráfagas de eventos que puedan estar interrelacionados.

Agradecer de nuevo a la Universidad Isabel I la oportunidad de haberme dado la formación y el apoyo necesario para conseguir superar este reto, que me ha servido para aprender y afianzar conceptos aprendidos durante el máster.

Editor: Universidad Isabel I

ISSN 2792-1794

Burgos, España

 

Añadir nuevo comentario

La Universidad Isabel I tratará la información que nos facilite con el fin de publicar su comentario como respuesta a esta entrada de su blog, así como para mantenerlo informado de nuestra actividad. Más información sobre este tratamiento y sus derechos en nuestra política de privacidad.